1. Введение
Облачный поток данных Google
Последнее обновление: 26 мая 2020 г.
Что такое поток данных?
Dataflow — это управляемая служба для выполнения самых разных шаблонов обработки данных. В документации на этом сайте показано, как развернуть конвейеры пакетной и потоковой обработки данных с помощью Dataflow, включая инструкции по использованию функций службы.
Apache Beam SDK — это модель программирования с открытым исходным кодом, которая позволяет разрабатывать как пакетные, так и потоковые конвейеры. Вы создаете свои конвейеры с помощью программы Apache Beam, а затем запускаете их в службе Dataflow. Документация Apache Beam содержит подробную концептуальную информацию и справочные материалы по модели программирования Apache Beam, пакетам SDK и другим средам выполнения.
Потоковая аналитика данных с высокой скоростью
Dataflow обеспечивает быструю и упрощенную разработку конвейера потоковых данных с меньшей задержкой данных.
Упрощение операций и управления
Позвольте командам сосредоточиться на программировании, а не на управлении кластерами серверов, поскольку бессерверный подход Dataflow устраняет операционные накладные расходы при выполнении рабочих нагрузок по обработке данных.
Снижение совокупной стоимости владения
Автоматическое масштабирование ресурсов в сочетании с возможностями пакетной обработки с оптимизацией затрат означает, что Dataflow предлагает практически безграничные возможности для управления сезонными и пиковыми рабочими нагрузками без перерасхода средств.
Ключевые особенности
Автоматизированное управление ресурсами и динамическая ребалансировка работы
Dataflow автоматизирует предоставление ресурсов обработки и управление ими, чтобы минимизировать задержку и максимально повысить эффективность использования, поэтому вам не нужно разворачивать экземпляры или резервировать их вручную. Разделение работы также автоматизировано и оптимизировано для динамической балансировки отстающей работы. Нет необходимости искать «горячие клавиши» или предварительно обрабатывать входные данные.
Горизонтальное автомасштабирование
Горизонтальное автоматическое масштабирование рабочих ресурсов для оптимальной пропускной способности приводит к улучшению общего соотношения цены и производительности.
Гибкое планирование ресурсов для пакетной обработки
Для обработки с гибким временем планирования заданий, например заданий в ночное время, гибкое планирование ресурсов (FlexRS) предлагает более низкую цену за пакетную обработку. Эти гибкие задания помещаются в очередь с гарантией, что они будут получены для выполнения в течение шести часов.
Что вы будете проводить в рамках этого
В этой лаборатории кода вы начнете использовать Dataflow SQL, отправив оператор SQL через пользовательский интерфейс Dataflow SQL. Затем вы изучите работающий конвейер с помощью пользовательского интерфейса мониторинга потока данных.
Что вы узнаете
- Как отправить инструкцию SQL как задание потока данных в пользовательском интерфейсе Dataflow SQL.
- Как перейти к конвейеру потока данных.
- Изучите граф потока данных, созданный оператором SQL.
- Изучите информацию мониторинга, представленную на графике.
Что вам понадобится
- Проект Google Cloud Platform с включенной оплатой.
- Google Cloud Dataflow и Google Cloud PubSub включены.
2. Приступаем к настройке
Убедитесь, что у вас включены Dataflow API и Cloud Pub/Sub API. Вы можете убедиться в этом, посетив страницу API и сервисы.
3. Доступ к пользовательскому интерфейсу SQL потока данных
Пользовательский интерфейс Dataflow SQL — это параметр веб-интерфейса BigQuery для создания заданий Dataflow SQL. Вы можете получить доступ к пользовательскому интерфейсу SQL Dataflow из веб-интерфейса BigQuery.
- Перейдите в веб-интерфейс BigQuery.
- Переключитесь на механизм Cloud Dataflow.
- Нажмите раскрывающееся меню «Дополнительно» и выберите «Настройки запроса» .
- В меню настроек запроса выберите Механизм потока данных .
- В приглашении, которое появляется, если API потока данных и каталога данных не включены, нажмите «Включить API» .
- Нажмите Сохранить .
Вы также можете получить доступ к пользовательскому интерфейсу Dataflow SQL из интерфейса мониторинга потока данных .
- Перейдите в интерфейс мониторинга потока данных.
- Нажмите Создать задание из SQL .
4. Запуск задания потока данных с помощью SQL-запроса
Написание SQL-запросов к потоку данных
SQL-запросы Dataflow используют синтаксис запросов Dataflow SQL . Синтаксис SQL-запроса Dataflow аналогичен стандартному SQL BigQuery . Вы можете использовать расширения потоковой передачи SQL Dataflow для агрегирования данных из постоянно обновляемых источников потока данных, таких как Pub/Sub. Например, следующий запрос подсчитывает количество пассажиров в потоке поездок такси Pub/Sub каждую минуту:
SELECT
TUMBLE_START('INTERVAL 1 MINUTE') as period_start,
SUM(passenger_count) AS pickup_count
FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
WHERE
ride_status = "pickup"
GROUP BY
TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')
Выполнение SQL-запросов потока данных
Когда вы запускаете запрос SQL Dataflow, Dataflow превращает запрос в конвейер Apache Beam и выполняет этот конвейер.
Вы можете запустить запрос SQL к потоку данных с помощью Cloud Console или инструмента командной строки gcloud.
Чтобы выполнить SQL-запрос Dataflow, используйте пользовательский интерфейс Dataflow SQL.
- Перейдите в пользовательский интерфейс Dataflow SQL.
- Введите приведенный выше запрос Dataflow SQL в редактор запросов.
- Нажмите Создать задание Cloud Dataflow, чтобы открыть панель параметров задания.
- (Необязательно) Нажмите «Показать дополнительные параметры» и просмотрите список.
- В разделе «Назначение» панели выберите BigQuery в качестве типа вывода.
- Выберите идентификатор набора данных и создайте таблицу с именем «passengers_per_min».
- Нажмите Создать.
Дополнительные сведения о запросе данных и записи результатов запроса Dataflow SQL см. в разделе Использование Dataflow SQL .
5. Изучение задания в пользовательском интерфейсе мониторинга потока данных.
Когда вы выполняете свой конвейер с помощью управляемой службы Dataflow, вы можете просмотреть это и любые другие задания с помощью пользовательского веб-интерфейса мониторинга Dataflow. Интерфейс мониторинга позволяет вам видеть задания Dataflow и взаимодействовать с ними.
Вы можете получить доступ к интерфейсу мониторинга потока данных с помощью Google Cloud Console. Интерфейс мониторинга может показать вам:
- Список всех запущенных в данный момент заданий Dataflow и заданий, запущенных ранее за последние 30 дней.
- Графическое представление каждого конвейера.
- Подробная информация о статусе вашего задания, его выполнении и версии SDK.
- Ссылки на информацию об облачных сервисах Google, на которых работает ваш конвейер, например Compute Engine и Cloud Storage.
- Любые ошибки или предупреждения, возникающие во время выполнения задания.
Вы можете просмотреть диаграммы мониторинга заданий в интерфейсе мониторинга потока данных. Эти диаграммы отображают показатели за время выполнения задания конвейера и включают следующую информацию:
- Видимость на уровне шагов, помогающая определить, какие шаги могут вызывать задержку конвейера.
- Статистическая информация, которая может выявить аномальное поведение.
- Метрики ввода-вывода, которые могут помочь выявить узкие места в ваших источниках и приемниках.
Доступ к интерфейсу мониторинга потока данных
Чтобы получить доступ к интерфейсу мониторинга потока данных, выполните следующие действия:
- Перейдите в облачную консоль:
- Выберите свой проект Google Cloud.
- Нажмите на меню в левом верхнем углу.
- Перейдите в раздел «Большие данные» и нажмите «Поток данных».
Появится список заданий потока данных вместе с их статусом.
Список заданий потока данных в облачной консоли с заданиями в состояниях «Выполняется», «Сбой» и «Успешно».
Задание может иметь следующие статусы:
- — : пользовательский интерфейс мониторинга еще не получил статус от службы потока данных.
- Выполняется : задание в данный момент выполняется.
- Не запущено : задание создано, но системе требуется некоторое время для подготовки перед запуском.
- В очереди : задание FlexRS поставлено в очередь.
- Отмена ...: задание отменяется .
- Отменено : задание, которое было отменено пользователем.
- Слив ...: задание сливается .
- Слито : пользователь слил задание.
- Обновление ...: задание обновляется .
- Обновлено : пользователь обновил задание.
- Успешно : задание успешно завершено.
- Не удалось : задание не удалось завершить.
Найдите вакансию, в названии которой есть «dfsql», и щелкните ее название.
Страница сведений о вакансии, которая содержит следующее:
- График заданий: визуальное представление вашего конвейера.
- Показатели работы: показатели выполнения вашей работы.
- Панель информации о вакансии: описательная информация о вашем конвейере.
- Журналы заданий: журналы, созданные службой потока данных на уровне задания.
- Рабочие журналы: журналы, созданные службой Dataflow на рабочем уровне.
- Отчеты об ошибках заданий: диаграммы, показывающие, где ошибки произошли в течение выбранного периода времени, а также количество всех зарегистрированных ошибок.
- Селектор времени: инструмент, который позволяет регулировать временной интервал ваших показателей.
На странице сведений о задании вы можете переключить представление задания с помощью вкладки «График задания» и «Показатели задания».
- Нажмите на вкладку «ПОКАЗАТЕЛИ ЗАДАЧИ» и изучите диаграммы.
6. Остановка задания Dataflow SQL
Чтобы остановить задания Dataflow SQL, используйте команду «Отмена» . Остановка задания SQL потока данных с помощью Drain не поддерживается.