DataX Web 2.1.2發佈

DataX-Web

DataX Web是在DataX之上開發的分佈式數據同步工具,提供簡單易用的 操做界面,下降用戶使用DataX的學習成本,縮短任務配置時間,避免配置過程當中出錯。用戶可經過頁面選擇數據源便可建立數據同步任務,RDBMS數據源可批量建立數據同步任務,支持實時查看數據同步進度及日誌並提供終止同步功能,集成並二次開發xxl-job可根據時間、自增主鍵增量同步數據。前端

任務"執行器"支持集羣部署,支持執行器多節點路由策略選擇,支持超時控制、失敗重試、失敗告警、任務依賴,執行器CPU.內存.負載的監控等等。後續還將提供更多的數據源支持、數據轉換UDF、表結構同步、數據同步血緣等更爲複雜的業務場景。python

Architecture diagram:

System Requirements

  • Language: Java 8(jdk版本建議1.8.201以上)<br> 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卡死。
  • 3二、添加項目管理模塊,可對任務分類管理;
  • 3三、對RDBMS數據源增長批量任務建立功能,選擇數據源,表便可根據模板批量生成DataX同步任務;
  • 3四、JSON構建增長ClickHouse數據源支持;
  • 3五、執行器CPU.內存.負載的監控頁面圖形化;
  • 3六、RDBMS數據源增量抽取增長主鍵自增方式並優化頁面參數配置;
  • 3七、更換MongoDB數據源鏈接方式,重構HBase數據源JSON構建模塊;
  • 3八、腳本類型任務增長中止功能;
  • 3九、rdbms json構建增長postSql,並支持構建多個preSql,postSql;
  • 40、數據源信息加密算法修改及代碼優化;
  • 4一、日誌頁面增長DataX執行結果統計數據;

Quick Start:

請點擊:Quick Start
Linux:一鍵部署
Docker鏡像:地址

Introduction:

1.執行器配置(使用開源項目xxl-job)

  • 一、"調度中心OnLine:"右側顯示在線的"調度中心"列表, 任務執行結束後, 將會以failover的模式進行回調調度中心通知執行結果, 避免回調的單點風險;
  • 二、"執行器列表" 中顯示在線的執行器列表, 可經過"OnLine 機器"查看對應執行器的集羣機器;

執行器屬性說明

一、AppName: (與datax-executor中application.yml的datax.job.executor.appname保持一致)
   每一個執行器集羣的惟一標示AppName, 執行器會週期性以AppName爲對象進行自動註冊。可經過該配置自動發現註冊成功的執行器, 供任務調度時使用;
二、名稱: 執行器的名稱, 由於AppName限制字母數字等組成,可讀性不強, 名稱爲了提升執行器的可讀性;
三、排序: 執行器的排序, 系統中須要執行器的地方,如任務新增, 將會按照該排序讀取可用的執行器列表;
四、註冊方式:調度中心獲取執行器地址的方式;
    自動註冊:執行器自動進行執行器註冊,調度中心經過底層註冊表能夠動態發現執行器機器地址;
    手動錄入:人工手動錄入執行器的地址信息,多地址逗號分隔,供調度中心使用;
五、機器地址:"註冊方式"爲"手動錄入"時有效,支持人工維護執行器的地址信息;

2.建立數據源

第四步使用mysql

3.建立任務模版

第四步使用git

4. 構建JSON腳本

  • 1.步驟一,步驟二,選擇第二步中建立的數據源,JSON構建目前支持的數據源有hive,mysql,oracle,postgresql,sqlserver,hbase,mongodb,clickhouse 其它數據源的JSON構建正在開發中,暫時須要手動編寫。

  • 2.字段映射

  • 3.點擊構建,生成json,此時能夠選擇複製json而後建立任務,選擇datax任務,將json粘貼到文本框。也能夠點擊選擇模版,直接生成任務。

5.批量建立任務

6.任務建立介紹(關聯模版建立任務再也不介紹,具體參考4. 構建JSON腳本)

DataX任務

Shell任務

Python任務

PowerShell任務

  • 任務類型:目前支持DataX任務、Shell任務、Python任務、PowerShell任務;
  • 阻塞處理策略:調度過於密集執行器來不及處理時的處理策略;
    • 單機串行:調度請求進入單機執行器後,調度請求進入FIFO隊列並以串行方式運行;
    • 丟棄後續調度:調度請求進入單機執行器後,發現執行器存在運行的調度任務,本次請求將會被丟棄並標記爲失敗;
    • 覆蓋以前調度:調度請求進入單機執行器後,發現執行器存在運行的調度任務,將會終止運行中的調度任務並清空隊列,而後運行本地調度任務;
  • 增量增新建議將阻塞策略設置爲丟棄後續調度或者單機串行
    • 設置單機串行時應該注意合理設置重試次數(失敗重試的次數*每次執行時間<任務的調度週期),重試的次數若是設置的過多會致使數據重複,例如任務30秒執行一次,每次執行時間須要20秒,設置重試三次,若是任務失敗了,第一個重試的時間段爲1577755680-1577756680,重試任務沒結束,新任務又開啓,那新任務的時間段會是1577755680-1577758680
  • 增量參數設置
  • 分區參數設置

7. 任務列表

8. 能夠點擊查看日誌,實時獲取日誌信息,終止正在執行的datax進程

9.任務資源監控

10. admin能夠建立用戶,編輯用戶信息

UI

前端github地址github

Contributing

Contributions are welcome! Open a pull request to fix a bug, or open an Issue to discuss a new feature or change.web

歡迎參與項目貢獻!好比提交PR修復一個bug,或者新建 Issue 討論新特性或者變動。算法

Copyright and License

MIT Licensesql

Copyright (c) 2020 WeiYemongodb

產品開源免費,而且將持續提供免費的社區技術支持。我的或企業內部可自由的接入和使用。docker

歡迎在 登記地址 登記,登記僅僅爲了產品推廣和提高社區開發的動力。

v-2.1.2

新增

  1. 添加項目管理模塊,可對任務分類管理;
  2. 對RDBMS數據源增長批量任務建立功能,選擇數據源,表便可根據模板批量生成DataX同步任務;
  3. JSON構建增長ClickHouse數據源支持;
  4. 執行器CPU.內存.負載的監控頁面圖形化;
  5. RDBMS數據源增量抽取增長主鍵自增方式並優化頁面參數配置;
  6. 更換MongoDB數據源鏈接方式,重構HBase數據源JSON構建模塊;
  7. 腳本類型任務增長中止功能;
  8. rdbms json構建增長postSql,並支持構建多個preSql,postSql;
  9. 合併datax-registry模塊到datax-rpc中; 10.數據源信息加密算法修改及代碼優化; 11.時間增量同步支持更多時間格式; 12.日誌頁面增長DataX執行結果統計數據;

升級:

  1. PostgreSql,SQLServer,Oracle 數據源JSON構建增長schema name選擇;
  2. DataX JSON中的字段名稱與數據源關鍵詞一致問題優化;
  3. 任務管理頁面按鈕展現優化;
  4. 日誌管理頁面增長任務描述信息;
  5. JSON構建前端form表單不能緩存數據問題修復;
  6. HIVE JSON構建增長頭尾選項參數;

備註:

2.1.1版本不建議升級,數據源信息加密方式變動會致使以前已加密的數據源解密失敗,任務運行失敗。 若是須要升級請重建數據源,任務。

v-2.1.1

新增

  1. 添加HBase數據源支持,JSON構建可經過HBase數據源獲取hbaseConfig,column;
  2. 添加MongoDB數據源支持,用戶僅須要選擇collectionName便可完成json構建;
  3. 添加執行器CPU.內存.負載的監控頁面;
  4. 添加24類插件DataX JSON配置樣例
  5. 公共字段(建立時間,建立人,修改時間,修改者)插入或更新時自動填充
  6. 對swagger接口進行token驗證
  7. 任務增長超時時間,對超時任務kill datax進程,可配合重試策略避免網絡問題致使的datax卡死。

升級:

  1. 數據源管理對用戶名和密碼進行加密,提升安全性;
  2. 對JSON文件中的用戶名密碼進行加密,執行DataX任務時解密
  3. 對頁面菜單整理,圖標升級,提示信息等交互優化;
  4. 日誌輸出取消項目類名等無關信息,減少文件大小,優化大文件輸出,優化頁面展現;
  5. logback爲從yml中獲取日誌路徑配置

修復:

  1. 任務日誌過大時,查看日誌報錯,請求超時;

項目規劃

Contact us

QQ交流羣 795380631

相關文章
相關標籤/搜索