首页 > 其他 > 详细

数据仓库之 - 增量数据处理

时间:2014-11-11 14:30:43      阅读:339      评论:0      收藏:0      [点我收藏+]

我们知道所谓ETL步骤其实就是把数据从源系统加载到数据仓库或数据集市的操作,并在此过程中实现数据的清洗及转换。除了数据的清洗转换之外,一次ETL的过程中另一个十分重要的部分就是:本次抽取能不能直接定位到上次数据处理后变动的数据,即增量抽取(IncrementalLoad)

取决于源系统的结构,增量抽取有多种实现方式:

1.      源系统具有时间戳

a)      如果源系统有时间戳,并且没有物理删除操作而是使用软删除,那么我们可以直接使用时间戳定位到新增更新以及删除的数据

b)      如果源系统具有时间戳但是会发生物理删除操作,那么我们就只能定位到新增及更新的数据,对于删除的数据则无能为力,那么我们就只能使用下面介绍的方法来实现增量

2.      源系统没有时间戳

a)      如果源系统没有时间戳,并且不允许在源系统上使用CDCtrigger等捕获变更数据的方式,那么在数据从数据源加载到Staging表的步骤我们无法使用增量抽取,但是我们可以在Transformation表中添加时间戳,这样在Transformation步骤通过数据对比的方式来识别出增、删、改的数据来填充或更改时间戳,这样在数据从Transformation表加载到数据仓库的时候可以实现增量处理。这样的好处是:在Loading步骤需要处理的数据量很少,对DWH的锁需求就少,因为对于使用数据仓库的业务用户影响就小。

 

bubuko.com,布布扣

b) 如果源系统允许开启CDC,那么另一种简单的办法就是结合使用SQLServerCDC功能以及SSISCDC控件来实现数据增量处理


数据仓库之 - 增量数据处理

原文:http://yubowang.blog.51cto.com/8929119/1575287

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!