airflow介绍


airflow是什么?

airflow是Airbnb开源的一个用python编写的调度工具,项目于2014年启动,2015年春季开源,2016年加入Apache软件基金会的孵化计划。

Airflow is a platform to programmatically author, schedule and monitor workflows.
airflow是一个可编程、调度和监控的工作流平台。

Use airflow to author workflows as directed acyclic graphs (DAGs) of tasks. The airflow scheduler executes your tasks on an array of workers while following the specified dependencies. Rich command line utilities make performing complex surgeries on DAGs a snap. The rich user interface makes it easy to visualize pipelines running in production, monitor progress, and troubleshoot issues when needed.
基于有向无环图(DAG),airflow可以定义一组有依赖的任务,按照依赖依次执行。airflow提供了丰富的命令行工具用于系统管控,而其web管理界面同样也可以方便的管控调度任务,并且对任务运行状态进行实时监控,方便了系统的运维和管理。

将工作流定义为代码时,它们将变得更具可维护性,可版本化,可测试和协作性。

 

 

 

原则

  • 动态的:气流管道是作为代码配置的(Python),允许动态管道生成。这允许编写动态实例化管道的代码。

  • 可扩展:轻松定义您自己的运算符,执行程序,并扩展库,使其适合于您的环境的抽象级别。

  • 优雅:气流管道简洁明了。使用功能强大的Jinja模板引擎,将脚本参数化内置于Airflow的核心中。

  • 可扩展:气流具有模块化体系结构,并使用消息队列来安排任意数量的工作人员。气流已准备好扩展到无穷大。

 

airflow能用来干什么?

在实际项目中,我们经常遇到以下场景:

  • 运维人员,定时对服务器执行脚本某些脚本,最简单的方式是添加一些crond任务,但如果想追溯各个任务的执行结果时?
  • 在大数据场景下,每隔一段时间需导出线上数据、导入到大数据平台、触发数据处理等多个子操作,且各个子操作含有依赖关系时?
  • 在管理大量主机时,想要一个统一的作业管理平台,能在上面定义各种任务来管理下面的设备?

airflow通过DAG配置文件,能轻松定义各种任务及任务之间的依赖关系和调度执行,并一个可视化的操作web界面

airflow有什么优势?

  • 自带web管理界面,易上手;
  • 业务代码和调度代码完全解耦;
  • 通过python代码定义子任务,并支持各种Operate操作器,灵活性大,能满足用户的各种需求;
  • python开源项目,支持扩展operate等插件,便于二次开发;
    类似的工具有akzban,quart等;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM