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

查看任务执行情况

任务

定义任务(目前需要指定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化的更多相关文章

  1. kettle系列-4.kettle定制化开发工具类

    要说的话这个工具类还是比较简单的,每个方法体都比较小,但用起来还是可以的,把开发中一些常用的步骤封装了下,不用去kettle源码中找相关操作的具体实现了. 算了废话不多了,直接上重点,代码如下: im ...

  2. 结对编程项目——C语言实现WordCount Web化

    结对编程项目 代码地址 201631062219,201631011410 gitee项目地址:https://gitee.com/xxlznb/pair_programming 作业地址:https ...

  3. iBox v2.0 发布,Web化仿iOS7界面/交互的JavaScirpt库

    iBox2 是一个仿 iOS 7 界面/交互的 JavaScirpt 库,它运行在 webkit 内核的移动浏览器之上,依赖 iScroll5,帮助开发者构建更接近 iOS 体验的 WebApp. 伴 ...

  4. BA 新web化 问题汇总

    1. 3D堆栈图在winform端无法显示,但在web端可以正常显示,说明与浏览器版本有关,在 IE 中设置文档模式为 IE8 即报错,IE9 却正常显示,可在 <head>节点下添加如下 ...

  5. kettle系列-我的开源kettle管理平台[kettle-manager]介绍

    kettle管理工具 专门为kettle这款优秀的ETL工具开发的web端管理工具. 项目简介 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题 ...

  6. Web打印组件jatoolsPrinter

    应用web化,不论对开发商,还是对用户来说,实在是一种很经济的选择,因为基于web的应用,客户端的规则很简单,容易学习,容易维护,容易发布.但对程序员来说,因为浏览器的局限性,却要面对很多挑战.怎么样 ...

  7. 移动Web开发调研

    背景 在移动互联网浪潮下,移动设备普及,对配置需要考虑移动端设备可访问性.Web作为最贴近用户的配置手段,面向从PC端传统页面,向移动端页面的转型. 概念 PC Web: 面向传统PC电脑的浏览器开发 ...

  8. 【腾讯Bugly干货分享】React移动web极致优化

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/579083d1c9da73584b02587d 最近一个季度,我们都在为手Q家校 ...

  9. 简述几项关于web应用的开发技术

    有几个人曾经问我,有哪些最有用或最好的编程语言适宜学习? 姑且略过HTML/CSS不谈,我认为答案取决于你想通过编程来做什么. 要点速览 对只用一种语言来构建某个项目的情况而言,Javascript和 ...

随机推荐

  1. Redis 简介与命令操作

    redis 是 key-value 的数据,所以每个数据都是一个键值对,键的类型是字符串: 值的类型分为五种:string.hash.list.set(集合).zset(有序集合). 数据操作的全部命 ...

  2. 3D Slicer中文教程(七)—图像中值滤波

    1.中值滤波概念 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘 ...

  3. c++17 代码你能看懂吗?

    ------------------------------------------------------------------------------ #include <vector&g ...

  4. hbase学习一 shell命令操作

    基本操作: #命名空间级别: #列出所有命名空间 hbase> list_namespace #新建命名空间 hbase> create_namespace 'ns1' #删除命名空间 h ...

  5. oracle查询某张表的外键,并用 truncate 命令有外键的表中的数据

    注:本文来源于<oracle查询某张表的外键(最终解决办法)> 一:几个查询表外键的脚本 select b.table_name, b.column_name from user_cons ...

  6. vmware克隆虚拟机后无法联网

    1.基础知识: 就算是克隆的系统,但是由于物理地址改变了,导致rules文件进行了重新绑定 网卡会从eth0变成eth1(逐渐+1),而且mac地址和uuid也会有变化. 2.解决方法: 2.1编辑e ...

  7. PHP 递归几种方法

    一.利用静态变量的方法 <?php function call(){ static $i = 0; echo $i . ''; $i++; if($i<10){ call(); } } c ...

  8. java-数组排序--计数排序、桶排序、基数排序

    计数排序引入 不难发现不论是冒泡排序还是插入排序,其排序方法都是通过对每一个数进行两两比较进行排序的,这种方法称为比较排序,实际上对每个数的两两比较严重影响了其效率,理论上比较排序时间复杂度的最低下限 ...

  9. 2018-2019-2 网络对抗技术 20165239 Exp2 后门原理与实践

    一.实验要求 (3.5分) (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用socat获取主机操作Shell, 任务计划启动 (0.5分) (3)使用MSF met ...

  10. The requested URL / was not found on this server

    The requested URL / was not found on this server.原因:未打开Apache的重写功能#LoadModule rewrite_module modules ...