Вопрос неясен, но из того, что я могу сделать вывод, я попытаюсь очистить ваши сомнения
не все операторы, которые я использую, имеют поддержку 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
рамки для этого.Вы можете черпать вдохновение из этого .