加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-14 02:57:02 所属栏目:大数据 来源:网络整理
导读:我们知道所谓 ETL 步骤其实就是把数据从源系统加载到数据仓库或数据集市的操作,并在此过程中实现数据的清洗及转换。除了数据的清洗转换之外,一次 ETL 的过程中另一个十分重要的部分就是:本次抽取能不能直接定位到上次数据处理后变动的数据,即增量抽取 (I

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

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

1.??????源系统具有时间戳

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

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

2.??????源系统没有时间戳

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

?

wKiom1RhokTR1QArAACEqXWFsv0039.jpg

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读