Использование Dataflow против Cloud Composer - PullRequest
0 голосов
/ 12 января 2019

Я прошу прощения за этот наивный вопрос, но я хотел бы получить некоторые разъяснения о том, является ли Cloud Dataflow или Cloud Composer подходящим инструментом для работы, и мне неясно из документации Google.

В настоящее время я использую Cloud Dataflow для чтения нестандартного CSV-файла, выполнения базовой обработки и загрузки его в BigQuery.

Позвольте мне привести очень простой пример:

# file.csv
type\x01date
house\x0112/27/1982
car\x0111/9/1889

Из этого файла мы обнаруживаем схему и создаем таблицу BigQuery, что-то вроде этого:

`table`
type (STRING)
date (DATE)

И мы также форматируем наши данные для вставки (в python) в BigQuery:

DATA = [
    ("house", "1982-12-27"),
    ("car", "1889-9-11")
]

Это огромное упрощение того, что происходит, но именно так мы сейчас используем Cloud Dataflow.

Тогда у меня вопрос: откуда на снимке Cloud Composer? Какие дополнительные функции он может предоставить на вышеуказанном? Другими словами, зачем его использовать «поверх» облачного потока данных?

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Облачный композитор (поддерживаемый Apache Airflow) предназначен для планирования задач в небольших масштабах.

Вот пример, который поможет вам понять:

Скажем, у вас есть файл CSV в GCS, и, используя ваш пример, скажем, вы используете Cloud Dataflow для его обработки и вставки отформатированных данных в BigQuery. Если это одноразовая вещь, вы только что закончили ее и она идеальна.

Теперь предположим, что ваш CSV-файл перезаписывается каждый день в 01:00 UTC, и вы хотите запускать одно и то же задание Dataflow для его обработки каждый раз, когда он перезаписывается. Если вы не хотите вручную запускать задание точно в 01:00 UTC, независимо от выходных и праздничных дней, вам нужно периодически запускать задание для вас (в нашем примере в 01:00 UTC каждый день). Cloud Composer может помочь вам в этом случае. Вы можете предоставить конфигурацию для Cloud Composer, которая включает в себя какие задания (операторы) запускать, когда запускать (указать время начала задания) и с какой периодичностью (может быть ежедневно, еженедельно или даже ежегодно).

Кажется, уже круто, но что если вы выберете ежедневное время работы, если файл CSV будет перезаписан не в 01:00 UTC, а в любое время дня? Cloud Composer предоставляет датчики, которые могут отслеживать состояние (в этом случае время изменения файла CSV). Cloud Composer может гарантировать, что он начнет работу, только если условие выполнено.

Существует множество других функций, которые предоставляет Cloud Composer / Apache Airflow, в том числе наличие группы DAG для запуска нескольких заданий, повторение неудачных задач, уведомление об ошибках и удобная панель инструментов. Вы также можете узнать больше из их документации.

0 голосов
/ 12 января 2019

В качестве основы описанной задачи Cloud Dataflow - хороший выбор. Большие данные, которые можно обрабатывать параллельно, - хороший выбор для облачного потока данных.

Реальный мир обработки больших данных обычно грязный. Данные, как правило, очень грязные, поступают постоянно или большими партиями и должны обрабатываться с учетом времени. Обычно для извлечения желаемых данных требуется координация нескольких задач / систем. Подумайте о загрузке, преобразовании, объединении, извлечении и хранении типов задач. Обработка больших данных часто склеивается с использованием сценариев оболочки и / или программ на Python. Это затрудняет процессы автоматизации, управления, планирования и контроля.

Google Cloud Composer - это большой шаг вперед по сравнению с Cloud Dataflow. Cloud Composer - это кроссплатформенный инструмент оркестровки, который поддерживает AWS, Azure и GCP (и более) с возможностями управления, планирования и обработки.

Облачный поток данных обрабатывает задачи. Cloud Composer управляет целыми процессами, координируя задачи, которые могут включать BigQuery, Dataflow, Dataproc, Storage, локальные и т. Д.

Тогда у меня вопрос: откуда на экране появляется Cloud Composer? Какие дополнительные функции он может предоставить на вышеуказанном? В других словами, зачем его использовать "поверх" облачного потока данных?

Если вам нужно / требуется больше управления, контроля, планирования и т. Д. Для задач с большими данными, тогда Cloud Composer добавляет значительную ценность. Если вы время от времени выполняете простую задачу Cloud Dataflow по требованию, Cloud Composer может оказаться излишним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...