Airflow初探

Airflow是Airbnb开源的框架,可以做data pipeline和任务监控调度。它的优点在于能够非常方便的去监控、执行任务。比如每天重复要run的code,需要定时抓取的数据。
在airflow中有四个主要的概念:

DAG Run

在airflow中,可以自由定义任务的依赖关系,这样的结构关系可以组成一个DAG(有向无环图)。由于是有向无环图,从根源上杜绝了任务执行进入死循环的这种情况。并且通过配置任务图的start_time,end_time,interval time,能够灵活的开始执行一个定期的工作链。而DAG Run则是每次执行时候的实例,在UI中可以点进去看每次执行实例的执行情况

Task Instance

Task Instance和DAG Run可以看做是一个从属关系,每次执行job的时候,DAG Run表示一整个有向无环图的执行实例,图中一个个相互依赖的关系就是一个个task instance,任务实例。这些instance在UI中也可以非常方便的查看执行状态。如果其中一个instance failed了,我们可以clear这个instance,airflow会清空这个instance的执行状态,认为这个instance还未执行,需要被执行,这样这个instance就会再次run起来

Operator,Sensor

这俩是更细粒度的执行算子,operator是显示的操作,一个operator可以包进所有能够在python中被执行的工作。sensors则偏向隐式操作,可以去暂停执行依赖的任务,直到这些依赖任务满足条件,或者检查这些任务的执行状态

还有值得注意的是,airflow会有一个自己的db,用于存储任务相关的状态信息,以便airflow中的scheduler可以即时调度任务。
还没有正式的使用,过两天更新下airflow的具体代码使用方法

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容