首页/数据/数据工程与 ETL 速查/Airflow Variables 参数化

Airflow Variables 参数化

Variables 存全局配置类小值(阈值、开关、地址),运行时用 Variable.get 读取;高频读取会打元数据库,推荐模板引用方式或在执行器侧缓存。

写入界面 / CLI / API / 环境变量 AIRFLOW_VAR_X
读取Variable.get(key, deserialize_json=True)
模板引用{{ var.value.key }}
适用阈值、开关、小段配置

CLI 设置变量

CLI 设置变量
airflow variables set batch_size 500
airflow variables set alert_webhook 'https://ops.example.com/hook'

DAG 内使用

DAG 内使用
from airflow.models import Variable
batch_size = int(Variable.get("batch_size", default_var="500"))
where = "{{ var.value.dw_start_date }}"
在每个任务的执行函数里调用 Variable.get 会造成大量元数据库查询,尽量在模板里引用或缓存。

易错点

  • Variable 存 JSON 字符串时忘记 deserialize_json=True,拿到的是未解析字符串
  • 把每天变化的值放 Variables 当参数用,容易与 DAG 触发参数混淆

数据来源与参考

  • Apache Airflow 官方文档:Variables
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌