首页/数据/数据工程与 ETL 速查/Airflow DAG 文件结构
本包目录(311 条)

Airflow DAG 文件结构

DAG 定义就是一个 Python 文件,放在 $AIRFLOW_HOME/dags 目录下由调度器周期扫描解析;文件里用 with DAG(...) 声明 dag_id、调度周期、开始日期与默认参数,任务是文件中的算子实例。

定义方式Python 文件(dags 目录自动扫描)
扫描间隔dag_dir_list_interval 控制
关键参数dag_id / schedule / start_date / catchup
解析失败文件报错则该 DAG 在界面中不可见

最小 DAG 示例

最小 DAG 示例
from datetime import datetime
from airflow import DAG
from airflow.operators.bash import BashOperator

with DAG(
    dag_id="daily_orders",
    start_date=datetime(2026, 1, 1),
    schedule="0 2 * * *",
    catchup=False,
    tags=["dw"],
) as dag:
    extract = BashOperator(task_id="extract", bash_command="echo extract ok")
DAG 文件只做声明:不要在文件顶层直接执行拉数逻辑,否则每次扫描解析都会真的跑一次。

易错点

  • 在 DAG 文件顶层写数据库连接或 HTTP 请求:解析期就会执行,拖慢调度器甚至报错
  • 改 dag_id 等于新建 DAG,历史运行记录不会跟着走

数据来源与参考

  • Apache Airflow 官方文档:DAGs(Writing DAGs)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌