В Airflow, как я могу создать рабочий процесс с несколькими базами данных, которые могут быть вызваны путем выполнения этого рабочего процесса?

#google-cloud-platform #airflow #airflow-scheduler

#google-cloud-platform #воздушный поток #airflow-планировщик

Вопрос:

У меня есть несколько баз данных, созданных в Airflow . но я хочу запустить их все через какой-нибудь общий модуль или DAG.Можем ли мы создать рабочий процесс, подобный Azkaban, чтобы все вызываемые базы данных были перечислены в этом потоке.

Ответ №1:

  • Вы можете создать, DAG который запускает другие DAG с помощью TriggerDagRunOperator , передавая их dag_id и другие соответствующие аргументы
  • Источник оператора можно найти в dagrun_operator.py

Также я предлагаю вам ознакомиться с разделом документов «Планирование и триггеры«

Ответ №2:

Вы можете использовать SubDagOperator.

  • Основная база данных видит все вложенные теги и управляет ими как обычными задачами
  • в графическом интерфейсе администратора Airflow в списке основных баз данных отображается только основная база данных, после чего можно будет «увеличить» вложенную базу данных в разделе просмотра графика графического интерфейса пользователя.
  • Мы можем управлять всеми базами данных, используя его основную базу данных или каждую вспомогательную базу данных отдельно, выбрав опцию увеличения

вот пример для оператора: https://github.com/apache/airflow/blob/master/airflow/example_dags/example_subdag_operator.py

Я рекомендовал использовать общий коэффициент dag для создания всех вложенных баз данных, если все они имеют одинаковый шаблон и рабочий процесс.