【发布时间】:2021-12-15 09:28:38
【问题描述】:
我有一个 DAG,我想用一些参数在 Composer 中启动它。 我不能使用 Airflow 全局变量,因为我想用不同的“上下文”启动同一个 DAG。代表此上下文的我的参数
感谢您的帮助
【问题讨论】:
我有一个 DAG,我想用一些参数在 Composer 中启动它。 我不能使用 Airflow 全局变量,因为我想用不同的“上下文”启动同一个 DAG。代表此上下文的我的参数
感谢您的帮助
【问题讨论】:
您可以做的是在单独的文件上创建一个 dag 作为函数,然后只需使用不同的 dag 配置重用您的 dag 代码。下面表示的是伪代码中的方法:
Dag 文件夹
#ie:
#machine_export.py
#car_export.py
#plane_export.py
from logic import export_pub_template
config = {
'param1': ...
'param2': ...
}
with DAG(dag_id='',
...
) as dag:
export_pub_template(config)
逻辑文件夹
#push_data_template_dag.py
def export_pub_template(config):
get_data = get_data_custom_operator(config.params)
export_data = send_data_to_db(config.params)
get_data >> export_data
另外,这里还有一个类似的approach。它遵循相同的模式,即分解 DAG 代码,以便您可以在类似的 DAG 中重用它。
有关编写 DAG 的详细信息,您可以查看此link。
【讨论】: