Airflow Dag視覺化管理編輯工具Airflow Console
阿新 • • 發佈:2020-07-29
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.