SuperAPI AI 工具集

airflow

编程与开发

查看项目

更新于 10-15 21:49

技能介绍

用途:Airflow 用于以代码方式编排数据管道,支持 DAG 动态生成、事件驱动触发与任务调度,可跨云端和本地系统调度、监控和编写复杂 DAG。

主要能力:

  • TaskFlow API:用 @dag、@task 装饰器编写 Pythonic DAG,支持 XCom 数据自动传递。
  • 动态任务映射:通过 .expand() 依据上游输出并发展开任务,实现扇出/扇入。
  • 事件驱动与可延迟算子:长时间等待外部任务时释放 worker 槽位给 triggerer 服务。
  • 执行器:支持 Celery、Kubernetes 执行器。

使用方式:用 TaskFlow API 定义任务函数并串联调用。示例结构:用 @dag(schedule="@daily", start_date=datetime(2025,1,1), catchup=False, tags=["pipeline"]) 定义 DAG,内部用 @task 定义 extract、transform、load 并按顺序调用。.expand() 用于动态扇出。

适用场景:企业级数据管道编排、现代 TaskFlow 工作负载、处理可变数量文件/分区的动态映射、长时外部作业的事件驱动调度。

限制与最佳实践:不要在 DAG 顶层脚本执行重计算或数据库查询,应放入任务内;不要用 XCom 存大型二进制或超大 DataFrame,仅存元数据/S3 指针;不要硬编码凭据,应使用 Connections 与 Secrets Backends。DAG 建议设置 catchup=False,可用 pytest 与 dag.test() 在 CI 中测试解析错误。常见问题包括 DagBag 解析超时、任务无日志失败、XCom 载荷超限。具体收费、价格、平台支持等暂未提供。