Как можно установить переменную для использования только во время определенного dag_run - PullRequest
0 голосов
/ 16 февраля 2019

Как мне установить переменную для использования во время определенного dag_run.Я знаю о настройке значений в xcom, но не все операторы, которые я использую, имеют поддержку xcom.Я также не хотел бы сохранять значение в хранилище данных Variables, в случае, если во время работы текущего прогона начинается еще один прогон dag, в котором нужно хранить разные значения.

1 Ответ

0 голосов
/ 16 февраля 2019

Вопрос неясен, но из того, что я могу сделать вывод, я попытаюсь очистить ваши сомнения


не все операторы, которые я использую, имеют поддержку xcom

Очевидно, вы ошиблись xcom с какой-то другой конструкцией, потому что xcom является частью TaskInstance и функциями xcom_push() и xcom_pull() определены в самой BaseOperator (которая является родителем всех Airflow operator s)


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

Это просто (и не сложно) раздельный Variable с на основе DAG (см. point (6) );но да, для разных DagRun единичных DAG такая изоляция была бы проблемой.Я думаю, что xcom - самый простой способ для этого.Взгляните на this , чтобы узнать, как использовать Xcom s.


Кроме того, если вы хотите манипулировать Variable s (илилюбая другая Airflow модель ) во время выполнения (хотя я бы порекомендовал вам избегать этого, особенно на Variable с), Airflow также дает полную свободу для использования базового SQLAlchemy ORM рамки для этого.Вы можете черпать вдохновение из этого .

...