首页 > 代码库 > odi增量更新策略
odi增量更新策略
增量更新策略:通过一个“update key”比较流数据记录与目标表中的记录比较进行数据整合。具有相同“update key”的记录当相关联列不同时将被更新;在目标表中不存在的记录将被插入。这种方式用来操作记录的变化不需要记录的时候。
IKM使用面向SQL编程的方法而不是通过逐行记录比较的方法来比较记录的不同。这种策略最常用的方法为把转换后的数据整合到I$表中,步骤:
①创建I$表,增加一个叫IND_UPDATE的列,用来标识这条记录是被插入还是被更新;
②把流数据插入到I$表中,所有的源数据被转换和插入到I$表中,IND_UPDATE被设置为“I”;
③如果在接口中选择“recycle errors”,则把被拒绝的记录添加进来;
④调用CKM进行数据质量检查;
⑤更新I$表的ind_update列如果与目标表中更新键相同的记录则标记为“U”;
⑥再次更新表I$中ind_update为“U”的记录,如果这些记录的列值与目标表相同则ind_update设置为“N”,接下来I$表中包含下面的记录:
·“I”这些记录将被插入
·“U”这些被更新
·“N”这些记录被忽略
⑦使用I$表中“U”的记录更新目标表;
⑧使用I$表中“I”的记录插入目标表。
注意:更新键必须是唯一的,在到多数情况下主键可以作为更新键。如果主键是代理键(自动更新的),在这种情况下基于源的列被用作更新键。
IKM incremental update的步骤:
①Create the flow table in the staging area
②Determine what to update (using the update key)
③Determine what shouldn’t be updated by comparing the data
④Update the target with the existing records
⑤Insert new records
odi增量更新策略