DataX-Web 2.1.1發佈
DataX阿里在開源的時候並未提供任何可視化界面,咱們在使用的過程當中,須要將Json配置文件放到DataX的job路徑下,隨着業務的增長,配置文件不方便管理和遷移而且每次執行都須要記錄命令。
目前DataX只支持單機版,多節點之間的協做不能控制,咱們但願能有一款有友好的可視化界面,支持定時任務,支持分佈式的數據同步利器,這也是該項目的目標。html
System Requirements
- Language: Java 8
Python2.7(支持Python3須要修改替換datax/bin下面的三個python文件,替換文件在doc/datax-web/datax-python3下)
- Environment: MacOS, Windows,Linux
- Database: Mysql5.7
Features
- 一、經過Web構建DataX Json;
- 二、DataX Json保存在數據庫中,方便任務的遷移,管理;
- 三、Web實時查看抽取日誌,相似Jenkins的日誌控制檯輸出功能;
- 四、DataX運行記錄展現,可頁面操做中止DataX做業;
- 五、支持DataX定時任務,支持動態修改任務狀態、啓動/中止任務,以及終止運行中任務,即時生效;
- 六、調度採用中心式設計,支持集羣部署;
- 七、任務分佈式執行,任務"執行器"支持集羣部署;
- 八、執行器會週期性自動註冊任務, 調度中心將會自動發現註冊的任務並觸發執行;
- 九、路由策略:執行器集羣部署時提供豐富的路由策略,包括:第一個、最後一個、輪詢、隨機、一致性HASH、最不常用、最近最久未使用、故障轉移、忙碌轉移等;
- 十、阻塞處理策略:調度過於密集執行器來不及處理時的處理策略,策略包括:單機串行(默認)、丟棄後續調度、覆蓋以前調度;
- 十一、任務超時控制:支持自定義任務超時時間,任務運行超時將會主動中斷任務;
- 十二、任務失敗重試:支持自定義任務失敗重試次數,當任務失敗時將會按照預設的失敗重試次數主動進行重試;
- 1三、任務失敗告警;默認提供郵件方式失敗告警,同時預留擴展接口,可方便的擴展短信、釘釘等告警方式;
- 1四、用戶管理:支持在線管理系統用戶,存在管理員、普通用戶兩種角色;
- 1五、任務依賴:支持配置子任務依賴,當父任務執行結束且執行成功後將會主動觸發一次子任務的執行, 多個子任務用逗號分隔;
- 1六、運行報表:支持實時查看運行數據,以及調度報表,如調度日期分佈圖,調度成功分佈圖等;
- 1七、指定增量字段,配置定時任務自動獲取每次的數據區間,任務失敗重試,保證數據安全;
- 1八、頁面可配置DataX啓動JVM參數;
- 1九、數據源配置成功後添加手動測試功能;
- 20、能夠對經常使用任務進行配置模板,在構建完JSON以後可選擇關聯模板建立任務;
- 2一、jdbc添加hive數據源支持,可在構建JSON頁面選擇數據源生成column信息並簡化配置;
- 2二、優先經過環境變量獲取DataX文件目錄,集羣部署時不用指定JSON及日誌目錄;
- 2三、經過動態參數配置指定hive分區,也能夠配合增量實現增量數據動態插入分區;
- 2四、任務類型由原來DataX任務擴展到Shell任務、Python任務、PowerShell任務;
- 2五、添加HBase數據源支持,JSON構建可經過HBase數據源獲取hbaseConfig,column;
- 2六、添加MongoDB數據源支持,用戶僅須要選擇collectionName便可完成json構建;
- 2七、添加執行器CPU、內存、負載的監控頁面;
- 2八、添加24類插件DataX JSON配置樣例
- 2九、公共字段(建立時間,建立人,修改時間,修改者)插入或更新時自動填充
- 30、對swagger接口進行token驗證
- 3一、任務增長超時時間,對超時任務kill datax進程,可配合重試策略避免網絡問題致使的datax卡死。
Quick Start
1. 下載datax打包以後的文件或者github拉取datax代碼打包
2. 拉取release最新版本或master分支到本地代碼庫,執行doc/db下面的datax_web.sql文件(注意更新語句有指定庫名)
3. 修改datax_admin下application.yml的數據庫配置信息及郵件地址信息
4. 修改datax-executor下application.yml文件
- 一、datax.job.admin.addresses(調度中心地址,多個以逗號分隔)
- 二、datax.job.executor.logpath(數據抽取日誌文件保存路徑)
- 三、datax.executor.jsonpath(datax json臨時文件保存路徑)
- 四、datax.pypath(datax/bin/datax.py)注意:是第一步中DataX打包好的,DataX啓動文件的地址
若是系統配置DataX環境變量(DATAX_HOME)二、三、4步可省略,log文件和臨時json存放在環境變量路徑下。前端
5.執行器配置(使用開源項目xxl-job)
- 一、"調度中心OnLine:"右側顯示在線的"調度中心"列表, 任務執行結束後, 將會以failover的模式進行回調調度中心通知執行結果, 避免回調的單點風險;
- 二、"執行器列表" 中顯示在線的執行器列表, 可經過"OnLine 機器"查看對應執行器的集羣機器;
執行器屬性說明
一、AppName: (與datax-executor中application.yml的datax.job.executor.appname保持一致)
每一個執行器集羣的惟一標示AppName, 執行器會週期性以AppName爲對象進行自動註冊。可經過該配置自動發現註冊成功的執行器, 供任務調度時使用;
二、名稱: 執行器的名稱, 由於AppName限制字母數字等組成,可讀性不強, 名稱爲了提升執行器的可讀性;
三、排序: 執行器的排序, 系統中須要執行器的地方,如任務新增, 將會按照該排序讀取可用的執行器列表;
四、註冊方式:調度中心獲取執行器地址的方式;
自動註冊:執行器自動進行執行器註冊,調度中心經過底層註冊表能夠動態發現執行器機器地址;
手動錄入:人工手動錄入執行器的地址信息,多地址逗號分隔,供調度中心使用;
五、機器地址:"註冊方式"爲"手動錄入"時有效,支持人工維護執行器的地址信息;
6. idea啓動 datax-admin,datax-executor
7. 啓動成功後打開頁面(默認管理員用戶名:admin 密碼:123456)
http://localhost:8080/index.html#/dashboard
java
8. 構建JSON腳本
JSON構建目前支持的數據源有hive,mysql,oracle,postgresql,sqlserver,hbase,mongodb其它數據源的JSON構建正在開發中,暫時須要手動編寫。
python
9. 建立任務
DataX任務
Shell任務
Python任務
PowerShell任務
10. 任務列表
11. 能夠點擊查看日誌,實時獲取日誌信息,終止正在執行的datax進程
12. admin能夠建立用戶,編輯用戶信息
13.DataX JSON樣例(樣例地址)
Linux部署說明
Quick Start操做完前四步以後github
- 五、執行mvn package -Dmaven.test.skip=true
- 六、分別將datax-admin、datax-executor模塊target下datax-admin-1.0.0.jar、datax-executor-1.0.0.jar放到對應服務器
- 七、分別啓動datax-admin-1.0.0.jar、datax-executor-1.0.0.jar
- 八、啓動命令demo:nohup java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-admin-1.0.0.jar --server.port=8080&
UI
前端github地址web
Contributing
Contributions are welcome! Open a pull request to fix a bug, or open an Issue to discuss a new feature or change.sql
歡迎參與項目貢獻!好比提交PR修復一個bug,或者新建 Issue 討論新特性或者變動。mongodb
Copyright and License
This product is open source and free, and will continue to provide free community technical support. Individual or enterprise users are free to access and use.
- Licensed under the GNU General Public License (GPL) v3.
- Copyright (c) 2020 WeiYe.
產品開源免費,而且將持續提供免費的社區技術支持。我的或企業內部可自由的接入和使用。
歡迎在
登記地址 登記,登記僅僅爲了產品推廣和提高社區開發的動力。
v-2.1.1
新增
- 添加HBase數據源支持,JSON構建可經過HBase數據源獲取hbaseConfig,column;
- 添加MongoDB數據源支持,用戶僅須要選擇collectionName便可完成json構建;
- 添加執行器CPU.內存.負載的監控頁面;
- 添加24類插件DataX JSON配置樣例
- 公共字段(建立時間,建立人,修改時間,修改者)插入或更新時自動填充
- 對swagger接口進行token驗證
- 任務增長超時時間,對超時任務kill datax進程,可配合重試策略避免網絡問題致使的datax卡死。
升級:
- 數據源管理對用戶名和密碼進行加密,提升安全性;
- 對JSON文件中的用戶名密碼進行加密,執行DataX任務時解密
- 對頁面菜單整理,圖標升級,提示信息等交互優化;
- 日誌輸出取消項目類名等無關信息,減少文件大小,優化大文件輸出,優化頁面展現;
- logback爲從yml中獲取日誌路徑配置
修復:
- 任務日誌過大時,查看日誌報錯,請求超時;
項目規劃
Contact us
QQ交流羣 776939467