有关kettle的学习,这里就先不细述kettle中的各种控件的作用了,后续再根据时间补上吧。
1、kettle界面
打开kettle,主界面有两块内容,分别是转换、作业,在其上右键可新建文件。
转换:数据ETL。
作业:定时任务。
2、创建数据库连接
新建一个转换后,在主对象树栏选择“DB连接”,右键新建。
点击“测试”,可以查看是否连接成功。
2.1 同一数据库内的两表同步更新
1、流程
核心对象——输入——表输入——输出——插入、更新
2、两个控件的配置
(1)表输入:需要被拉取数据的表
(2) 插入、更新:配置需要更新数据的表
如果不需要定时任务的话,那么到此就结束了。点击左上角即可运行,完成数据更新。
3、设置定时任务
- 流程:
通用——START——转换——成功
- 配置
(1)START:根据需要设定定时更新的时间。
(2)转换:选择上述配置完成并保存的转换。
点击左上角即可运行,静静等待设定的时间就可以完成数据更新啦。
2.2 两个数据库之间的数据同步更新
1、流程
核心对象——输入——表输入——连接——合并记录——输出——数据同步
2、两个控件的配置
(1)表输入:需要被拉取数据的新表和需要更新数据的旧表
(2)合并记录
要注意旧数据源是要同步的数据,也就是目标数据;新数据是来源数据,也就是被同步的数据。标志字段随便起名即可(要符合命名规范)。匹配的关键字段最好是主键(唯一值勉强也行),数据字段是要同步的列(注意,一定要包括关键字段,否则目标数据该列就是空值,千万注意!!)
(3)数据同步
合并完成后,标志字段的值有4种,分别是:
“Identical” : 关键字段在新旧数据源中都存在,且域值相同。
“changed” : 关键字段在新旧数据源中都存在,但域值不同。
“new” : 旧数据源中没有找到该关键字段。
“deleted”: 新数据源中没有找到关键字段。
则数据同步的配置需要注意以下几点:
(1) 不论是查询的关键字,还是更新字段,都要把标志字段去掉(注意,去掉标志字段!);其他字段根据业务需求,进行设置;
(2) 高级标签中的规则要定义好,否则会报“It was not possible to find operation field [null] in the input stream!”错误。
如果不需要定时任务的话,那么到此就结束了。点击左上角即可运行,完成数据更新。
3、设置定时任务
这里的步骤就跟2.1里一样,不赘述了。
总结:
上述都是最简单的操作,写的比较仓忙,有时间再完善!