1 / 20
文档名称:

kettle实践经验总结.doc

格式:doc   大小:2,876KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

kettle实践经验总结.doc

上传人:2028423509 2019/12/6 文件大小:2.81 MB

下载得到文件列表

kettle实践经验总结.doc

文档介绍

文档介绍:数据抽取工具Kettle实践经验小结杭州州力数据-陈力同步数据常见的应用场景包括以下4个种类型:、无更新、无删除 、无增加、无删除 +更新、无删除 +更新+删除 71无参数输入: 72、有参数输入 、无更新、无删除对于这种只增加数据的情况,可细分为以下2种类型:1)      基表存在更新字段。通过获取目标表上最大的更新时间或最大ID,在“表输入”步骤中加入条件限制只读取新增的数据。这里要注意的是,获取最大更新时间或最大ID时,如果目标表还没有数据,最大值会获取不了。其中的一个解决方法是在“获取最大ID”步骤的SQL中,加入最小日期或ID的联合查询即可,如:SELECTMAX(ID)FROM(SELECTMAX(ID)ASIDFROMT1UNIONALLSELECT0ASIDFROMDUAL)2)      基表不存在更新字段。通过“插入/更新”步骤进行插入。插入/更新步骤选项:、无增加、无删除通过“更新”步骤进行更新。更新选项:+更新、无删除通过“插入/更新”步骤进行插入。区别是“插入/更新步骤”中的选项,去掉“不执行任何更新”的勾选:+更新+删除这种数据同步情况,可细分为以下2种情况:1)      源库有表保存删除、更新和新增的信息。通过条件判断,分别进行“插入/更新”和“删除”即可,如下图所示。2)      源库没有保存增删改信息Kettle提供了一种对比增量更新的机制处理这种情况,可通过“合并记录”步骤实现,该步骤的输入是新旧两个数据源,通过关键字进行数据值比对,对比结果分为以下4种类型:“Identical”:关键字在新旧数据源中都存在,域值相同“changed”:关键字在新旧数据源中都存在,但域值不同“new”:  旧数据源中没有找到关键字“deleted”:  新数据源中没有找到关键字两个数据源的数据都进入下一步骤,上述4种结果类型作为输出表的标志字段进行保存。以下为示例:Ø  源数据库测试脚本createtablek1(f1varchar2(200),f2varchar2(200))truncatetablek1;insertintok1(f1,f2)values('1','11');insertintok1(f1,f2)values('2','22');insertintok1(f1,f2)values('5','5');commit;Ø  目标数据库测试脚本createtablek1(f1varchar2(200),f2varchar2(200))truncatetablek1;insertintok1(f1,f2)values('1','1');insertintok1(f1,f2)values('2','2');insertintok1(f1,f2)values('3','3');insertintok1(f1,f2)values('4','4');commit;      合并过程如下:其中“合并记录”步骤的选项:执行后,查询K1_TEST结果如下:可以看到,该结果表的BZ字段保存了更新、删除、新增的记录信息,通过条件分支即可分别对这些记录进行相应的处理。“条件”选项:,有参数输入与无参数输入两类。1无参数输入:输入存储过程名称直接调用即可,但需要设置返回值(在参数设置中配置好)2、有参数输入此类比较常见,也比较复杂。(1)变量值固定:首先,在转换中设置变量。对调用存储过程的转化进行配置:此3步骤的配置如下:注意:获取系统信息中的类型中的命令行参数X,指的就是下一步中对应的位置参数!故,在每次点击执行作业job(一个作业可能包含多个转换transform)时,需要配置或者核对参数值。最后,点击开始运行你的作业,出现如下,在“位置参数”部分写上对应的值。然后点击执行(这中方法当然是要在配置好与调用存储过程相匹配的变量获取后才行)。