本包目录(311 条)

Airflow TaskFlow API

TaskFlow 用 @task 装饰器把 Python 函数变成任务,返回值自动经 XCom 传给下游;配合 @dag 装饰器可省掉手写上下文与 xcom_pull,适合以 Python 逻辑为主的 DAG。

装饰器@task(任务)与 @dag(DAG)
数据传递函数返回值自动 XCom 序列化
建立依赖任务函数调用任务函数即可
适用纯 Python 逻辑、计算轻量的编排

TaskFlow 写法

TaskFlow 写法
from datetime import datetime
from airflow.decorators import dag, task

@dag(start_date=datetime(2026, 1, 1), schedule="0 3 * * *", catchup=False)
def etl_demo():
    @task
    def extract() -> dict:
        return {"rows": 100}

    @task
    def load(meta: dict) -> None:
        print(meta["rows"])

    load(extract())

etl_demo()
XCom 适合传小数据(行数、路径、元信息);几万行结果别塞 XCom,会写进元数据库拖垮调度。

易错点

  • 把 DataFrame 直接 return 当 XCom 传,序列化后体积巨大
  • 重命名 @task 函数会改变 task_id,历史任务与下游依赖要同步调整

数据来源与参考

  • Apache Airflow 官方文档:TaskFlow API
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌