大家好,又见面了,我是你们的朋友全栈君。
kettle是啥?
一款免费开源的、功能强大的ETL工具,纯 java 开发。可以在 Linux、windows、unix 中运行。有图形界面,也有命令脚本还可以二次开发。
一.安装部署
1.JDK1.8安装及环境变量的配置
https://blog.csdn.net/weixin_39549656/article/details/79540644
2.kettle9安装与启动
kettle下载目录:
https://sourceforge.net/projects/pentaho/files/
kettle9.2下载地址:
下载解压之后windows直接执行 Spoon.bat 即可启动(linux执行spoon.sh)。
3.创建资源库(repository)
点击右上connect图标
先选择 Other Repositories ,可以创建文件资源库或者数据库资源库:
Database Repository Unsupported ETL storage that uses a database |
File Repository Unsupported ETL storage that uses your local file system |
很简单根据提示,一步步创建就可以了,本教程只创建 File Repository 文件资源库。
二.简单ETL开发
kettle主要有2种格式开发文件,一个是作业(.kjb)、一个是转换(.ktr)。作业处理任务流,转换处理数据流。
1.转换开发(表对表同步数据)
1.1 创建转换
文件->新建->转换, 或者 CTRL-N。
1.2 新建表输入
核心对象->输入->表输入 ,选中后拖到右边面板。
1.3 配置表输入,选择数据库(首次使用的库 要 新建连接)
注:
mysql需要下载jdbc包(oracle自带驱动),放到kettle的lib/目录里,下载可参考以下连接:
https://www.runoob.com/java/java-mysql-connect.html
建议mysql 8以下用 mysql-connector-java-5.1.39-bin.jar
8以上用 mysql-connector-java-8.0.16.jar
1.4 表输入预览数据
点击 表输入 -> 预览 ,可以查看表输入的部分数据。
1.5 表输出
核心对象->输出->表输出 ,选中后拖到右边面板。
1.6 新建数据流连接
按住 Shift 键,把表输入和表输出用数据流线连接起来。
1.7 配置表输出,选择数据库(这里还用之前的库,创建一张结构相同的表)
1.8 预览或执行转换
2.作业开发(作业流程设计:先设置变量->执行同步的转换(sql引用变量)-> 结果再设置为变量->弹窗显示数据)
2.1 新建作业
文件->新建->作业, 或者 CTRL-ALt-N。
2.2 增加组件:
通用->start,设置变量、转换、成功。
应用->显示消息对话框
按住 Shift 键,用任务流箭头线连接组件。
2.3 设置变量tid=1
2.4 引用刚才开发的转换test_xxx
2.5 修改转换test_xxx,sql里引用变量,并将查出来的结果设置为新的变量。
2.6 设置消息对话框内容
2.7 执行作业
2.8 执行结果
三 总结:
1.转换(ktr)主要是做数据流,
数据的输入、输出、计算、转换等。
2.作业(kjb)主要是做任务流,
用来设计作业的流程,每个组件和步骤是可以有依赖关系的。可以在作业里串行或并行调用多个转换。
3.这个基础教程就先写这些,有机会再做个高级点的。
因为kettle里的 转换(ktr)、作业(kjb)组件众多,讲是肯定讲不过来的,大家还是自己多测试多研究,用多了就熟练了。
4.有个 Kettle中文网 挺不错的,里边有好多实用的例子,这里推一下:
https://www.kettle.net.cn/category/kettle
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142548.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...