kettle java web_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

查看任务执行情况

dashboard.png

任务

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

e1156b43a3cf1037cc9e05124865c486.png

任务历史

查看历史任务,看日志

jobHistory.png

计划任务

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

schedule.png

已实现

Java API调用Kettle核心代码(基于Kettle 7.1)

kjb调用ktr

Shell

MySQL

Oracle

Hive

JS代码

Java代码

Kettle其他功能暂未测试,目前测试覆盖的功能如下

b04d0d65350a05c425226655f4510006.png

任务并行执行

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运行

关于开源

不足之处,请轻喷。欢迎志同道合的道友一起完善,谢谢~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: kettle是一个开源的ETL工具,用于数据集成和转换任务。kettle 9.3是kettle的一个版本,基于Java语言开发,提供了强大的ETL功能和丰富的工具集。 kettle 9.3的Java包是指用于Java语言开发的kettle库。这个包包含了kettle的核心功能和相关的API,可以通过引入这个包来实现任意自定义ETL任务的开发。 使用kettle 9.3的Java包,我们可以编写Java代码来实现以下任务: 1. 数据抽取和加载:可以通过API从不同的数据源中抽取数据,并将数据加载到目标数据库中。可以支持各种数据格式和数据库类型,包括CSV文件、Excel文件、关系型数据库等。 2. 数据转换和清洗:可以使用转换步骤来对数据进行转换和清洗操作,如数据过滤、字段映射、计算列等。可以通过编写Java代码来定义自定义的转换操作,实现更复杂的数据处理逻辑。 3. 数据输出和导出:可以将数据导出到不同的目标,如文件、数据库、WEB服务等。可以通过API来配置导出选项和格式,实现灵活的数据输出。 除了上述功能,kettle 9.3的Java包还提供了很多其他的功能和工具,如调度任务、监控任务运行状态、数据质量检查等。可以根据具体的需求选择合适的API进行开发。 总之,kettle 9.3的Java包是一个强大的工具包,提供了丰富的功能和工具,方便开发人员进行ETL任务的开发和管理。无论是简单的数据转换还是复杂的数据集成任务,都可以通过kettle 9.3的Java包来实现。 ### 回答2: Kettle 9.3是一种基于Java的数据集成软件,用于数据的提取、转换和加载(ETL)过程。该软件提供了一个可视的用户界面,使用户能够轻松地设计和执行不同的数据集成操作Kettle 9.3 Java包是Kettle 9.3提供的用于开发者的Java类库。通过使用这个Java包,开发者可以通过代码的方式来操作和控制Kettle的各种功能。这使得开发者能够根据自己的需求来定制和扩展Kettle软件,以满足特定的数据集成要求。 Kettle 9.3 Java包包含了各种不同的类和方法,用于处理数据连接、转换、加载等操作。开发者可以使用这些类和方法来创建和配置数据源、定义转换规则、执行数据加载等任务。通过编写Java代码,开发者可以灵活地控制数据集成流程,并与其他Java应用程序或系统进行集成Kettle 9.3 Java包提供了丰富的文档和示例代码,用于帮助开发者理解和使用这个包。开发者可以参考这些文档和示例代码,快速上手和应用KettleJava开发功能。 总结来说,Kettle 9.3 Java包是Kettle 9.3提供的Java类库,用于开发者以编程的方式使用和控制Kettle的数据集成功能。通过使用这个Java包,开发者可以根据自己的需求进行定制和扩展,实现更高级、更灵活的数据集成解决方案。 ### 回答3: kettle 9.3是一种用于数据集成和转换的开源软件,它提供了强大的数据抽取、转换、加载(ETL)功能。它基于Java语言开发,并打包成kettle-9.3.jar文件,这个文件是kettle在9.3版本中提供的Java包。 使用kettle 9.3的Java包,我们可以在Java应用程序中调用kettle的各种功能。例如,我们可以使用Java代码来创建kettle的Transformation对象,然后通过这个对象加载和转换数据。我们可以使用Java代码来定义数据的输入和输出,定义转换的步骤和操作。我们还可以使用Java代码来设置数据的过滤和排序规则。 除了提供基本的ETL功能,kettle 9.3的Java包还提供了许多扩展功能。例如,它支持多线程处理,可以并行处理多个转换任务,提高数据处理的效率。它还支持各种数据格式的转换,包括文本文件、关系型数据库、NoSQL数据库等。此外,kettle 9.3的Java包还提供了丰富的插件机制,可以方便地扩展和定制kettle的功能。 总的来说,kettle 9.3的Java包是一个强大且灵活的工具,可以帮助开发者实现复杂的数据转换和集成任务。无论是处理大规模数据集还是简单的数据转换,kettle都能提供可靠和高效的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值