kettle
kettle
概述
什么是kettle
Kettle是一款开源的ETL工具,纯java编写。用于数据库间的数据迁移 。
可以在 Linux、windows、unix 中运行。
推荐学习网站
kettle中文网:https://www.kettle.net.cn/2794.html
参考博客:https://juejin.cn/post/6986507517022961695
安装
由于 kettle 是基于 java 的,因此需要安装 java 环境,并配置 JAVA_HOME 环境变量。
建议安装 JDK1.8 及以上,7.0以后版本的 kettle 不支持低版本 JDK。
8.2版下载地址:http://mirror.bit.edu.cn/pentaho/Pentaho%208.2/client-tools/
解压即用
目录说明
下载相应的数据库驱动
由于 kettle 需要连接数据库,因此需要下载对应的数据库驱动。
例如 MySQL 数据库需要下载 mysql-connector-java.jar,oracle 数据库需要下载 ojdbc.jar。下载完成后,将 jar 放入 kettle 解压后路径的 lib 文件夹中即可。
启动
双击 Spoon.bat 就能启动 kettle 。
转换
转换包括一个或多个步骤,步骤之间通过hop来连接。
hop定义了一个单向通道,允许数据从一个步骤流向另一个步骤。
在Kettle中,数据的单位是行,数据流就是数据行从一个步骤到另一个步骤的移动
新建转换
- 打开 kettle,点击 文件->新建->转换。
数据库连接
- 在左边 DB 连接处点击新建。
- 根据提示配置数据库,配置完成后可以点击测试进行验证,这边以 MySQL 为例。
mysql5的话需要导入mysql-connector-java.jar对应的jar包
如果是mysql8则不需要导入jar包。
kettle默认使用的是org.gjt.mm.mysql.Driver,而mysql 8.0以上connector已经不再支持这个包名;
即使将mysql-connector-java-8.0.xx.jar包拷贝到data-integration/lib目录下,还是报错找不到驱动;
所以我们需要手动配置使用com.mysql.cj.jdbc.Driver作为驱动。
com.mysql.cj.jdbc.Driver兼容JDK8环境,不兼容JDK7环境,JDK版本不匹配时连接也会出错,如果服务器上JDK版本较低 要升级下
更新jdbc.properties文件,在simple-jndi目录下,新增新增jndi配置:
Myslq8_DB/type=javax.sql.DataSource
Myslq8_DB/driver=com.mysql.cj.jdbc.Driver
Myslq8_DB/url=jdbc:mysql://db_ip:3306/db_name?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai
Myslq8_DB/user=db_user
Myslq8_DB/password=db_password
新建数据库连接,选择mysql数据库,选择JNDI,在JNDI名称中填入Myslq8_DB.
表输入
在左侧找到表输入(核心对象->输入->表输入),拖到右方。
- 双击右侧表输入,进行配置,选择数据源,并输入 SQL。可以点击预览进行预览数据。
插入更新
- 在左侧找到插入/更新(核心对象->输出->插入/更新),拖到右方。
- 按住 Shift 键,把表输入和插入/更新用线连接起来。
- 双击插入/更新进行配置。
- 点击运行,就可以运行这一个转换
这样就完成了一个最简单的转换,从一个表取数据,插入更新到另一个表。