kettle web化
kettle web化
通过Java API调用kettle核心代码,并基于Spring Boot提供简易的Web管理界面。
背景
在工作中,通过kettle这款ETL产品进行数据处理时,是通过kitchen命令调用kettle,会启动一个jvm程序处理。在运行时,如果几个任务同时跑,那么会占用比较高的内存。而且每次启动kettle时,会先初始化运行环境。
因此,通过Java API调用kettle核心代码,在程序启动时只初始化一次运行环境,后续任务都提交到任务线程池处理,不需要每个任务都启动jvm实例,能单机的提高并发。
项目地址
特点
- Java API调用Kettle核心代码
- 任务并行执行
- Web管理任务
展示
界面用Bootstrap3和jQuery简单撸了下。
dashboard
查看任务执行情况

任务
定义任务(目前需要指定kjb的路径),执行任务

任务历史
查看历史任务,看日志

计划任务
通过定义cron表达式,计划执行任务

已实现
- Java API调用Kettle核心代码(基于Kettle 7.1)
- kjb调用ktr
- Shell
- MySQL
- Oracle
- Hive
- JS代码
- Java代码
- Kettle其他功能暂未测试,目前测试覆盖的功能如下

- 任务并行执行
- 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运行
关于开源
不足之处,请轻喷。欢迎志同道合的道友一起完善,谢谢~
kettle web化的更多相关文章
- kettle系列-4.kettle定制化开发工具类
要说的话这个工具类还是比较简单的,每个方法体都比较小,但用起来还是可以的,把开发中一些常用的步骤封装了下,不用去kettle源码中找相关操作的具体实现了. 算了废话不多了,直接上重点,代码如下: im ...
- 结对编程项目——C语言实现WordCount Web化
结对编程项目 代码地址 201631062219,201631011410 gitee项目地址:https://gitee.com/xxlznb/pair_programming 作业地址:https ...
- iBox v2.0 发布,Web化仿iOS7界面/交互的JavaScirpt库
iBox2 是一个仿 iOS 7 界面/交互的 JavaScirpt 库,它运行在 webkit 内核的移动浏览器之上,依赖 iScroll5,帮助开发者构建更接近 iOS 体验的 WebApp. 伴 ...
- BA 新web化 问题汇总
1. 3D堆栈图在winform端无法显示,但在web端可以正常显示,说明与浏览器版本有关,在 IE 中设置文档模式为 IE8 即报错,IE9 却正常显示,可在 <head>节点下添加如下 ...
- kettle系列-我的开源kettle管理平台[kettle-manager]介绍
kettle管理工具 专门为kettle这款优秀的ETL工具开发的web端管理工具. 项目简介 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题 ...
- Web打印组件jatoolsPrinter
应用web化,不论对开发商,还是对用户来说,实在是一种很经济的选择,因为基于web的应用,客户端的规则很简单,容易学习,容易维护,容易发布.但对程序员来说,因为浏览器的局限性,却要面对很多挑战.怎么样 ...
- 移动Web开发调研
背景 在移动互联网浪潮下,移动设备普及,对配置需要考虑移动端设备可访问性.Web作为最贴近用户的配置手段,面向从PC端传统页面,向移动端页面的转型. 概念 PC Web: 面向传统PC电脑的浏览器开发 ...
- 【腾讯Bugly干货分享】React移动web极致优化
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/579083d1c9da73584b02587d 最近一个季度,我们都在为手Q家校 ...
- 简述几项关于web应用的开发技术
有几个人曾经问我,有哪些最有用或最好的编程语言适宜学习? 姑且略过HTML/CSS不谈,我认为答案取决于你想通过编程来做什么. 要点速览 对只用一种语言来构建某个项目的情况而言,Javascript和 ...
随机推荐
- Redis 简介与命令操作
redis 是 key-value 的数据,所以每个数据都是一个键值对,键的类型是字符串: 值的类型分为五种:string.hash.list.set(集合).zset(有序集合). 数据操作的全部命 ...
- 3D Slicer中文教程(七)—图像中值滤波
1.中值滤波概念 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘 ...
- c++17 代码你能看懂吗?
------------------------------------------------------------------------------ #include <vector&g ...
- hbase学习一 shell命令操作
基本操作: #命名空间级别: #列出所有命名空间 hbase> list_namespace #新建命名空间 hbase> create_namespace 'ns1' #删除命名空间 h ...
- oracle查询某张表的外键,并用 truncate 命令有外键的表中的数据
注:本文来源于<oracle查询某张表的外键(最终解决办法)> 一:几个查询表外键的脚本 select b.table_name, b.column_name from user_cons ...
- vmware克隆虚拟机后无法联网
1.基础知识: 就算是克隆的系统,但是由于物理地址改变了,导致rules文件进行了重新绑定 网卡会从eth0变成eth1(逐渐+1),而且mac地址和uuid也会有变化. 2.解决方法: 2.1编辑e ...
- PHP 递归几种方法
一.利用静态变量的方法 <?php function call(){ static $i = 0; echo $i . ''; $i++; if($i<10){ call(); } } c ...
- java-数组排序--计数排序、桶排序、基数排序
计数排序引入 不难发现不论是冒泡排序还是插入排序,其排序方法都是通过对每一个数进行两两比较进行排序的,这种方法称为比较排序,实际上对每个数的两两比较严重影响了其效率,理论上比较排序时间复杂度的最低下限 ...
- 2018-2019-2 网络对抗技术 20165239 Exp2 后门原理与实践
一.实验要求 (3.5分) (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用socat获取主机操作Shell, 任务计划启动 (0.5分) (3)使用MSF met ...
- The requested URL / was not found on this server
The requested URL / was not found on this server.原因:未打开Apache的重写功能#LoadModule rewrite_module modules ...