kettle学习笔记(五)——kettle输出步骤
一、概述
数据库表:
• 表输出
• 更新,删除,插入/更新
• 批量加载(mysql,oracle)
• 数据同步
文件:
• SQL 文件输出
• 文本文件输出
• XML 输出
• Excel Output/Excel Writer
其他(报表、应用)
二、数据库输出
1.表输出
使用SQL的方式向数据库插入数据(INSERT)
支持批量提交
支持分区(Date分区)
支持字段映射
支持返回自增列
这里提示一下出现表输出的中文乱码问题的解决方案:
设置连接编码:characterEncoding utf8
设置连接编码一般就可以正常输出不乱吗的字符了。如果还有问题,可以继续设置客户端编码
设置客户端:set names utf8;
一个测试的表输出如下:
如果选择分区,需要选择Date字段进行分区,并且需要手动创建表(例如按月分区,有201804 201805两个月,则需要创建tb_201804 tb_201805两个表)
如果是要错误输出,可以单击一下连接线改变输出方式(一把锁:开始了执行下面的,勾和叉:正确或者错误输出)
2.返回自增主键
表输出的配置如下:
选择了【裁剪表】,在数据加载之前会对此表做truncate操作。
预览即可查看返回的主键:
3.数据库字段映射
前面步骤可以后后面表输出进行字段映射匹配:
表输出配置如下:
字段映射:
使用猜一猜可以进行名称匹配,如果需要手动匹配,可以左右分别选择,点击Add即可!
并且映射完成之后也可以删除丢弃某些字段
4.其它操作——删除、更新、插入更新
删除:
根据关键字匹配,删除数据库中已有的数据。
更新:
根据关键字匹配,更新数据库中已有的数据。
插入更新:
有则更新,无则插入。
操作都是类似,上面进行匹配,下面进行处理:
5.数据同步
基于比较的同步方式。根据一个flag字段执行相应的插入/更新/删除操作。
配置图如下:使用合并后的flag字段(可能有new deleteed等flag),后续再根据此flag,同步变化的数据到表1
6.批量加载
使用流方式加载数据
MySQL批量加载需要在Linux环境运行(有命令只能在Linux下运行)
Oracle需要本地有oracle客户端(sqlldr文件,在Oracle安装目录下查找)
三、文件输出
1.SQL文件输出
根据选中的数据库类型,生成相应的 SQL 脚本(DDL,DML)。
2.excel文件输出
注意2007以前的版本有65536的行数限制:
3.文本文件输出
比如txt json等,暂不赘述
四、其它输出
1.报表输出
生成报表(pdf,excel,html等格式),需要事先定义好报表模板。
2.XML输出
同样,暂不赘述