Kettle-Manager 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Kettle-Manager 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 GPL
操作系统 跨平台
软件类型 开源软件
所属分类 企业应用ETL工具框架
开发厂商
地区 国产
提 交 者 马进举
适用人群 未知
收录时间 2016-11-23

软件简介

平台简介

出发点

专门为kettle这款优秀的ETL工具开发的web端管理工具。

kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题是当投入生产环境使用时,动辄上百或几百个job需要管理,这时在使用客户端管理已经很难完成了。我所知道的解决方案有用命令行的调用的,操作麻烦,总之还是很难用啦,还有就是开发web端管理工具,kettle自带了一个web端管理工具,界面极其简陋不说,还很难用,基本无法投入生产环境使用,其他没留意到还有没有较好对众多job进行管理的工具。

基于以上情况,和我近两年的kettle定制开发与使用经验。我设计并开发了这款kettle web端管理工具。

关键信息

  1. 项目博客地址

功能介绍

主界面

image

参数设置

job运行参数设置,可以在页面上设置作业运行参数,每次运行作业时会用设置的参数覆盖默认值,这个很多人用不上。

image image

定时设置

操作界面与kettle中的开始控件界面一致,这个可能是最优用的功能之一。

image image

运行与停止

核心功能就不说了。

image

强制结束

强制结束等待的作业,针对正常停止无效的情况。

image

实时日志

实时查看作业运行日志,这个功能看起来不起眼,实际应该是很有用的。

image

作业目录

获取作业目录。

image

新建作业

支持页面新建特定类的作业,当前是四类。这些作业都支持页面修改。其中的KM作业是基于我的插件开发。这里的作业继承com.oss.job.AbsJob,这样的作业支持这里的KM作业,也支持下面的定时调度使用。

image image

删除作业

支持批量删除作业,这个很危险哦,小心使用,不会删除子转换和作业。

image

失败重启

支持配置失败自动重启、将job_version字段作为作业类别使用,便于分类管理。

image

定时调度

支持cron定时的调度,所有类必须继承:com.oss.job.AbsJob,作业支持参数配置,同一个类可以重复使用,传入不同的参数。这样开发的作业页支持用于上面的KM作业配置。

image image

con设计

引入一个cron辅助设计模块

image

按顺序运行

我已经开发好了一个上面的KM作业:com.oss.job.KettleJobRunner,这样的作业可以作为KM作业使用,也可以用于定时调度使用。

这个作业已经包含在项目中了,可以直接使用。

请参考KM作业示例和定时调度示例。

运行状态

作业的运行状态会定时反映到管理界面,我们可以通过多种条件筛选我们需要的作业进行批量运行或停止。

完成作业状态更新,日志文件记录的类:com.oss.job.JobManager,使用方式与按顺序运行的作业类似,请参考使用。

为了使部署简单,项目默认不依赖我开发的插件,你不使用KM作业功能,就不需要我开发的插件,项目默认已经在定时调度配置了该作业,并默认运行。

image

平台级日志

一般好的作业设计都会记录自己的日志表,详细记录作业运行状况,本平台提供了平台级日志功能,不涉及业务,记录了作业的开始停止时间,最终运行结果。

image

日志文件按天分文件夹存放,日志文件大小可以配置,若觉得占用空间,可以设计一个作业进行定时清理以前的日志文件,后续会提供该作业。也可以配置为不写日志文件。

该功能也是由com.oss.job.JobManager作业实现。与运行状态更新是同一个作业。

image

业务日志

Km数据库中有一张我设计的专门用于记录业务日志的表:METL_KETTLE_LOG,这个表是根据我们平常设计作业的经验设计的,需要作业设计人员在设计作业时填充此表数据,本平台已经默认提供了此表的查询。

此日志与平台级日志是互补关系,此日志更详细,涉及业务,平台级日志是后盾,主要用于问题排查等。

image image

KM作业示例

image

JS作业示例

该作业前部分操作基本与KM类似,区别在于具体的js基本配置

image

SQL作业示例

该作业前部分操作基本与KM类似,区别在于需要选择数据库,然后就是数据库脚本了

image

Shell作业示例

该作业前部分操作基本与KM类似,额外的需要配置脚本运行路径,默认:/tmp。

作业在linux上运行就写shell脚本,在windows上运行就写bat脚本。

都比较直观,就不多说了。

image

定时调度示例

image image

后续计划

  1. 支持简单的表对表作业新增。
  2. 考虑新增转换管理,开发通用km作业支持转换运行。
  3. 一个job同时在多个km中运行还需要考虑,日志,状态等
  4. 任务管理在设置定时时可能需要人为分散定时,考虑生成时间-运行任务数的分析图辅助进行分散定时。
  5. 作业管理显示上一次和下一次运行时间。
  6. 作业管理支持配置文件资源库运行。
  7. 改为支持文件资源库和更多数据库作为资源库。
  8. 权限管理,不同用户看到自己的作业,管理员看所有作业。
  9. 分布式、集群支持。
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (6)

加载中
打分: 力荐
帮助很大,非常感谢。
2018/06/29 14:37
回复
举报
打分: 力荐
国产开源作业调度工具TASKCTL已经开源,可关注:https://www.oschina.net/p/taskctl 了解更多。
2017/08/16 15:12
回复
举报
打分: 推荐
感谢作者
2017/06/30 14:44
回复
举报
感谢作者,想了解一下,KM能不能设置作业分组,并且调度按组来启动,还有设置组间依赖关系呢?另外一个就是,当一台服务器同时启动的任务过多,会不会崩溃?这里有没有任务队列的概念?去平衡一下服务器压力?
2017/06/29 14:55
回复
举报
怎么将现有的ktr,kjb被控到管理平台?
2017/05/19 17:44
回复
举报
一看是基于eova开发的 +++
2017/05/02 16:32
回复
举报
更多评论
暂无内容
发表于软件架构专区
2017/06/18 23:53

kettle-manager

平台简介 出发点 专门为kettle这款优秀的ETL工具开发的web端管理工具。 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题是当投入生产环境使用时,动辄上百或几...

23
17
发表于开发技能专区
2019/07/03 17:29

开源kettle调度、管理平台[kettle-manager]部署参照马老师编写

1、主要按照马老师的博客步骤进行部署发布版安装支持windows和liunx系统 马老师的博客地址:https://www.cnblogs.com/majinju/p/5767001.html 项目下载地址:http://pan.baidu.com/s/1o7MIup0 2、我是用的V0.4.0下......

1
2
发表了博客
05/27 16:53

Kettle与Hadoop(一)Kettle简介

目录 一、Kettle设计原则 二、转换 1. 步骤 2. 转换的跳 3. 并行 4. 数据行 5. 数据转换 (1)Date和String的转换 (2)Numeric和String的转换 (3)其它转换 三、作业 1. 作业项 2. 作业跳 3. 多路径和回溯 4. 并行执行 5. 作业项结果 四、转换或作业的元数据 五、数据库连接 1. 一般选项 2. 特殊选项 3. 关系数据库的力...

0
1
发表了博客
2019/02/26 10:23

kettle之linux使用kettle

Kettle可以在Window、Linux、Unix上运行,数据抽取高效稳定,使用之前需要准备环境。 准备java环境,这里就不赘述了,建议jdk7以上版本。 上传kettle压缩包,并解压,我解压的路径是/usr/soft/kettle 以下是重点: 确保kettle脚本可执行权限 使用命令查看文件权限 ls -l /data-integration 如图:  如果没有执行权限,...

0
2
2015/09/25 23:28

kettle的技巧

kettle的技巧

0
1
发表于数据库专区
07/19 13:24

kettle 简介

描述 Kettle是一款开源的 ETL 工具,采用 JAVA 语言编写。 特性 高效稳定,支持多种类型的数据格式,如:MySQL,Oracle,PostGreSQL,CSV 等。 可视化设计。 概念 Transformation(转换):数据抽取/迁移主要设计...

0
0
2017/10/26 18:01

kettle 跑马观花

# 一. Kettle能做什么? 数据迁移, 数据增量同步, 数据收集. # 二. kettle运行方式 1. 使用kettle的GUI客户端运行. 2. 命令行运行 3. 通过kettle的server端运行. # 三. kettle实例 ## 环境准备 * 安装 JDK * 安装 MySQL * 下载,解压kettle ## 数据准备 mysql数据库创建脚本 ```sql # 创建数据库 create database kettle_d...

0
0
发表于服务端专区
2014/11/18 11:38

Pentaho之Kettle

Kettle是Pentaho的一个组件,主要用于数据库间的数据迁移,到我用过的4.2版,还不支持noSQL,不知道4.4是不是支持了。 Kettle自己有三个主要组件:Spoon,Kitchen,Pan。其中Spoon是一个图形化的界面,用于windows的时候,先设置环境变量:pentaho_java_home,例如:C:\Program Files\Java\jdk1.7.0_25,其实就是你的jav...

0
2
发表了博客
2018/07/19 14:43

关于kettle

1.点spoon.bat无报错也不运行 可以运行一下spoonDebug.bat 查看一下spoondebug.txt日志 我遇到这个问题时 是给他分配的内存太多了 我的电脑只有2g 给果他给分了2048M很明显运行不起来 这时用记事本打开spoon.bat修改一下内存分配,我这个改成了 512m和256,因为是测试学习用数据不会太大改这么小也是可以用的: if "%PEN...

0
0
发表了博客
2012/12/05 18:13

kettle常见问题

摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. Join 我得到A 数据流(不管是基于文件或数据库),A包含field1 , field2 , field3 字段,然后我还有一个B数据流,B包含field4 , field5 , field6 , 我现在想把它们 ‘加’ 起来...

1
4
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
6 评论
171 收藏
分享
返回顶部
顶部