介绍
Kettle(也称为Pentaho Data Integration)是一款开源的ETL(Extract, Transform, Load)工具,由Pentaho(现为Hitachi Vantara)开发和维护。它提供了一套强大的数据集成和转换功能,用于从各种数据源提取数据、进行数据转换和清洗,并将数据加载到目标系统中。
-
ETL功能:Kettle专注于提供ETL功能,即从不同的数据源(如数据库、文件、Web服务等)中提取数据,并对数据进行转换和整理,最后将数据加载到目标系统中。它支持各种数据处理操作,如过滤、排序、聚合、连接、转换等,以满足不同的数据集成需求。
-
可视化设计:Kettle提供了一个可视化的设计界面,称为Spoon。通过Spoon,用户可以通过拖拽和连接各种组件来创建数据转换和工作流程。这种可视化的设计方式使得ETL过程更加直观和易于理解。
-
多种数据源支持:Kettle支持多种数据源的连接和操作,包括关系型数据库(如MySQL、Oracle、SQL Server等)、非关系型数据库(如MongoDB、Hadoop等)、文件(如CSV、Excel等)、Web服务(如REST API、SOAP等)等。这使得Kettle可以处理各种不同类型和格式的数据。
-
强大的转换和清洗功能:Kettle提供了丰富的转换和清洗功能,可以对数据进行各种操作,如字段映射、数据类型转换、数据清洗、数据合并、数据拆分等。这些功能使得数据在整个ETL过程中能够得到有效的处理和准备。
-
可扩展性:Kettle提供了一套插件机制,允许用户根据自己的需求进行功能扩展和定制。用户可以编写自定义的插件,以满足特定的数据集成和处理需求。
Kettle是一款功能强大、灵活可扩展的ETL工具,适用于各种数据集成和转换任务。在开源系统中,它的可视化设计界面和丰富的功能使得数据处理变得更加简单和高效。
尽管目前市面上开源ETL老牌工具有Sqoop,datax,Canal、StreamSets等,新晋ELT工具有airbyte, seaTunnel等。但kettle作为传统老牌ETL工具,在易用性,资料丰富性等方面仍然有一席之地,对于千万级内的数据量级处理,仍是不可替代的优秀ETl工具之一。
本人是KETTLE使用爱好者以及二次开发者,拥有8年的丰富使用经验。在使用过程中针对kettle的弱项,以及对市面上一些kettle二开工具的对比发现,目前尚未有一款好用的调度管理工具。经此,于是准备开发一款简单易用,灵活部署,可以水平扩展的分布式调度管理平台。
功能介绍和对比
废话不多说,上才艺:
比较维度 | 功能 | 本产品 | 第三方产品 | ||||
设计及架构 | 框架 | springcloud微服务 | springboot或springmvc单体 | ||||
设计 | 前后端分离ui层 | 管理,调度,执行耦合在一个服务中 | |||||
调度层 | |||||||
agent层 | |||||||
执行层 | |||||||
调度层 | 基于xxl-job封装和优化,支持集群和动态分片,集群模式下支持数十万至百万级任务调度 | 基于quartz或者spring schedule组件 | |||||
agent层 | springcloud微服务模式,用来管理kettle的carte服务,支持水平扩展,接受调度层的指令,来向执行层发送转换做作业的任务。 1、支持carte服务的管理和探活,自动剔除异常节点,和故障转移 2、支持8种负载均衡策略 3、基于分片模式的任务执行状态定时检测,不存在单点压力和故障。 4、任务异常告警,carte服务监控告警可视化配置 | 无 | |||||
执行层 | 基于kettle的carte模式采用插件策略二次开发,无代码入侵,不集成任何kettle源码,兼容kettle5.x, kettle6.x, kettle7.x, kettle8.x,kettle9.x | kettle源码嵌入单体服务中,不利于版本升级和管理 | |||||
前端UI | 框架 | vue2.X | easyUI, jquery, bootstrap | ||||
权限设计 | 基于RBAC模式设计 | 部门,岗位,角色 | 无 | ||||
菜单,按钮,资源层精细化控制 | |||||||
数据权限 | |||||||
业务模块设计 | 数据集成 | 任务报表概览 | 任务管理 | ||||
项目管理 | 无 | ||||||
任务管理 | 无 | ||||||
集群管理 | 无 | ||||||
节点管理 | 无 | ||||||
无 | |||||||
元数据管理 | 血缘分析 | 无 | |||||
数据源管理 | |||||||
数仓管理 | ODS原始数据层 | 无 | |||||
DWD数据明细层 | 无 | ||||||
DWS服务数据层 | 无 | ||||||
ADS数据应用层 | 无 | ||||||
数据服务 | 数据发布 | 无 | |||||
授权管理 | 无 | ||||||
api管理 | 无 | ||||||
监控模块 | 服务器监控 | Prometheus,hertzbeat | 无 | ||||
服务级监控 | grafana | 无 | |||||
jvm监控 | 无 | ||||||
日志观测;链路追踪模块 | loki日志可视化 | loki日志可视化 | 无 | ||||
oss日志存储 | oss日志存储 | 无 | |||||
jaeger链路追踪 | jaeger链路追踪 | 无 | |||||
架构设计
新功能介绍
1、支持本地资源库模式配置
对于万级以下的任务数,可以不用依赖于笨重的pentaho-server来管理资源转换文件,直接将转换文件存放在kettle节点所在服务器上面。
2、支持本地转换,作业文件的 kettle集群间自动同步功能
如果是同时存在多个kettle的执行节点,而又使用本地资源库来存放文件,则节点间的同步需要手动去操作进行文件拷贝和更新。这里支持多服务器间的转换,作业批量同步功能,自动进行更新,版本控制。
1、选择要同步的文件夹
2、设置要共享的节点
点击保存之后,共享节点页面会接受到请求:
点击添加,设置要存储的路径。
设置完成要存储的路径后,就会开始自动同步。
登录到服务器,即可查看同步成功
3、支持任务的上线,下线操作
任务一旦发布上线之后,编辑,修改,删除功能会被置灰,禁用。确保任务在执行过程中,不会被随意篡改和删除操作 。下线之后,会恢复正常的增删改操作。
4、完善概览报表页,新增执行异常任务统计