Airflow 如何设置仅在特定dag_运行期间使用的变量

Airflow 如何设置仅在特定dag_运行期间使用的变量,airflow,Airflow,如何设置在特定dag_运行期间使用的变量。我知道在xcom中设置值,但并不是所有我使用的操作符都支持xcom。我也不想将值存储到变量数据存储中,以防在当前dag运行时另一个dag运行开始,需要存储不同的值。问题不清楚,但从我的推断,我将尝试消除您的疑虑 并非我使用的所有操作符都支持xcom 显然,您将xcom与其他构造弄错了,因为xcom功能是BaseOperator本身定义的功能和(它是所有操作器的父项) 我也不想将值存储到变量数据存储中, 如果当前dag运行时另一个dag运行开始,则 需

如何设置在特定dag_运行期间使用的变量。我知道在xcom中设置值,但并不是所有我使用的操作符都支持xcom。我也不想将值存储到变量数据存储中,以防在当前dag运行时另一个dag运行开始,需要存储不同的值。

问题不清楚,但从我的推断,我将尝试消除您的疑虑


并非我使用的所有操作符都支持xcom

显然,您将
xcom
与其他构造弄错了,因为
xcom
功能是
BaseOperator
本身定义的功能和(它是所有
操作器的父项)


我也不想将值存储到变量数据存储中, 如果当前dag运行时另一个dag运行开始,则 需要存储不同的值

根据每-
DAG
基础将
变量
s分离出来是很简单的(而且更简单)(请参见);但是,对于单个
DAG
的不同
DagRun
来说,这种隔离将是一个挑战。我认为
xcom
是最简单的解决方法。查看一些有关
Xcom
s使用的见解



此外,如果您想在运行时操纵
变量
s
(或任何其他
气流
模型)(尽管我建议您特别避免使用
变量
s),
Airflow
还提供了充分的自由来利用底层的
SQLAlchemy ORM
框架。你可以从中获得灵感。

你的问题不清楚;请详细说明您的问题,更好地解释用例/问题陈述伟大的答案。所以目前,我已经找到了使用Xcom的方法,它也在一个需要通过宏进行字符串替换的文件中,并从
ti
变量中获取Xcom的值。因此,我感兴趣的是能够在任务本身的定义过程中使用xcom变量值,其中它实例化了运算符的obj,在其中一个参数中,我希望访问xcom变量来计算一些东西。@Joyce为此,您有3个选项[1]使用[2]使用[3]直接利用类似ORM的
SQLAlchemy
。另请参见@Joyce,此处更正:对于您的查询
。由于能够在任务本身的定义过程中使用xcom变量值,其中它实例化了操作员的obj。
,这只能通过上面的方法[3]实现:使用
SQLAlchemy
ORM