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