是什么
Airflow是一个可编程、调度和监控的工作流平台。
用户可以定义一组有依赖的任务,即有向无环图 (DAG),按照依赖依次执行。Airflow提供了丰富的命令行和强大的Web UI,方便的管控调度任务,可以实时监控运行状态。
(——Apache Airflow官网介绍)
目前最受欢迎的ETL(Extract-Transform-Load)工具/任务管理平台。但并不在乎每个任务的本身。
在Airflow未出现前,较多使用的是Linux crontab(达标任务管理器的基本功能)。
Linux crontab的不足:
- 在多任务调度执行情况下,难以理清任务之间的依赖关系
- 不便于查看当前执行到哪一个任务
- 任务执行失败时没有自动的重试和报警机制
- 不便于查看执行日志,=不方便定位报错的任务和错误原因
- 不便于查看调度流下每个任务的起止消耗时间,这对于优化task作业非常重要
- 没有记录历史调度任务的执行情况,这对优化作业和错误排查很重要
一些expensive的商业软件😭:Control-M,Fivetran(按行收费)
设计理念
- 动态:
Airflow管道是作为代码配置的(Python),允许动态管道生成。允许编写动态实例化管道的代码。 - 可扩展: