kettle 简介及入门

介绍

kettle 是纯 java 开发,开源的 ETL工具,用于数据库间的数据迁移 。可以在 Linux、windows、unix 中运行。有图形界面,也有命令脚本还可以二次开发。

kettle 的官网是 https://community.hitachivantara.com/docs/DOC-1009855,github 地址是 GitHub - pentaho/pentaho-kettle: Pentaho Data Integration ( ETL ) a.k.a Kettle

安装

这边以 windows 下的配置为例,linux 下配置类似。

jdk 安装及配置环境变量

由于 kettle 是基于 java 的,因此需要安装 java 环境,并配置 JAVA_HOME 环境变量。

建议安装 JDK1.8 及以上,7.0以后版本的 kettle 不支持低版本 JDK。

下载 kettle

从 官网 下载 kettle ,解压到本地即可。

下载相应的数据库驱动

由于 kettle 需要连接数据库,因此需要下载对应的数据库驱动。否则,建立数据库连接会报找不到驱动jar包的错误。如 连接mysql 数据库的报错如下:

错误连接数据库 [mysql] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database

Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the ‘MySQL‘ driver (jar file) is installed.
org.gjt.mm.mysql.Driver


org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database

Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the ‘MySQL‘ driver (jar file) is installed.
org.gjt.mm.mysql.Driver

例如 MySQL 数据库需要下载 mysql-connector-java.jar,oracle 数据库需要下载 ojdbc.jar。下载完成后,将 jar 放入 kettle 解压后路径的 lib 文件夹中即可。

下载地址:https://download.csdn.net/download/Auspicious_air/29934584

注意:本文基于 pdi-ce-8.2.0.7-719 版本进行介绍,低版本可能有区别。

启动

进入 kettle 安装解压目录,双击 Spoon.bat 就能启动 kettle 。

 

转换

转换包括一个或多个步骤,步骤之间通过跳(hop)来连接。跳定义了一个单向通道,允许数据从一个步骤流向另一个步骤。在Kettle中,数据的单位是行,数据流就是数据行从一个步骤到另一个步骤的移动。

  • 打开 kettle,点击 文件->新建->转换。

kettle_new_transform

  • 在左边 DB 连接处点击新建。

kettle_new_transform_2

  • 根据提示配置数据库,配置完成后可以点击测试进行验证,这边以 Postgresql 为例。

 

  • 在左侧找到表输入(核心对象->输入->表输入),拖到右方。

kettle_table_input

  • 双击右侧表输入,进行配置,选择数据源,并输入 SQL。可以点击预览进行预览数据。

table_input_config

table_input_preview

注:也可以点击右侧的 “获取SQL查询语句” 按钮,就会出现选择表的界面,选择表之后,点击确定,就会生成查询语句(不过如果不是本地的数据源且网络不佳的情况下不推荐使用)。

  • 在左侧找到插入/更新(核心对象->输出->插入/更新),拖到右方。

insert_update

  • 按住 Shift 键,把表输入和插入/更新用线连接起来。

kettle_connect

  • 双击插入/更新进行配置。

insert_update_config

  • 点击运行,就可以运行这一个转换。

kettle_run_1

  • 运行结束后,我们可以在下方看到运行结果,其中有日志,数据预览等,我们可以看到一共读取了多少条数据,插入更新了多少数据等等。

kettle_run_1_result

这样就完成了一个最简单的转换,从一个表取数据,插入更新到另一个表。

其次再进行配置删除的同步。

 

作业

如果想要定时运行这个转换,那么就要用到作业。

  • 新建一个作业。

new_job

  • 从左侧依次拖动 START 、转换、成功到右侧,并用线连接起来。

new_job_2

  • 双击 START,可以配置作业的运行间隔,这边配置了5秒运行一次。

  • 双击转换,选择之前新建的那个转换。

job_transform

  • 点击运行,就能运行这次作业,点击停止就能停止。在下方执行结果,可以看到运行的日志。

job_run

这样就完成了一个最简单的作业,每隔1小时,将源表的数据迁移到目标表。

总结

kettle 是一个非常强大的 ETL 工具,通过图形化界面的配置,可以实现数据迁移,并不用开发代码。通过它的作业,kettle 能自动地运行转换。

  • 9
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

auspicious航

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值