一次关于Kettle学习以及实践

Kettle在linux环境的部署和使用

背景

最近接了一个需求,大致内容是对Oracle数据库的两张表读取合并,然后导入到Mysql数据库指定表中(全量更新)。因为之前从来没有接触过,遂有了这次学习实践。

Kettle介绍

Pentaho Data Integration (PDI, also called Kettle) is the component of Pentaho responsible for the Extract, Transform and Load (ETL) processes.

以上来自维基百科

Kettle为一个ETL工具(又名PDI),其强大之处在于对各种数据源都能够处理。

Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

作为Pentaho的一个重要组成部分,现在在国内项目应用上逐渐增多。

具体组件

Kettle目前包括4个组件:Spoon、Pan、CHEF、Kitchen。

SPOON 允许你通过图形界面来设计ETL转换过程(Transformation)。

PAN 允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。

CHEF 允许你创建任务(Job)。 任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务将会被检查,看看是否正确地运行了。

KITCHEN 允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。

Spoon

下面开始介绍如何使用spoon处理oracle到mysql的数据同步

ps: jdbc驱动需要自行下载放入./data-integration/lib/

oracle-mysql数据同步

1. 新建一个表输入对象(核心对象->输入->表输入),写好SQL。


编辑表输入,配置SQL

2. 开始配置oracle链接,点击数据库连接的新建按钮就会出现下图页面,根据图片配置好相关参数并保存(如果是持续运行情况下,建议使用连接池)。


配置Oracle链接

3. 开始配置Mysql输出,新建一个"插入/更新"对象(核心对象->输出->插入/更新),然后配置Mysql链接

因为Mysql8以后驱动有变化,而Native配置方式是使用的默认驱动,所以使用Mysql8以上版本的同志请使用一下方式配置(JNDI)

Mysql链接配置

4. 上述的JNDI配置还需要修改Kettle的jdbc配置文件,文件路径为./data-integration/simple-jndi/jdbc.properties


jdbc.properties

5. 开始配置查询关键字和更新字段。(注:如果需要update,尽量做成先delete然后再insert,因为kettle对于update操作效率较低)

更新配置

6. 然后点击运行按钮,查看效果。

后续

后面会介绍如何linux环境部署,以及Pan组件的使用。

学习链接:

Kettle官网

kettle中文学习网站

Kettle初识

Kettle — 使用手册



以上为Kettle的学习以及Spoon组件的实践,首次接触学习的并不深入,如有错误请指出!

你可能感兴趣的:(一次关于Kettle学习以及实践)