Apache Airflow 调度平台
Airflow 用 Python DAG 描述任务依赖,适合批处理、ETL 和定时调度。核心组件包括 scheduler、webserver、worker、metadata database 和 executor。生产环境通常使用 CeleryExecutor 或 KubernetesExecutor。
本地快速启动:
airflow standalone
# 访问 http://localhost:8080
查看 DAG 和任务:
airflow dags list
airflow tasks list example_dag
airflow dags trigger example_dag
airflow dags state example_dag 2026-10-18
测试单个任务:
airflow tasks test example_dag extract 2026-10-18
回填历史数据:
airflow dags backfill example_dag \
--start-date 2026-10-01 \
--end-date 2026-10-07
清理元数据:
airflow db clean --clean-before-timestamp '2026-01-01'
DAG 示例:
from airflow import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime
with DAG('demo', start_date=datetime(2026, 1, 1),
schedule='0 2 * * *', catchup=False) as dag:
extract = BashOperator(task_id='extract', bash_command='echo extract')
load = BashOperator(task_id='load', bash_command='echo load')
extract >> load
start_date 和 schedule 配错,任务没有按预期触发。ModuleNotFoundError。合上页面,先回答,再展开对照。
ModuleNotFoundError,原因通常在哪?