第三章 商业智能数据仓库的理论知识

第七节 数据集市介绍

    3.7.1  数据集市的定义

    比尔•盖茨说过:“如何搜集、管理和利用信息将决定您的胜负。”商业智能正是在这种需求下诞生的,而数据集市是满足部分特殊用户群体用来收集、管理他们本部门、本专业信息的数据仓库。大多数情况下,数据集市的数据来源于数据仓库,是一种小型的部门级别的数据仓库。数据集市的重点就是它满足了某些用户的特殊业务需求,根据所属部门的需求,对历史数据进行必要的汇总和计算。那么什么是数据集市?数据集市就是满足特定的部门或者用户的需求,按照多维的方式进行存储,包括定义维度、需要计算的指标、维度的层次等,生成面向决策分析需求的数据立方体。数据仓库体系结构中增加了数据集市,数据集市可以看做是部门级的小型数据仓库,如图 3-22所示。

 数据集市与各系统之间的关系

图3-22  数据集市与各系统之间的关系

    3.7.2  数据集市的类型

    (1)独立型数据集市

    独立型数据集市(见图3-23)的数据来自于操作型数据库,是为了满足特殊用户而建立的一种分析型环境。这种数据集市的开发周期一般较短,具有灵活性,但是因为脱离了数据仓库,独立建立的数据集市可能会导致信息孤岛的存在,不能以全局的视角去分析数据。

 独立型数据集市

图3-23  独立型数据集市

    (2)从属型数据集市

    从属型数据集市(见图3-24)的数据来自于企业的数据仓库,这样会导致开发周期的延长,但是从属型数据集市在体系结构上比独立型数据集市更稳定,可以提高数据分析的质量,保证数据的一致性。

 从属型数据集市

图3-24  从属型数据集市

    3.7.3  数据集市和数据仓库的区别

    在数据结构上,数据仓库是面向主题的、集成的数据的集合。而数据集市通常被定义为星型结构或者雪花型数据结构,数据集市一般是由一张事实表和几张维表组成的。数据仓库和数据集市的数据结构如图3-25所示。

 数据仓库和数据集市的数据结构

图3-25  数据仓库和数据集市的数据结构

    数据仓库和数据集市的区别见表3-3。

表3-3  数据仓库和数据集市的区别

 数据仓库和数据集市的区别

    3.7.4  数据集市和数据仓库的关系

    数据集市是一组特定的、针对某个主题域、某个部门或者某些特殊用户而进行分类的数据集合,也可以说是小型的数据仓库。用户可以在数据集市中快速地对数据进行访问和对报表进行展示,同时在数据结构的内部对数据进行必要的汇总和优化。数据集市的存储通常按照划分主题的形式进行存放,其模型一般是星型结构或者雪花型结构。而数据仓库除了按照主题的形式进行存放外,其模型一般按照第三范式的形式进行设计。数据仓库到数据集市的过程是从数据规范化到多维建模的过程,包括数据仓库内的实体表转化成事实表、维表,以及将实体之间的关系转化成多维关系的映射。在数据仓库项目中,数据集市通常按照地区、日期等维度对数据进行组织和汇总,因此数据仓库转化成数据集市也是按照轻量级汇总或者中度汇总和计算所完成的。简而言之,数据集市里的数据一般都是从数据仓库中经过转换、汇总计算获取的,直接支撑前端的应用需求,如图3-26所示。数据集市的数据通常会作为OLAP服务和应用服务的数据输入。数据集市的数据一般不会从源数据系统中直接抽取,即一般不提倡建设独立型的数据集市。这是因为,如果数据集市从源数据系统中直接抽取数据,则可能导致数据的不一致性,同时也会增加多个额外的进程,这些进程在源系统中将大大消耗系统的CPU资源,从而造成资源上的浪费。数据集市和数据仓库的关系如图3-27所示。

数据集市的数据来源

图3-26  数据集市的数据来源

  数据仓库和数据集市的关系

图3-27  数据仓库和数据集市的关系

    3.7.5  数据集市的目标分析

    数据集市主要是针对一组特定的某个主题域、部门或者特殊用户需求的数据集合。这些数据需要针对用户的快速访问和报表展示进行优化,优化的方式包括对数据进行轻量级汇总,在数据结构的基础上创建索引。数据集市的目标分析过程包括对数据集市的需求进行拆分,按照不同的业务规则进行组织,将与业务主题相关的实体组织成主题域,并且对各类指标进行维度分析,从而形成数据集市目标说明书。内容包括详细的业务主题、业务主题域和各项指标及其分析维度。