http://www.ahuoo.com/wp-content/uploads/2010/01/%E6%9C%AA%E5%91%BD%E5%90%8D1.jpg
以上为个人会员注册主题的事实表和维度表,所要表达的事实是会员来源这个事实,因为会员一旦注册,这个来源的事实将不会改变。如果大家觉得有什么问题,大家可以拍砖讨论。我希望大家是从数据仓库构建的原理上来分析解决问题,因为我现在为止还没有用过任何一个工具。
现在遇到的问题是,我如何进行数据的增量抽取,关于各个抽取的方式我了解的有:
全库比较、程序日志、数据库日志、时间戳、位图索引几种确定方式,这些方式基本都建立在原业务系统的冗余操作之上,例如时间戳是给业务数据记录额外的增加一个字段。我认为在实际操作过程中是不可取的 ,这必然会增加业务操作的复杂度,更为痛苦的是很多公司都是跨部门操作,难度更大。
我现在所想的抽取方式:
1、维表抽取更新方式: 除日期维可以事先建立以外,其他维可以根据其时间戳来按天更新
2、事实表抽取更新方式:
代理键讨论:关于维表关键字的利用上,我在考虑是否需要另外添加序列化号来记录,在数据仓库的设计理论上说不应该利用原业务系统的ID,但我在这里发现利用原ID好像没有什么不妥,相反对于查取数据挺方便,因为我们原业务系统的ID是唯一且不会改变的,还请大家指点@@@。
事实表数据更新讨论: 我这里想的是任何一个维表的数据发生了更新,都要通过关键字关联到事实表的更新所影响的数据。但这样的话就必然产生一些冗余的更新,例如会员维表添加了数据,则需要更新事实表, 伙伴维表添加了数据,也需要更新事实表,如果时间区间一样,这两者很可能是重复的更新,其实只需要更新一次就OK,望拍砖@@@
3、最后一个问题,关于涉及到维表里面的业务数据发生修改以后,大家的维度表是如何更新的,难道大家在业务系统数据表里面添加一个触发器? 还是有别的更好的办法, 望指点@@@
O(∩_∩)O~ 高手们请出来吧,感觉这里气氛不是很浓,大家一起蹦起来吧