Kettle ETL 工具入门:数据库连接与数据同步实战
Kettle(现称 Pentaho Data Integration)是一款基于 Java 编写的开源 ETL 工具,支持 Windows、Linux 和 Unix 平台。它的核心优势在于高效稳定的数据抽取能力,以及图形化的用户界面——你只需描述'做什么',无需纠结'怎么做'。
在 Kettle 中,主要包含两种脚本文件:Transformation(转换)用于处理具体的数据清洗与转换逻辑,而 Job(作业)则负责控制整个工作流的执行顺序。下面我将结合实战经验,带你从零搭建一个完整的数据同步流程。
1. 环境准备与启动
首先下载并解压 Kettle 安装包(示例版本为 PDI-CE-6.1.0.1)。解压后找到根目录下的 Spoon.bat(Windows)或 Spoon.sh(Linux)双击运行。首次启动时请耐心等待,JVM 初始化可能需要几秒钟。
提示:如果后续操作中遇到驱动找不到的异常,通常是因为缺少对应数据库的 JDBC 驱动。请将
.jar格式的驱动包放入 Kettle 安装目录下的lib文件夹中,然后重启 Spoon。
2. 建立数据库连接
打开主界面后,左侧的对象树面板是操作的核心区域。右键点击 Connections -> New,即可创建新的数据库连接。
配置过程与其他数据库管理工具类似,关键在于填写正确的 URL、用户名和密码。建议先点击 Test 按钮验证连通性,确保驱动加载无误后再保存。
3. 构建数据转换(Transformation)
这是实现数据全量对比与更新的核心环节。我们需要创建一个新转换,并在左侧面板选择 Core Objects -> Input -> Table Input。
3.1 配置表输入
将 Table Input 拖入右侧画布,双击编辑。选择刚才建立的数据库连接,编写 SQL 查询语句以获取源数据。此时可以点击 Preview 预览结果,确认字段映射是否符合预期。
3.2 配置插入/更新
接着,从 Output 类别中找到 Insert/Update 组件,同样拖入画布。
- 连接步骤:选中
Table Input,按住 Shift 键拖动连线至Insert/Update,建立数据流。 - 参数设置:双击
Insert/Update进行配置。指定目标表名,并勾选需要参与对比的字段(Key Fields)。- 逻辑说明:Kettle 会自动比对 Key Fields。若目标表中不存在该记录,则执行插入;若存在,则根据非 Key 字段的差异执行更新。
完成配置后,务必先保存转换文件(.ktr),否则无法运行。点击工具栏的绿色播放按钮即可查看执行效果。
4. 使用作业调度(Job)
如果需要定时或周期性执行上述转换,就需要用到 Job。新建一个作业文件(.kjb),从左侧面板拖入 Start 节点和 Transformation 节点。
- Start 节点:双击可设置作业的开始时间或条件。
- Transformation 节点:双击后选择之前保存的
.ktr文件作为执行任务。
最后连接这两个节点,运行作业即可实现自动化调度。至此,一个基础的 ETL 数据同步链路就搭建完成了。
5. 避坑指南
在实际使用中,有几个细节值得注意:


