Запуск ваших первых операторов SQL с использованием Google Cloud Dataflow

1. Введение

Облако-Dataflow.png

Облачный поток данных 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.

  1. Перейдите в веб-интерфейс BigQuery.

  1. Переключитесь на механизм Cloud Dataflow.
  • Нажмите раскрывающееся меню «Дополнительно» и выберите «Настройки запроса» .

Раскрывающееся меню «Дополнительно» в веб-интерфейсе BigQuery с выбранным параметром «Настройки запроса».

  • В меню настроек запроса выберите Механизм потока данных .
  • В приглашении, которое появляется, если API потока данных и каталога данных не включены, нажмите «Включить API» .

Меню настроек запроса с приглашением «Включить 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 в качестве типа вывода.

1155e94529ff58fe.png

  • Выберите идентификатор набора данных и создайте таблицу с именем «passengers_per_min».
  • Нажмите Создать.

Дополнительные сведения о запросе данных и записи результатов запроса Dataflow SQL см. в разделе Использование Dataflow SQL .

5. Изучение задания в пользовательском интерфейсе мониторинга потока данных.

Когда вы выполняете свой конвейер с помощью управляемой службы Dataflow, вы можете просмотреть это и любые другие задания с помощью пользовательского веб-интерфейса мониторинга Dataflow. Интерфейс мониторинга позволяет вам видеть задания Dataflow и взаимодействовать с ними.

Вы можете получить доступ к интерфейсу мониторинга потока данных с помощью Google Cloud Console. Интерфейс мониторинга может показать вам:

  • Список всех запущенных в данный момент заданий Dataflow и заданий, запущенных ранее за последние 30 дней.
  • Графическое представление каждого конвейера.
  • Подробная информация о статусе вашего задания, его выполнении и версии SDK.
  • Ссылки на информацию об облачных сервисах Google, на которых работает ваш конвейер, например Compute Engine и Cloud Storage.
  • Любые ошибки или предупреждения, возникающие во время выполнения задания.

Вы можете просмотреть диаграммы мониторинга заданий в интерфейсе мониторинга потока данных. Эти диаграммы отображают показатели за время выполнения задания конвейера и включают следующую информацию:

  • Видимость на уровне шагов, помогающая определить, какие шаги могут вызывать задержку конвейера.
  • Статистическая информация, которая может выявить аномальное поведение.
  • Метрики ввода-вывода, которые могут помочь выявить узкие места в ваших источниках и приемниках.

Доступ к интерфейсу мониторинга потока данных

Чтобы получить доступ к интерфейсу мониторинга потока данных, выполните следующие действия:

  • Перейдите в облачную консоль:

  • Выберите свой проект Google Cloud.
  • Нажмите на меню в левом верхнем углу.
  • Перейдите в раздел «Большие данные» и нажмите «Поток данных».

Появится список заданий потока данных вместе с их статусом.

58f6402cc923d6bb.png

Список заданий потока данных в облачной консоли с заданиями в состояниях «Выполняется», «Сбой» и «Успешно».

Задание может иметь следующие статусы:

  • : пользовательский интерфейс мониторинга еще не получил статус от службы потока данных.
  • Выполняется : задание в данный момент выполняется.
  • Не запущено : задание создано, но системе требуется некоторое время для подготовки перед запуском.
  • В очереди : задание FlexRS поставлено в очередь.
  • Отмена ...: задание отменяется .
  • Отменено : задание, которое было отменено пользователем.
  • Слив ...: задание сливается .
  • Слито : пользователь слил задание.
  • Обновление ...: задание обновляется .
  • Обновлено : пользователь обновил задание.
  • Успешно : задание успешно завершено.
  • Не удалось : задание не удалось завершить.

Найдите вакансию, в названии которой есть «dfsql», и щелкните ее название.

e3bce9b1929564c9.png

Страница сведений о вакансии, которая содержит следующее:

  • График заданий: визуальное представление вашего конвейера.
  • Показатели работы: показатели выполнения вашей работы.
  • Панель информации о вакансии: описательная информация о вашем конвейере.
  • Журналы заданий: журналы, созданные службой потока данных на уровне задания.
  • Рабочие журналы: журналы, созданные службой Dataflow на рабочем уровне.
  • Отчеты об ошибках заданий: диаграммы, показывающие, где ошибки произошли в течение выбранного периода времени, а также количество всех зарегистрированных ошибок.
  • Селектор времени: инструмент, который позволяет регулировать временной интервал ваших показателей.

На странице сведений о задании вы можете переключить представление задания с помощью вкладки «График задания» и «Показатели задания».

  • Нажмите на вкладку «ПОКАЗАТЕЛИ ЗАДАЧИ» и изучите диаграммы.

7076f8a8911066ab.png

6. Остановка задания Dataflow SQL

Чтобы остановить задания Dataflow SQL, используйте команду «Отмена» . Остановка задания SQL потока данных с помощью Drain не поддерживается.

1229697a873e1cf9.png