Как можно установить переменную для использования только во время определенного dag_run

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

1 ответ

Решение

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


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

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


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

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


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

Другие вопросы по тегам