节选PPT中的目录:

两种数据仓库体系结构的比较
构建企业级分析利用型系统的核心,就是构建一个数据仓库体系结构。在这样一个体系结构里,完成对数据的集成、整合、加工、质量等多方面的基础管理,从而满足分析利用型需求的不断变化、扩展,保证应用系统长久的生命力。构建数据仓库体系结构,往往是项目过程中最难的一项工作。它包括建模、ETL、数据质量、元数据等不同领域的衔接、配合。
在数据仓库体系结构的理论中,一直存在着两大宗派。即以Inmon为代表的企业信息工厂(CIF)派,和以Kimball为代表的维度数据仓库派。在这个过程,也发展出第三派------独立数据集市派。
引用《大数据》中的部分内容来描述,企业信息工厂派与维度数据仓库派,类似《笑傲江湖》中华山派的“气宗”和“剑宗”。气宗笃信以气驭剑,气功练就,不论使拳脚、动刀剑,都会无往而不利,但需要长久的修炼。剑宗功夫易于速成,见效极快,不利于长久大成。
现将Inmon的企业信息工厂与Kimball的维度数据仓库剖析如下。
企业信息工厂(CIF),是整个企业的信息加工、生产、分析的原产地,通过不同层次数据的结合,来从整体上达到“信息工厂”的作用,构造图如下:

在企业信息工厂简图中,数据仓库是整个工厂的核心,它承上启下。
数据仓库的数据模型,包括概念模型、逻辑模型、物理模型。
1. 概念模型的设计,主要依据源业务系统的业务模型、数据模型,来归纳、抽象、提炼,站在最高层次来刻画数据仓库的主题。
2.
逻辑模型的设计,主要在概念模型指引下,根据第三范式来刻画实体与实体之间关系、实体主键、属性、外键等。以最小的粒度来描绘数据,从而提升对数据集市的响应能力。通过关系型模型,来最大程度来提升该模型的可扩展性,以及对业务描述的完整性。
3.
物理模型的设计,主要考虑到系统的访问特性、管理特性、存储特性,采用非规范化的手段,来调整逻辑模型。主要包括:合并表、记录级纵向拆分表、字段级横向拆分表、冗余、导出表。同时通过数据库级的手段来提升性能与管理,例如:表空间、分区、索引等。
数据集市以采用维度建模的方法,来满足分析型需求。通过星型模型来克服第三范式关系型模型,带来的检索、汇总、过滤的性能问题。
Inmon认为,“企业数据模型”是业务型系统数据模型、分析型系统仓库数据模型的统一来源。“企业数据模型”,是站在企业架构的角度来规划企业信息模型,著名的架构方法有Zachman架构法。
由于数据仓库的特性是:集成的、稳定的、面向主题的、时间特性(反映历史的)。因此,数据仓库的数据模型,需要在“企业数据模型”或者“业务型系统数据模型”上作如下转换:
1.所有表都加上时间戳,反映历史特性。且被汇总过的历史数据,是不允许修改的。
2.过滤“业务系统数据模型”中业务过程型数据、技术控制型数据,保留真正体现业务的信息内容。
3.从整体上去归类、抽象,最终提炼主题域。以面向主题的方式去组织数据模型。从而体现从总体去集成的特性。
4.稳定性分析,对实体中属性的变化进行稳定性分析,不同稳定级别的属性分组,最终对实体进行拆分设计,从而保证数据冗余的最小化。
实现这种信息工厂,不依赖于集市层应用需求,而是来源于对业务模型、源端数据模型的深刻理解。
那么Kimball的维度数据仓库是什么理念呢?他认为,决策分析就是在一定环境内,对事物的一种度量。“度量”可以理解为“事实”,分析的“环境”可以理解为“维度”,也就是“Whowhenwherewhich……”等。基于这种思想,数据仓库、数据集市都是以“维度建模”方式来设计。简图如下:

在这个简图中,ODS也可以作为可选部分加入。
这种建模方法将重点放在目标端需求,以及对目标端需求的预测、评估上。Kimball开发了“企业总线体系结构”的方法,来构思数据仓库。笔者正在学习与理解这种方法。因此本文暂时无法细致展开,后期月刊中会详细阐述。
通过理解不同数据集市层的需求,来规划、抽象数据仓库核心主题,同时通过“企业总线体系结构”法,来规划每一个主题下的度量,以及度量对应最细颗粒度的维度、以及维度层次、成员。
Kimball精于维度建模,因此设计出“缓慢变化维”、“杂项维”、“退化维”、“行为维”、“多值维”等思路,来保证应对因为维度设计到来的面对历史变化、响应业务扩展、细颗粒度数据的问题。同时,在事实表上总结出事务、快照、累计快照、无事实的事实等类型。
这种维度建模的方法,便于快速捕捉业务、理解业务,从而构建出数据模型。但是,在数据仓库的ETL开发时,遇到一定麻烦-------将分散在不同数据库的符合第三范式的事务级、当前的数据,进行聚合、组织到维度格式的数据仓库模型中。很多时候,需要一个中间层、缓冲层。这一层一旦落地,就跟Inmon企业信息工厂的数据仓库层十分接近。
那么我们税务行业的BI应用系统,应该选择那种体系结构更加合适呢?没有最好的答案------一切因地制宜。一个优秀的架构师,是在理解方法、架构的前提下,根据实际情况,结合成本、进度、效益、未来扩展等多方面因素,择取最适合的架构。
如果站在一个行业长远考虑,充分发挥公司目前对税务行业已经理解到一定程度的优势,充分考虑到行业内不同省市地税局业务的同质性,应该以企业信息工厂法为主,结合维度建模,将二者的优势综合发挥。如下简图:

换另外一个场景思考一下,如果去构建一个市级BI系统,而它的业务系统是全省大集中、数据也是全省大集中。并且该市级单位的IT预算不大。那么,可以选用“独立数据集市“的思路来构建,如下图:

通过“独立数据集市”的思路,构建轻量量的BI应用系统。优势是:开发快、周期短、见效迅速。劣势是:1、针对历史数据的统计,会与业务系统出现不一致。2.与省局有关指标口径不一致。