简介
kettle译为水壶,即可容纳所有的液体,再从壶口可以统一的流出。kettle是一款可以将多个数据流合并处理后输出的一款ETL工具。当前项目使用用途为同步不同系统的数据。
使用说明
分类
- 任务 .kjb
- 转换 .ktr
任务是大类,一个任务里可以嵌套多个任务,一个任务里可以有多个转换
配置
支持全局配置 :~/.kettle/kettle.properties
配置后需要 source ~/.kettle/kettle.properties
加载配置文件
在kettle中可以使用${field}
的方式替换变量,密码****的样式隐藏了实际数值,但依然适用
current.dir
参数是路径宏变量,即kettle文件的绝对路径,获取请求的时候为请求文件的前缀,后面调用使用相对地址即可
启动
图形化启动,需要JDK环境的依赖,运行方式:
Windows:Spoon.bat
Shell命令: sh spoon.sh
工具介绍
主对象树
转换
- DB连接:用于连接数据库,可以右键共享给其他任务与转换使用
- 步骤:当前打开的转换存在的步骤有哪些,可以进行快速浏览和编辑
- Hops(节点连接):当前转换任务中有哪些连接点
- Hadoop集群:连接集群配置
任务
- DB连接:用于连接数据库,可以右键共享给其他任务与转换使用
- 作业项目:当前作业有哪些流程节点,如:开始->任务1->转换1->转换2->结束
核心对象
转换
- Input:文件输入
- Output:文件输出
- Transform:转换方式(文件)
- 输入:各种输入数据流的方式
- 输出:处理后的数据流输出的方式
- 应用:调用应用
- 统计:统计数据
- 连接:数据连接的方式
- 查询:网络查询数据、数据源查询数据等
- 加密:对数据进行加密处理
- 大数据:大数据处理流方式
- 转换:处理某些值字段,设置常量,特殊值等
- 脚本:外部代码的调用,sql、java、js、正则等等
任务
- 通用:通用的流程
- 邮件:邮件的处理方式
- 文件管理:文件的处理方式,如创建目录压缩文件,解压文件,移动删除等操作
- 条件:流程条件判断
- 脚本:调用SQL、Shell、JS代码
- 文件传输:处理后的文件进入传输流程处理
- 文件加密:对处理好的文件进行加解密处理
调用任务或者转换
SpringBoot调用
需要 org.pentaho.di.*
的各种支持,支持传参
Kettle直接调用
直接点击任务或者转换的运行按钮,支持传参
常用转换的流程
- 表输入:数据流来源
- 排序记录:不同数据源查询的数据使用统一的排序方式
- 合并记录:合并多个数据源的数据做比较,比较更新,新建,删除的状态
- 常量:设置常量用于更新等操作
- 获取系统信息:获取系统的一些信息,IP、当前时间等
- 插入/更新操作:对处理后的数据做保存修改