一、背景介绍
Kettle作为老牌开源ETL工具,凭借可视化拖拽与丰富的转换组件,长期服务于企业的数据抽取、清洗与集成场景。但随着企业业务发展,两方面问题逐步显现:
一方面是工程运维层面的短板,Kettle以本地客户端模式运行,作业强依赖本地文件,脚本版本管理、多人协同开发能力有限;调度需要依托crontab、Kitchen命令行脚本二次开发,缺少统一调度视图、失败重试、告警机制,故障定位高度依赖人工翻阅日志。
另一方面,在当前信创建设推进的大背景下,这套源自海外的开源方案,在国产芯片、国产操作系统、国产数据库生态下适配能力有限,想要落地信创环境往往需要大量定制改造工作,很难满足自主可控、安全审计的现实要求。
不少企业希望在保护现有Kettle资产的前提下,能找到一套兼顾存量复用、企业级运维、国产化环境适配的集成方案。ETLCloud国产全域数据集成平台,在补齐调度、监控、协同这些工程化能力之外,同时完成对鲲鹏、飞腾、海光等国产芯片,麒麟、统信操作系统,达梦、人大金仓等国产数据库的适配兼容,能够运行在信创基础设施之上,满足权限管控、操作审计等合规要求。
针对历史Kettle资产,ETLCloud提供执行Kettle任务组件,可直接运行存量.ktr转换、.kjb作业文件,不必大规模重写原有业务逻辑,就可以把分散的本地作业收拢到平台统一管控。本文围绕Kettle向ETLCloud迁移场景,完整讲解作业转换、调度迁移和平滑过渡整套落地方案。
二、迁移总体方案概述
1.核心思路:复用优先,渐进替换
迁移并不等于推倒重写。ETLCloud支持直接编排与执行既有Kettle转换(.ktr)与作业(.kjb)文件,
因此第一阶段可采取「复用优先」策略:将现有Kettle文件接入平台统一调度,快速获得集中监控与告警收益;
第二阶段再按需将核心作业逐步改写为平台的原生流程组件,以获得更强的可视化编排与性能优化。这种渐进式路径既控制了迁移风险,又保留了历史投入。
2.实施路径
整体迁移建议分为四个阶段推进:
-
资产盘点(梳理Kettle作业清单与依赖);
-
试点接入(选取典型作业通过「执行Kettle任务」组件接入平台);
-
调度迁移(将定时任务从crontab/Kitchen切换到平台调度);
-
平滑过渡与切换(并行运行、校验一致后下线旧链路)。
下文以「执行Kettle任务」组件为例,完整演示作业的接入与运行过程。
三、作业转换:在ETLCloud中执行Kettle任务
1.流程示例
本示例演示如何通过「执行Kettle任务」组件,在ETLCloud流程中直接运行一个Kettle转换文件,实现Excel合并后写入MySQL的链路。平台提供可下载的流程实例与操作视频,便于快速对照练习:流程实例可在ETLCloud官网示例库获取,操作演示视频可在B站搜索对应教程观看。

2.拖入执行Kettle任务组件并连线
在流程设计画布左侧的组件库中,找到「脚本执行」分类下的「执行Kettle任务」组件,将其拖拽至画布,并通过连线接入到流程的相应节点上。这样,原本在Kettle中运行的任务便可作为平台流程中的一个处理环节被统一调度,而无需在本系统中重新搭建一遍。

3.配置基本属性
在组件配置面板中完成以下基本属性设置:
-
任务来源选择「Kettle转换文件」,指定本次要执行的是.ktr转换;
-
文件路径填写平台部署所在服务器上的文件全路径,需精确到具体的.ktr文件;
-
插件路径填写Kettle插件所在目录,若本次转换未使用额外插件则可留空。
配置完成后即可让平台定位并加载对应的Kettle文件。

4.其他配置
资源数据库------当任务来源选择的是Kettle文件时,此项可跳过。

输入变量设置------若转换中引用了外部变量,可在此处映射传入,本示例无需输入变量;

高级配置中建议勾选「断言失败」与「终止流程」,以便在任务异常时及时中断并暴露问题,避免错误数据继续向下游流转。

5.准备待合并的Excel与输出表
在运行前,准备好需要合并的多个Excel源表,并在MySQL数据库中提前建好用于存放合并结果的输出表。本示例的Kettle文件功能为:读取Excel文件输入、合并表内容、将合并结果输出写入MySQL数据库。下图展示了该Kettle转换的内部结构。

Sheet1准备合并的Excel表数据

Sheet2准备合并的Excel表数据

目标表表结构

6.运行与结果验证
点击「运行」按钮进入调试界面,运行方式选择「执行一次」。

点击「开始运行」并等待结果。

流程运行成功

运行成功后,使用MySQL可视化工具(如Navicat)连接目标库,sheet1表格的数据已正确写入数据表中。

Sheet2表格的数据已正确写入数据表中,端到端链路已打通。

四、调度迁移:从Kettle调度到ETLCloud调度
1.调度方式对比
在Kettle体系中,作业通常依赖Kitchen/Pan命令行配合操作系统crontab或在Spoon中手动触发,缺乏统一的调度视图、失败重试与告警机制。迁移后,所有任务纳入平台「离线集成管理」,可在同一界面查看运行计划、执行历史与依赖关系,调度能力显著增强。
2.在ETLCloud中配置定时调度
将接入平台的Kettle任务绑定到定时调度:在调度中心新建调度策略,设置触发方式(如每天固定时刻、按Cron表达式或依赖上游完成后触发),并关联目标流程。平台会按策略自动拉起「执行Kettle任务」组件,无需人工干预,也无需再维护分散的crontab脚本。
3.调度依赖、重试与告警
对于存在上下游顺序的作业,可在平台中配置任务依赖与失败重试次数,并利用内置告警(邮件、钉钉、企业微信等)在任务失败或超时第一时间通知责任人。相比Kettle时代的「脚本+人肉排查」,集中化的调度与告警大幅降低了运维成本。
五、结论
Kettle完成迁移后,不需要全盘推翻原有历史资产。依托执行Kettle任务组件,可以做到脚本少改造甚至不改造完成接入,快速把分散本地、依靠crontab运行的历史ETL作业收拢到云平台。
在此基础上,复用平台定时调度、任务依赖、失败重试、监控审计能力,补齐Kettle原生短板;同时平台支持部署在国产化软硬件环境,适配国产数据库,满足信创建设的合规诉求。配合新旧链路并行运行、数据一致性校验、灰度切换的平稳过渡策略,企业能够在风险可控前提下完成数据平台现代化升级。
对于正在做数据集成平台升级的团队,复用优先、渐进替换、平滑过渡这套迁移思路,兼顾实施效率、业务稳定性与项目成本,是一套高可行性落地路径。