BI体系结构和数据仓库设计
(2011-02-14 14:26:41)BI体系结构和数据仓库设计
一个数据仓库解决方案经常与一个大型BI策略有关。当你计划利用快速追踪体系结构时,最重要的是了解与系统有关的big-picture架构在BI策略中扮演的角色。这一部分回顾数据仓库在企业环境中的角色和该环境中数据库设计的最佳实践。
BI和数据仓库体系结构概述
上图1表示了典型的BI环境下的方案结构,包括ETL过程、分段环境中的临时存储数据、数据仓库或者数据集、立方体、层次报告描述、仪表板和分析意见。
一个小的解决方案,其中一些组件可以同时分布在一个物理机器上,但是,一个更好的体系结构选择将组件分布在不同的服务器上。
图3表示了组成BI环境的不同物理服务器。
图3:组成BI环境的执行不同功能的多个服务器系统的硬件体系结构
该环境代表了一类可扩展的数据仓库SMP模型,该模型中数据仓库集中在一个单独的服务器上。快速追踪参考架构的目标是数据仓库服务器和基于SMP体系的存储构件。
数据仓库和数据集之间的不同在于数据的规模。一个数据仓库包括了整个公司的数据,与之不同的是,一个数据集处理一个部门或者一个主题范围的数据。数据集常常用于建立中央数据仓库或者公司操作数据存储(ODS)。很多企业环境有多个数据集。可以在没有数据仓库的情况下建立数据集,数据仓库也可以没有数据集。
可以在数据仓库或者数据集中应用快速追踪参考架构。尽管数据集常常比数据仓库规模小,但也可以有几GB数据,需要和数据仓库一样的调整方法和体系结构。
数据仓库设计
数据仓库一词常常用来指存储商业历史数据的数据储藏室。但是事实上,它并没有给出设计原则。数据仓库最常见的误区分列如下:
- 一个复制的或者事务型系统的离线备份不是数据仓库。这些数据库的拷贝不满足历史跟踪或者效率报告的需要。一个为事务处理过程设计的系统常常陷入复杂境况和性能挑战,而且不存储数据历史。
- 一个拥有平面的、带有文本描述和多列组合构成的规格化表格的数据库不是数据仓库。这样的系统查询表、或者记录量与表占用的空间结合时会出现溢出,导致性能问题。当然,这里有一个数据仓库设计模式的范围,包括各种数据标准化实践变更。但是目标是一致的:追踪历史数据的同时优化数据报告和分析结果。
数据仓库常常用三维建模技术进行设计,该技术可以有效处理性能和历史目标。三维建模关注于报告结构的优化,在列(属性)中建立冗余部分,然后在数字指标分析中将其分离出来。
三维模型使用两个主要类型的表:三维表和事实表。
- 一个三维表是关于一个商业实体的一些关联属性,比如产品、存储、发票或者日期。修改三维数据有时候需要保持历史,增加一个新的主键,称为代理主键。三维表经常有很多列,但是记录数据通常比第二种表类型,事实表小很多。
- 一个事实表包含分析标准,叫做测度或者事实。为了与属性相关,事实表也有一个外键与三维表(代理主键)相关。事实表根据度量或者事务的类型进行组织,比如销售、账户余额或者事件。事实表经常有数百万甚至十亿行数据,但是它是理想的报告,因为它不包括无效的列。
图4是这两个事实表的一个例子:店销售和存储。在图中间的事实表,共享同样的三维关系,比如stroe、data和buyer。因为维数要保持一致,这个设计允许同时分析和查询销售记录和存储数量。
图4:关于两个事实表和与之相关的三维表的三维模型例子
与三维表一样,事实表也要追踪历史,比如历史销售,历史存储量,历史账户余额或历史事件。举个例子,一个历史存储事实表能够追踪到每一个仓库产品按星期记录的历史数据。根据这些信息,用户能够发现趋势并分析这段时间内存储的情况,在源事务系统中是无法获取这些信息的。
快速追踪数据仓库参考架构对索引和分区的描述在“选择和实现正确的快速追踪体系”部分,这部分关注代表数据仓库设计的表。