关于增量更新的问题

[复制链接]
查看11 | 回复7 | 2015-3-4 14:19:44 | 显示全部楼层 |阅读模式
在增量更新数据时,如果记录没有标识其更新的时间,只有创建的时间,该如何增量更新?
比如表A是一个业务数据表。其中有一列createtime表示其创建时间,但没有update的列。这个表肯定会不定期的更新。
该如何对这样表实现增量更新?











回复

使用道具 举报

千问 | 2015-3-4 14:19:44 | 显示全部楼层
没什么更好的办法


回复

使用道具 举报

千问 | 2015-3-4 14:19:44 | 显示全部楼层
通常来说数据仓库的数据更新是通过etl工具来的,说到底也就是select需要的数据再放到目标处进行insert或者update。
有没有可能通过oracle的物理备份数据库这样的方式,使得数据仓库本身首先是业务数据库的一个备份,其次在此基础上进行数据的清洗什么的。这种方式可行么?
回复

使用道具 举报

千问 | 2015-3-4 14:19:44 | 显示全部楼层
数据库本身可以捕获数据变化的,Oracle10G中的Stream;SQLServer好像也是可以的
在全量备份基础上做数据清洗,几乎上是不可行的
回复

使用道具 举报

千问 | 2015-3-4 14:19:44 | 显示全部楼层
业务数据库中的数据如果发生了UPDATE,那么就应该将UPDATE后的数据INSERT到DW中
DW中的时间戳实际上就是UPDATE的时间
回复

使用道具 举报

千问 | 2015-3-4 14:19:44 | 显示全部楼层
对于你说的情况,你可以在表上增加一个crc循环冗余字段。通过计算源记录的crc值跟dw中记录的crc值对比。能识别出来该条记录是否发生变更。
回复

使用道具 举报

千问 | 2015-3-4 14:19:44 | 显示全部楼层
除了增加字段,对数据源作出改变,貌似别无他法~~
痛苦啊
回复

使用道具 举报

千问 | 2015-3-4 14:19:44 | 显示全部楼层
还有种笨办法,全表扫描关键字段匹配。。。。
很耗资源
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行