Airflow - Задачи, которые записывают файлы локально (GCS)

Я занимаюсь созданием нескольких конвейеров в Airflow после нескольких последних лет использования AWS DataPipeline. У меня есть пара вопросов, которые я не могу ответить, и надеюсь на некоторые разъяснения. Для контекста я использую Google Cloud Composer.

В DataPipeline я часто создавал группы DAG с несколькими задачами, которые выглядели бы примерно так:

  1. Получить данные
  2. Преобразовать данные
  3. Пишите данные куда-нибудь

На каждом этапе пути я мог определять inputNode и / или outputNode. Эти outputNodes будут подключены локально к средству выполнения задач, и любые файлы, которые были записаны локально, будут загружены после завершения задачи в корзину s3, определенную как outputNode.

Я не думаю, что в Airflow есть такая же концепция, верно?

В: Куда деваются файлы, если я записываю их локально в задаче воздушного потока? Я предполагаю, что они просто находятся в средстве выполнения задач, предполагая, что он не уничтожает себя после завершения задачи?

Кажется, тогда как в AWS DP я мог бы смонтировать outputNode, сделать что-то вроде:

f = open("hello.txt", "a")
f.write("world")
f.close()

и когда задача завершится, файл hello.txt будет загружен в корзину s3. Но в Airflow, если бы я сделал то же самое, файл просто остался бы на бегуне, который выполнял задачу?

В: Стоит ли думать о написании задач по-другому? Похоже, что если моему файлу нужно куда-то идти, я должен явно сделать это в рамках задачи. Дальнейшие действия: если это так, следует ли мне удалять локально созданные файлы после загрузки их в хранилище и / или контролировать объем места, которое эти файлы занимают на моем бегунке?

Мы будем очень благодарны за любую рекомендованную литературу для тех, кто переходит с AWS DP на Airflow, материалы, которые вы сочли полезными.

Спасибо!

ИЗМЕНИТЬ

По мере того, как я продолжал исследования, на основе этой документации мне кажется, что GCS и Композитор делает то же самое. Похоже, что каталог / data в вашей среде композитора смонтирован на всех узлах кластера в /home/airflow/gcs/data.

Тестированием я смог подтвердить, что это так.


person JW2    schedule 23.12.2019    source источник


Ответы (1)


Подумайте о том, чтобы записывать данные между задачами в озеро данных (GCS), чтобы эти задачи можно было повторно запустить в будущем ... изображение, если вы хотите изменить алгоритм и повторно запустить последний шаг на основе истории за год данные.

person ryw    schedule 24.12.2019