Airflow 存储和执行查询的最佳方式

Airflow 存储和执行查询的最佳方式,airflow,scheduling,Airflow,Scheduling,我开始将一些管道迁移到气流,我正在探索最佳实践。在我的例子中,我有一个管道/DAG,它执行几个sql脚本(大部分是顺序执行的)。我在想: 有一个动态任务来执行这些查询 将所有查询保存在每个dag的文件夹中 将查询顺序存储在另一个文件中(可能是yaml) 我知道这是可行的,但有没有更好的方法? 提前感谢您。Airflow当然支持使用模板脚本,特别是一种非常广泛的工具化方法,在DbAPiHook上应用SQL。基本上,您所能想到的存储、加载SQL文件并将其呈现给您的体系结构的大多数方法都将得到支持

我开始将一些管道迁移到气流,我正在探索最佳实践。在我的例子中,我有一个管道/DAG,它执行几个sql脚本(大部分是顺序执行的)。我在想:

  • 有一个动态任务来执行这些查询
  • 将所有查询保存在每个dag的文件夹中
  • 将查询顺序存储在另一个文件中(可能是yaml)
我知道这是可行的,但有没有更好的方法?
提前感谢您。

Airflow当然支持使用模板脚本,特别是一种非常广泛的工具化方法,在DbAPiHook上应用SQL。基本上,您所能想到的存储、加载SQL文件并将其呈现给您的体系结构的大多数方法都将得到支持

您可能需要研究以下几个概念:

  • 的主界面
  • 在DAG模型上。。。将是Airflow查找包含在模板参数中的文件的位置
  • 它使用Jinja将变量从运行时上下文推送到模板中
因此,您可以有如下内容:


Task=SQLOperator(
dag=dag,
task\u id=“sql\u task”,
sql=[“filename1.sql”,“filename2.sql”]
)
这将为您提供所需的一切,以完全按照您喜欢的方式实现