kettle web化


kettle web化

通過Java API調用kettle核心代碼,並基於Spring Boot提供簡易的Web管理界面。

背景

在工作中,通過kettle這款ETL產品進行數據處理時,是通過kitchen命令調用kettle,會啟動一個jvm程序處理。在運行時,如果幾個任務同時跑,那么會占用比較高的內存。而且每次啟動kettle時,會先初始化運行環境。

因此,通過Java API調用kettle核心代碼,在程序啟動時只初始化一次運行環境,后續任務都提交到任務線程池處理,不需要每個任務都啟動jvm實例,能單機的提高並發。

項目地址

github

特點

  • Java API調用Kettle核心代碼
  • 任務並行執行
  • Web管理任務

展示

界面用Bootstrap3和jQuery簡單擼了下。

dashboard

查看任務執行情況

dashboard

任務

定義任務(目前需要指定kjb的路徑),執行任務

任務

任務歷史

查看歷史任務,看日志

任務

計划任務

通過定義cron表達式,計划執行任務

計划任務

已實現

  • Java API調用Kettle核心代碼(基於Kettle 7.1
    • kjb調用ktr
    • Shell
    • MySQL
    • Oracle
    • Hive
    • JS代碼
    • Java代碼
    • Kettle其他功能暫未測試,目前測試覆蓋的功能如下
      kjb
  • 任務並行執行
  • Web管理任務
    • 任務監控dashboard
    • 任務組(分組管理)
    • 任務(任務定義,比如kjb路徑)
    • 任務變量(將任務變量傳入kjb,可在kjb中、或者ktr中獲取到)
    • 任務歷史(歷史任務,任務執行日志)
    • 計划任務(定時調度)

暫未實現

  • Web管理任務
    • 任務失敗預警
    • 任務失敗重試
    • 更美觀、友好的界面
  • 分布式任務執行、節點服務發現

說明

該系統暫未投入生產使用,想嘗試的道友不妨在測試環境試試水,或者等發布穩定版。

快速開始

本項目為Spring Boot標准項目,clone到本地修改application.yml中的數據源配置即可。

項目結構

Spring Boot標准結構,利於二次開發。

運行

  • 導入IDE,運行main方法
  • 執行mvn clean spring-boot:run
  • 打包mvn package,通過java -jar target/kettle-web-{version}.jar運行

關於開源

不足之處,請輕噴。歡迎志同道合的道友一起完善,謝謝~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM