请描述在 Airflow 中创建一个基础 DAG 的具体步骤,包括主要组件和配置。
考察说明
考查候选人对 Airflow 核心概念和 DAG 定义方式的基本掌握。
回答思路
- 【回答框架 1】Airflow 中 DAG 是工作流编排的核心对象,通过 Python 代码定义。首先导入需要的模块,如 DAG 和 Operator。
- 【回答框架 2】创建 DAG 实例时需要设置 default_args,包括 owner、start_date、retries、retry_delay 等参数,并传入 schedule_interval 来定义调度周期。
- 【回答框架 3】使用上下文管理器或 with 语句定义 DAG,在其中添加 Task。每个 Task 由 Operator 实例化,例如 BashOperator 或 PythonOperator,需要指定 task_id 和具体执行逻辑。
- 【回答框架 4】通过设置 Task 之间的依赖关系(如 task1 >> task2)来定义执行顺序,然后保存 Python 文件到 dags 目录,Airflow 会自动加载并显示在 UI 中。
- 【关键点 1】DAG 定义使用 Python 代码,核心组件包括 default_args、schedule_interval 和 task 依赖。
- 【关键点 2】常用 Operator 包括 BashOperator 和 PythonOperator,任务通过 >> 或 set_downstream 设置依赖。
- 【关键点 3】DAG 文件放在 dags 目录后 Airflow 会定期扫描加载。
- 【易错点 1】start_date 设置为过去时间时,调度可能从该时间开始补跑,需注意 catchup 参数设置。
- 【易错点 2】依赖顺序错误会导致任务执行顺序不符合预期。
- 【易错点 3】避免在 DAG 定义中使用全局变量或复杂逻辑,应保持幂等。