综合百科行业百科金融百科经济百科资源百科管理百科
管理百科
管理营销
资源百科
人力财务
经济百科
经济贸易
金融百科
金融证券
行业百科
物流咨询
综合百科
人物品牌

维度建模

  	      	      	    	    	      	    

维度建模(Dimensional Modeling)

目录

什么是维度建模

  维度建模数据仓库建设中的一种数据建模方法。Kimball 最先提出这一概念。其最简单的描述就是,按照事实表,维表来构建数据仓库,数据集市。这种方法的最被人广泛知晓的名字就是星型模式(Star-schema)。实体关系(E-R)建模通常用于为单位的所有进程创建一个复杂的模型。这种方法已被证实在创建高效的联机事务处理 (OLTP) 系统方面很有效。相反,维度建模针对零散的业务进程创建个别的模型。例如,销售信息可以创建为一个模型,库存可以创建为另一个模型,而客户帐户也可以创建为另一个模型。每个模型捕获事实数据表中的事实,以及那些事实在链接到事实数据表的维度表中的特性。由这些排列产生的架构称为星型架构或雪花型架构,已被证实在数据仓库设计中很有效。

  维度建模将信息组织到结构中,这些结构通常对应于分析者希望对数据仓库数据使用的查询方法。1999 年第三季度西北地区的食品销售额是多少?表示使用三个维度(产品、地理、时间)指定要汇总的信息。

  星型模式之所以广泛被使用,在于针对各个维作了大量的预处理,如按照维进行预先的统计、分类、排序等。通过这些预处理,能够极大的提升数据仓库的处理能力。特别是针对 3NF 的建模方法,星型模式在性能上占据明显的优势。

  同时,维度建模法的另外一个优点是,维度建模非常直观,紧紧围绕着业务模型,可以直观的反映出业务模型中的业务问题。不需要经过特别的抽象处理,即可以完成维度建模。这一点也是维度建模的优势。

  但是,维度建模法的缺点也是非常明显的,由于在构建星型模式之前需要进行大量的数据预处理,因此会导致大量的数据处理工作。而且,当业务发生变化,需要重新进行维度的定义时,往往需要重新进行维度数据的预处理。而在这些与处理过程中,往往会导致大量的数据冗余

  另外一个维度建模法的缺点就是,如果只是依靠单纯的维度建模,不能保证数据来源的一致性和准确性,而且在数据仓库的底层,不是特别适用于维度建模的方法。

维度建模步骤

  在商业智能项目的实施过程中,维度建模技术和企业数据仓库建模是两种不同的方法论,以下是在以应用驱动、提供快速原型的商业智能项目的实施和规划过程中使用的维度建模方法时的标准实施过程。具体到项目中则根据项目的规模及所涉及的业务范围而有所补充或裁减。

  1. 商业智能项目规划

  a) 数据仓库项目的定义及范围

  b) 项目准备评估

  c) 业务合理性证明

  2. 商业智能项目业务需求定义

  a) 业务需求收集

  b) 业务需求审查

  c) 数据审计

  3. 数据仓库逻辑设计

  3.1. 维度建模

  维度建模是一种逻辑设计技术,该技术试图采用某种直观的标准框架结构来表现数据,并且允许高性能存取。维度模型是用来设计向最终用户交付数据库的一种快速交付技术。

  3.2. 定义数据仓库总线结构

  a) 业务驱动维度建模

  b) 数据仓库总线结构矩阵

  c) 一致性维度

  d) 一致性事实

  一致性维度和一致性事实是数据仓库的“总线”

  e) 单元数据集市

  购货订单装船付款

  来源于单个事务

  f) 多元数据集市

  客户利润率,其中描述收益的传统源必须与描述成本的传统源组合在一起使用。

  来源于多个事务

  应该从单元数据集市开始创建数据集市

  g) 事务模式数据集市

  h) 周期快照数据集市

  i) 累计快照数据集市

  3.3. 定义高级数据模型逻辑图

  3.4. 维度模型的设计过程

  a) 选取业务处理

  b) 定义粒度

  c) 选定维度

  d) 确定事实

  3.5. 源数据-目标数据映射(ETL规则定义)

  a) 维度表映射

  b) 事实表映射

  3.6. 产出文档

  a) 数据仓库总线结构文档

  b) 高级数据模型文档

  c) 数据模型及ETL设计文档

  4. 数据仓库物理设计

  4.1. 创建物理数据模型

  a) 选择数据建模工具

  b) 物理数据结构的设计

  4.2. 制定最初的索引计划

  a) 为事实表创建索引

  b) 为维度表创建索引

  4.3. 设计和创建数据库实例

  a) 保存数据库创建脚本和参数文件

  b) 创建物理存储结构

  4.4. 产出文档

  a) 数据模型设计文档

  b) 数据库创建脚本文档

  c) 数据库初始化脚本文档

  d) 在数据模型及ETL设计文档中加入相关部分的设计内容

  5. ETL设计与开发

  5.1. 维度表装载设计

  5.2. 事实表装载设计

  5.3. 聚合表和多维联机分析处理装载

  5.4. 数据仓库的操作与自动化

  数据仓库操作都是在非公开方式下定期执行装载处理。

  5.5. 产出文档

  a) 项目开发文档

  b) 在数据模型及ETL设计文档中加入相关部分的设计内容

  6. 多维数据集开发

  6.1. 数据集市定义

  a) 维度定义

  b) 度量值组定义

  c) 计算成员定义

  6.2. 透视定义

  根据用户应用需求将多个度量值组组合在一起,定义出一个多维数据集的子集。

  6.3. 产出文档

  a) OLAP 多维数据集项目开发文档

  b) OLAP 多维数据集业务说明文档