kettle-scheduler-boot
開發計划
序號 | 項目 | 狀態 | 優先級 |
---|---|---|---|
1 | 在線管理,編輯kettle腳本 | 緊急 | |
2 | 通過源碼實現集群,多線程執行任務 | ✔ | 緊急 |
2 | 重構jpa部分,改為mybatis | ✔ | 一般 |
介紹
基於Spring-boot的kettle調度項目,參考了zhaxiaodong9860的代碼並引用了其中的頁面管理,后台代碼自行參考了API進行工具化編寫,方便使用
在原代碼的基礎上加入以下功能
1、修改數據庫為oracle
2、增加mybatis相關依賴,陸續將jpa替換為mybatis
3、增加向kettle腳本中傳遞參數,用於動態化腳本
4、刪除轉換名不允許重復約束
5、頁面上增加轉換描述顯示
6、增加了一些擴展功能
7、增加在線編輯腳本
演示環境
點擊查看演示環境
賬號:demo
密碼:demo@1234
演示環境,請善待。
點擊下載可運行程序包 提取碼:jenp
點擊查看完整更新記錄
2020-11-30 更新說明
1、【優化】完善腳本在線預覽功能(持續完善中)
在線預覽腳本
已知Bug列表
項目截圖
**
轉換任務增加頁面傳遞參數,手動寫json格式的數據
數據庫k_trans表中增加trans_params字段,對應的實體類中也需要增加,通過執行任務時,從trans中獲取參數,並設置到相應的腳本中
//className org.kettle.scheduler.system.biz.quartz.TransQuartz
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
...........
Integer transId = jobExecutionContext.getMergedJobDataMap().getInt("id");
// 獲取轉換
Trans trans = transService.getTransById(transId);
// 設置執行參數
Map<String, String> params = new HashMap<>(2);
String transParams = trans.getTransParams();
Map jsonToMap = JSON.parseObject(transParams);
params.putAll(jsonToMap);
if (StringUtil.hasText(trans.getSyncStrategy())) {
Integer day = Integer.valueOf(trans.getSyncStrategy().substring(2, trans.getSyncStrategy().length()));
params.put("start_time", DateUtil.getDateTimeStr(DateUtil.addDays(DateUtil.getTodayStartTime(), -day)));
params.put("end_time", DateUtil.getDateTimeStr(DateUtil.addDays(DateUtil.getTodayEndTime(), -day)));
}
............
}
在線編輯kettle腳本工具,和桌面端的kettle一樣用法
項目地址:https://github.com/HiromuHota/pentaho-kettle
資源庫字典:https://35youth.cn/kettleRepository.html
安裝教程
1、導入docs中的1_XXX.sql 2_XXX、3_XXX文件至oracle數據庫
使用說明
-
執行kettle-scheduler-starter下面docs下面的kettle-scheduler-oracle.sql腳本創建表
-
生成環境執行時修改application-prod.yml中的數據庫連接配置,開發環境修改application-dev.yml中的數據庫配置,如果需要修改端口就在application.yml中修改
-
修改application-kettle.yml配置,設置日志存儲路徑、kettle腳本保存路徑、kettle-home路徑(如果沒有指定home路徑,那么.kettle文件夾就在當前用戶根路徑下)
-
如果需要自定義變量在kettle.properties中編寫,並把kettle.properties文件拷貝到kettle-home路徑下面的.kettle文件夾下
-
啟動項目使用調度平台(用戶名:admin,密碼:admin)
-
如果要使用【文件資源庫】需要單獨把項目下【file-rep】拷貝到設置好的路徑下,並在管理頁面配置好文件資源庫,因為打包后kettle不能訪問到jar中的文件,所以需要單獨存放
參與貢獻
- Fork 本倉庫
- 新建 Feat_xxx 分支
- 提交代碼
- 新建 Pull Request
關於我
- 半碼農