Kettle是一项进行数据清洗的工具。
概念:
- 资源库
- 官方提供的一个需要部署的在线资源库
- 数据库资源库
- 文件资源库(最常用)
- 数据库连接:生成文件
- 转换:为了完成数据加载、处理。生成的文件为。kettle的转换都是从输入开始到输出结束。
- 作业JOB:用来调度,生成的文件是。
输入 --> 输出
输入:表输入、Excel输入、CVS输入
输出:表输出、Excel输出、CVS输出、删除(delete)、插入/更新(merge)、更新(update)
其中的删除、插入、更新与数据库中的操作没有太大区别。不过Kettle更加强大可以读取文件,与不同的数据源。
2.3 保存
2.4 启动与执行结果
1. 去重(去重前需要 排序)
表输入 -> 排序记录 -> 去除重复记录 -> 表输出
6. 字段选择
选择、改名、改类型
7. 字符串操作
out stream filed改名、trim type去除空格、lower/upper大小写转换、padding填充、pad char填充字符、pad length填充到长度、initCap首字母大写、escape忽略大小写、remove special character 移除或替换
其中的pad相当于占位符
8. 字符串替换
相当于replace(‘#’,‘’);其中的搜索利用正则表达式。
9. 计算器
可以对日期、数字类型按照公式进行计算
10. 值映射
源值 -> 目标值
类比SQL:case when
11. 行/列转换
11.1 列转行(在数据库中叫做行专列)
行转列类比SQL
11.2 行转列(在数据库中叫做列转行)
类比列转行SQL
// TODO 24-51
写日志、发邮件、运行SSH,空值替换
4.1 写日志
5.1 switch/case
Java脚本、Sql脚本、公式
调用存储过程
使用连接之前需要进行排序,对于可以使用SQL解决的排序,应尽量使用SQL解决,效率相较于Kettle工具要高
- 记录集连接:俩个记录集连接
- 合并记录集:将多个记录集合合并为一个,如果重复会过滤。switch/case是分支拆分。
- 笛卡尔集连接
- Multiway merge join:多记录连接
kettle连接插件的缺陷:仅支持等值连接
分组:group by
- spoon:图形化界面开发
- kitchen:执行作业的命令
- /rep 配置资源库
- /user 配置资源库用户名
- /pass 配置资源库密码
- /job 配置作业的名字
- /logfile 日志文件路径
- /level 日志级别
- pan:执行转换的命令
- /rep 配置资源库
- /user 配置资源库用户名
- /pass 配置资源库密码
- /trans 转换的名称
- /logfile 日志文件路径
- /level 日志级别