当前位置: 资源下载\BI 原创\标准化数据变更捕获

标准化数据变更捕获

Fon Silvers, 2009/8/13

有时,数据仓库会包含2张维度非常大的维度表,由于维度非常大,以至于当它们由商业智能报告工具连接时,在符合要求的时间内,会消耗掉大量的资源和时间来返回结果集。这些维度太大了所以很难连接。
当上述情况发生时,最常见的解决方法是预先连接这两张庞大的维度表,使它们变成一张非标准化的维度表。这个连接怎么做呢?那些提取、变换、和加载程序会使它变为现实。ETL程序有一个简单的功能,就是每天在数据仓库的顾客早晨来到访问之前,连接2张很难连接的庞大的维度表。
传统的数据变更的捕获
在传统的数据变更的捕获中,ETL程序了解完整的值域,这些值域是此刻存储在记录系统中的有效的值域 - 集合A。之前在数据仓库中的值域 - 集合B,被用来与集合A相比较。由此得到的变更结果集被用来更新数据仓库。
这个方法的优点在于完整性。因为它会包括在集合A 和集合B中的值域,没有排除任何值。而缺点在于对用来创建和管理2个来自于构建于 2张很难连接的庞大的维度表上的非标准化的维度上的值域的必须消耗的资源。
标准化变更数据的捕获
一个针对构建于 2张很难连接的庞大的维度表上的非标准化的维度的可能的解决方法是标准化的CDC。标准化的CDC的元素包括以下:
集合A -此刻存储在记录系统中的有效的值域
集合B -之前在数据仓库中的值域
维度1 – 第一个大的维度表非标准化为集合A 和集合B
维度2 – 第二个大的维度表非标准化为集合A 和集合B
对非标准化的维度表的标准化的CDC的步骤如下:

第一步:为记录系统(集合A)和数据仓库(集合B)的维度1和维度2实现值域

第二步:对维度1和维度2进行CDC处理,使之分离

第三步:通过连接标准化的插入,更新,和删除记录使之回到他们之前的值域来实现完整的插入,更新和删除记录的集合

第三步可能会比较复杂和麻烦。但是,当另一种替代方法是ETL处理,而它又不能及时完成去满足它所要求的SLA - 或者根本就不能完成 - 复杂和麻烦也就变得有点可以忍受了。
这个方法的优点是在于连接功能。ETL程序只可以连接那些变更过的记录而不能连接那些非标准化维度的值域。这种方法会使得在标准化的CDC的连接中消耗的资源更加有意义,而且消除了不必要的资源消耗。

传统的对比值域的CDC方法是最佳实践,并且应该是管理维度表的第一选择,不管它是否标准化在数据仓库中。但是,当产生非标准化维度表的连接变得很大而使得传统的CDC不能在需要的ETL时间窗内完成时,标准化的CDC是另一种可选择的方法。尽管它比传统的CDC要更复杂,标准化的CDC可以减少为了实现非标准化维度中的数据而必须的在连接时数据的基数。因此,它允许ETL程序在ETL时间窗内完成而不会造成非标准化维度表中的数据完整性的任何损失。

Fon Silvers毕业于南加州大学,拥有MBA学位,主要研究信息系统。他现在是一家财富500强零售企业的ETL分析员,他开发了针对数据仓库的ETL程序。在2008年3月,Sliver出版了他的第一本书: <<构建和维护数据仓库>>。他的联系方式:fon.silvers@verizon.net.


本文摘自 information-management

译者介绍:
贾冉,毕业于清华大学,拥有软件工程硕士学位,现从事软件研发管理工作,
曾在 IBM,BEA 等大型外企工作,熟悉 JAVA、 J2EE 、搜索引擎,数据仓库等技术。

转载请注明出处。

 

北京迈思奇科技有限公司 2004-2008 地址:北京市海淀区中关村紫金数码园4号楼201,邮编 100190 电话:86-010-62662626 传真:86-010-62662776 京ICP备05066245号