您的位置:首页 > 其它

《数据仓库工具箱:维度建模的完全指南》笔记总结

2014-01-01 22:06 295 查看
此篇是关于本书的读书笔记总结,因为在这方面的理解还是比较初级的状态,有误之处还望指教。

个人认为这本书对于数据仓库的建模思路有一个很明确的描述:围绕事实表建立维度表。对数据仓库的建设有关键步骤上的指点:
四步流程:
1. 确定业务流程
2. 确定粒度
3. 确定维度
4. 确定事实表
另外一方面,由于这本书的出版时间大约在2005年前,因此对于Hadoop之类的分布式概念没有涉及,姑且可以认为是传统数据仓库建模的建模流程(这里的表述未必准确,因为本书主要是概念性的指导而非物理实现的说明,因此对于数据建模还是有很大的参考价值的)。而且不知道是不是翻译的差异,感觉行文比较啰嗦,经常看了半天也抓不住重点。

这里列举一些感触较深的概念:

1. 因果维度:如果某个维度的变化会导致事实表变化,则称其为因果维度。事实上,每个维度(比如时间维度)的变化都会造成事实表(比如销售量)的变化,因果维度的特殊性在于这种变化是主动的,用来描述决策者行为对事实表的变化,而时间等维度更多的是自然性的变化。

因果维度的对立面是偶然维度,这个概念我也没有足够了解,可能指的是相关而非因果的信息。

促销维度是一种典型的因果维度,其中包括降价,活动等等,见第二章

2. 总线结构:这是对于公司不同部分在数据仓库建设方面的关联方法,增量的构建数据仓库。既然不同业务部门都要建立数据仓库,作者提出按业务而不是按部门建立数据仓库,因此总线流水式符合业务的运行流程,可以更好的与业务结合,毕竟数据仓库的目标是服务业务的

3. 值链:描述机构主体活动的自然逻辑流程。主要目标是将业务中先分解为几个部分,不同部分可能分别由操作型源系统构成。

操作型源系统即OLTP,和数据仓库的区别是normalized. 我个人认为normalized和denormalized问题如同CPU密集和IO密集型应用一样,是数据仓库和数据库最最根本的分别。(雪花型和星型反映的也是数据仓库的规范化程序,即应用中的半规范化概念)。

4. 半加性事实:在某些维度下可加,在另外一些维度下不可加的事实。比如银行存款,在日期维度上,一周后的存款不等于每天结算时的存款总额,而在银行网点维度上,一个城市的总存款等于各个分行的存款总额。

5. 混合事实表:某些应用中,事实表的事实可能存在内在关联,那么是把它们分裂作为不同的事实表,还是混合作为一个整体的事实表需要考量。

6. 渐变维度:在业务发生调整时基本保持不变的维度,与之相对应的是快变维度,比如某个维度表的属性经常性的发生取值变化。
7. 一致性维度:避免不同业务部门对于维度定义的不统一,这也是数据仓库团队的主要工作之一,避免同一个概念的不同表述。

8. 三种基本的事实表:

(1)事务:记录基本的事务活动
(2)周期性快照 : 规律性的时间插入
(3)累计快照:存在重新存取
9. 维度支架:一种雪花状模型使用的条件,其特点是最外延的维度表很多属性,它又作为关键字给内延维度表查询使用,合并在一起由于粒度差距较大而会引起极大的冗余
10. 属性变化策略
(1) 改变属性值:对于非关键字,可以直接做替换,问题在于无法记录旧的取值
(2) 添加维度行:如果某个维度的属性发生变化,那么不是直接替换原来值,而是生成新值
(3) 添加维度列:比如现部门,前部门。增加一个新的维度列把维度与之间信息相关联

另外有一本书<<点击流数据仓库>>,作者也是Kimball的拥护者,也存在时间较早的遗憾,虽然谈了很多具体实现,但和现在的应用环境有较大的区别。网上有很多不错的建模文章(比如宽表建模,Hive)但还是很希望能有一些接地气的DW/BI设计书籍可以系统阅读,如果有可以推荐给我非常欢迎。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: