一个开源的ETL工具Airflow
- 格式:doc
- 大小:23.50 KB
- 文档页数:5
一个开源的ETL工具Airflow
最近在弄画像标签每天ETL的调度事情,这篇文章分享一下一个开源的ETL
工具Airflow。
一、基础概念
Airflow是Airbnb内部发起并开源的一个ETL管理平台,使用Python编写实现的任务管
理、调度、监控工作流平台。这是其官方文档地址:Apache Airflow (incubating)
Documentation ,关于airflow产品的使用,里面有详细的介绍。
Airflow的调度依赖于crontab命令,与crontab相比airflow可以直观的看到任务执行情况、
任务之间的逻辑依赖关系、可以设定任务出错时邮件提醒、可以查看任务执行日志。
而crontab命令管理的方式存在以下几方面的弊端:
1、在多任务调度执行的情况下,难以理清任务之间的依赖关系;
2、不便于查看当前执行到哪一个任务;
3、任务执行失败时不便于查看执行日志,也即不方便定位报错的任务和错误原因;
4、不便于查看调度流下每个任务执行的起止消耗时间,这对于优化task作业是非常重要
的;
5、不便于记录历史调度任务的执行情况,而这对于优化作业和错误排查是很重要的;
Airflow中有两个最基本的概念:DAG和task,下面主要介绍一下。
DAG是什么:
DAG是Directed Acyclic Graph的缩写,即有向无环图。是所有要执行任务脚本(即task)
的集合,在这个DAG中定义了各个task的依赖关系、调度时间、失败重启机制等。通过
DAGid来标识每个DAG任务
每个DAG是由1到多个task组成
task是什么:
task是具体执行的任务脚本,可以是一个命令行(BashOperator),也可以是python脚本等。