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. flask学习(一)

    特点: 短小精悍,可扩展性强 依赖wsgi:werkzurg werkzurg示例: from werkzeug.wrappers import Request, Response from werk ...

  2. Revit二次开发封装族的替代方法

    使用草图平面:

  3. linux 查看ip地址

    1.先要打开linux服务器,然后在linux桌面的空白处点击右键 2.在弹出的选项里,点击[打开终端] 3.打开linux服务器的命令终端后,输入查询linux的ip地址的命令:ifconfig - ...

  4. SecureCRT标签显示IP地址

    当使用SecureCRT连接到linux服务器后,SecureCRT的标签会随着操作目录的改变而改变,当连接多个的时候很不好区分,所以需要设置标签栏固定显示IP地址信息. options->Se ...

  5. mysql 函数学习(常用)

    1.时间函数(组1) SELECT CURRENT_DATE() AS date, CURRENT_TIME() AS `time`, CURRENT_TIMESTAMP() AS `timestam ...

  6. 基于keil平台下STM32L系列移植FreeRTOS操作系统

    1,下载FreeRTOS https://www.freertos.org/a00104.html 点击下载后,会进入如下界面 之后会弹出下载界面,格式为.EXE,不用怀疑.不是木马. 等待下载完成, ...

  7. 末学者笔记--Linux权限管理

    一.权限概述 Linux系统一般将文件可存/取访问的身份分为3个类别:owner(拥有者).group(和所有者同组的用户).others(其他人,除了所有者,除了同组的用户以及除了超级管理员),且3 ...

  8. 重置studio 3T 14天试用

    重置studio 3T 14天试用 bat 脚本 @echo off ECHO Reset Studio 3T Date of use ... FOR /f "tokens=1,2,* &q ...

  9. read()和write()

    1.write() 函数定义:ssize_t write (int fd, const void * buf, size_t count); 函数说明:write()会把参数buf所指的内存写入cou ...

  10. Linux多线程编程,为什么要使用线程,使用线程的理由和优点等

    线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,(http://www.0830120.com)如线程之间怎样同步.互斥,这些东西将在本文中介绍. ...