2007年3月22日星期四

读书笔记——数据仓库工具箱:维度建模的完全指南(第一章)

第一章、维度建模的初步
1、弄清建模词汇的概念
1)DB和DW的区别和联系
DB是面向事务的设计,数据仓库是面向主题设计的。DB一般存储在线交易数据,DW存储的一般是历史数据。DB设计是尽量避免冗余,一般采用符合范式的规则来设计,DW在设计是有意引入冗余,采用反范式的方式来设计。DB是为捕获数据而设计,DW是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度.

2)维度表、事实表与OLAP CLUB的区别和联系
按照维度和事实的模型结构创建逻辑存储表数据,OLAP基于这些事实表和维度表的数据通过自身的查询语句(例如微软的mdx)取出分析主题需要的数据,再存储到自身创建的CUBE中,然后OLAP工具所有的呈现都是直接从CUBE中取数据。

3)数据仓库和数据集市
大家共识上认为data mart是data warehouse的子集。两者之间的具体差异还是在应用和数据量上,但是两者采用不同的方法论进行建模则会对数据造成不同的影响。

从方法论上,Inmon 和 Kimball有不同的观点:
Bill Inmon 将数据仓库定义为“一个面向主题的、集成的、随时间变化的、非易变的用于支持管理的决策过程的数据集合”;他的主题思路是建立以建立data warehouse 为源头,满足不同主题的需要。见图。
Kimball则认为数据仓库仅仅是构成它的数据集市的联合,他认为“可以通过一系列维数相同的数据集市递增地构建数据仓库”。每个数据集市将联合多个数据源来满足特定的业务需求。通过使用“一致的”维,能够共同看到不同数据集市中的信息,这表示它们拥有公共定义的元素。见图。

以上两种方法论的选择,依据商业的驱动。如果该组织正忍受糟糕的数据管理和不一致的数据,或者希望为今后打下良好的基础,则采用 Inmon 的方法比较适合。 如果该组织迫切需要给用户提供信息,那么 Kimball 的方法比较是适合。

4)data warehouse和ODS/storage area
ODS/storage area为data warehouse提供数据,两者之间最重要的本质区别是:
  • ODS只存储明细数据
  • ODS中存储的数据一般不超过一个月
  • ODS支持事务更新操作


5)DW与DM、OLAP的区别和联系

DW给你夯实基础,是粮草;OLAP给你后见之明 (hindsight);统计分析给你先机 (foresight);DM给你洞察力 (insight)。

2、需要避免的误区
1)避免只关注技术和数据,而不关注业务要求和目标;
2)要满足最小用户需求,不要一味追求高目标的管理梦想;
3)不要全部精力投入数据结构的规范化处理;
4)避免注意力只集中在后台的作业性能和开发上,而不放在前台的性能和使用;
5)展示环节尽可能简单适用;
6)不要孤立的维度建模,而更多的考虑共享的维度建模;
7)满足需求的变更和需求的扩展;
8)要以用户的使用为导向。

BOSS经营分析系统——维度建模(二)

5步迭代建模设计
1、业务需求
营销业务分析;
竞争对手分析;
话务量分析;
基站效益分析;
数据业务分析;
用户发展分析等。

2、定义维度
品牌维度表;
工号维度表;
计费类别维度表;
套餐产品维度表;
服务维度表;
号段维度表;
日期维度表;
时间维度表;
城市维度表;
网点维度表;
乡镇维度表;
客户维度表;
帐户维度表;
用户维度表;
分段值/类别维度表;
基站维度表(渐变维度);
其他自定义的维度(代理维度)等。

3、确定事实

4、定义粒度
1)粒度的选择主要考虑到应用的场合。
对于不通的层次的用户要求的粒度是不同的。不同观察者,有不同角度去观察聚集的数据或者细节数据。对于领导层可能需要粒度高的数据,而前端业务营销人员要求粒度低的数据。一般以尽量最低粒度进行设计,以便实现最大限度的维度性和灵活性。例如:入网量一般按照每入网点每天的最低粒度聚集,话务量按照每用户每小时的最低粒度聚集等等。
2)粒度的设计还要考虑事实存在粒度,维度也存在粒度。

5、定义度量
在上面的几点过程中,确定事实和粒度后,比较容易确定度量指标了。度量的不同会影响粒度和维度的选择。也存在特殊度量的计算,需要选择其他的度量来得到结果。