1. 程式人生 > >Airflow Dag視覺化管理編輯工具Airflow Console

Airflow Dag視覺化管理編輯工具Airflow Console

Airflow Console: https://github.com/Ryan-Miao/airflow-console [Apache Airflow](https://github.com/apache/airflow)擴充套件元件, 可以輔助生成dag, 並存儲到git倉庫. Airflow提供了基於python語法的dag任務管理,我們可以定製任務內容 和任務依賴. 但對於很多資料分析人員來說,操作還是過於複雜. 期望可以 通過簡單的頁面配置去管理dag. 即本專案提供了一個dag視覺化配置管理方案. ## 如何使用 ### 一些概念 **DAG**: Airflow原生的dag, 多個任務依賴組成的有向無環圖, 一個任務依賴鏈。 **Ext Dag**: DAG擴充套件, DAG生成模板,通過頁面配置Ext Dag可以一鍵生成DAG python配置。 **Ext Dag Category**: Airflow原生不提供分類的概念,但Console我們擴充套件了分類功能, 我們建立不同Dag模板可以分屬於不同的DAG分類。 **Ext Dag Task**: Ext Dag的任務,真正任務的封裝體,分為Operator和Sensor, 可以組裝成Ext Dag. ### 1.建立業務分類. 我們的排程任務可以根據業務進行分類. 首先建立我們的業務型別. ![](https://img2020.cnblogs.com/blog/686418/202007/686418-20200728171242355-594842635.png) ![](https://img2020.cnblogs.com/blog/686418/202007/686418-20200728171411555-336313811.png) ### 2.建立dag ![](https://img2020.cnblogs.com/blog/686418/202007/686418-20200728171854815-536740287.png) ### 3.建立任務 點選task按鈕進入task列表, 再點選add新增一個任務. 新增bash任務 ![](https://img2020.cnblogs.com/blog/686418/202007/686418-20200729175302904-1912323827.png) 新增hive sql任務 ![](https://img2020.cnblogs.com/blog/686418/202007/686418-20200729175448222-1249035148.png) 新增hive出庫到mysql任務, 對應的外掛為[hive_to_rdbms_operator](https://github.com/Ryan-Miao/docker-airflow/blob/master/plugins/operators/hive_to_rdbms_operator.py) ![](https://img2020.cnblogs.com/blog/686418/202007/686418-20200729175919490-890271750.png) ### 4.配置任務依賴關係 Airflow提供了任務上下游依賴的管理方案,具體就是使用python的 >> 語法 a >> b 表示a的{{ds}}的任務執行完畢才可以執行b. ![](https://img2020.cnblogs.com/blog/686418/202007/686418-20200729180142962-813610001.png) 點選更新按鈕儲存依賴關係. ### 5.生成dag.py指令碼 點選提交按鈕, 生成python指令碼預覽. ![](https://img2020.cnblogs.com/blog/686418/202007/686418-20200729180300371-693181066.png) 確認沒有問題後, 提交就可以將dag儲存的git倉庫. Airflow那邊定時拉取git更新即可. ![](https://img2020.cnblogs.com/blog/686418/202007/686418-20200729180444598-1205007044.png) ## 本地啟動 通過[docker-airflow](https://github.com/puckel/docker-airflow) 啟動airflow, 暴露pg埠和webserver埠, [docker-compose.yml](doc/docker-compose.yml) ``` cd doc docker-compose up ``` 啟動後訪問localhost:8090即airflow初始化完成. 1. 修改本專案db 修改application-dev.yml中DataSource的url host為localhost. 2. 匯入db 將[schema.sql](doc/schema.sql)匯入pg. 3. 啟動本專案 訪問localhost:8081/api 即swagger地址. 4.