博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
odi增量更新策略
阅读量:7257 次
发布时间:2019-06-29

本文共 836 字,大约阅读时间需要 2 分钟。

增量更新策略:通过一个“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

转载地址:http://sqpdm.baihongyu.com/

你可能感兴趣的文章
iOS-设计模式简析
查看>>
postman Runner配置
查看>>
阿里、网易、滴滴共十次前端面试碰到的问题
查看>>
【BZOJ】1798: [Ahoi2009]Seq 维护序列seq 线段树多标记(区间加+区间乘)
查看>>
大型项目前端架构详谈(1)纯前端发布
查看>>
【BZOJ】1704: [Usaco2007 Mar]Face The Right Way 自动转身机
查看>>
我的公众号
查看>>
Mysql 相关操作
查看>>
Android 2.0 开机动画文件分析
查看>>
django1.11
查看>>
tornado 07 数据库—ORM—SQLAlchemy—查询
查看>>
UML for mac
查看>>
Python_collections_deque双向队列
查看>>
Graphics View控件在pycharm中显示图片
查看>>
ci实现RBAC,详细解释原理和核心代码显示
查看>>
Qt的SQL操作,DELETE,SELECT
查看>>
分布式系统监视zabbix讲解四之可视化--技术流ken
查看>>
linux上如何删除文件名乱码的文件
查看>>
day07-深浅拷贝 set集合
查看>>
turtle教程-Python绘图
查看>>