PythonOperator или SimpleHttpOperator, чтобы сделать HTTP-запрос на получение и сохранить результаты в хранилище GCP - PullRequest
0 голосов
/ 24 марта 2020

Я на начальных этапах обучения Airflow. Я изучаю Airflow для создания простого конвейера данных ETL (ELT?) И нахожусь в процессе выяснения архитектуры конвейера (каких операторов мне следует использовать). Основы моего конвейера данных:

  1. Выполнение HTTP GET-запроса от API для необработанных данных.
  2. Сохранение необработанных JSON результатов в корзину GCP.
  3. Преобразование данных и сохранение в базе данных BigQuery.

... и конвейер будет запускаться один раз в день.

Как видно из названия, я пытаюсь определить, является ли SimpleHttpOperator или PythonOperator более подходящим для использования при выполнении запросов HTTP GET для данных. Из этого несколько связанного сообщения stackoverflow, сообщения stackoverflow , автор просто пришел к выводу:

Хотя я думаю, что теперь я собираюсь просто использовать PythonOperator

Кажется, достаточно просто написать сценарий с 10-20 строками кода python, который выполняет http-запрос, идентифицирует область памяти GCP и записывает в эту корзину. Однако я не уверен, что это лучший подход для задач такого типа (вызовите api -> get data -> write to gcp storage bucket).

Любая помощь или мысли по этому поводу, любые примеры ссылок на создание подобных конвейеров и т. Д. c. было бы очень полезно. Заранее спасибо

1 Ответ

2 голосов
/ 24 марта 2020

Я рекомендую вам видеть воздушный поток как клей между этапами обработки. Обработка, выполняемая в Airflow, должна состоять в том, чтобы условно запускать или не выполнять шаг, делая l oop для шагов и обрабатывать ошибки.

Почему? Потому что, если завтра вы решите изменить свое приложение рабочего процесса, вам не придется повторно кодировать свой процесс, вам нужно будет только переписать логи рабочего процесса c (потому что вы изменили свое приложение рабочего процесса). Простое разделение задач.

Таким образом, я рекомендую вам развернуть ваши 10-20 строк кода python в облачных функциях и настроить SimpleHTTPOperator для его вызова. Кроме того, функция намного проще, чем рабочий процесс (для запуска и просмотра кода). Развертывания и обновления также будут проще.

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