数据仓库系列-为什么要维度建模

凡是建设数据仓库,一定会提到维度建模方法。这一方法是Kimball最先提出的,其最简单的描述就是,按照事实表、维度表来构建数据仓库、数据集市。在维度建模方法体系中,维度是描述事实的角度,如日期、商品、地址等,事实是要度量的指标,如用户数、销售额等。按照一般书籍的介绍,维度建模还会分为星型模型、雪花模型等,各有优缺点,但很少直接回答一个问题,也就是数据仓库为什么要采用维度建模

这个问题的基本判断在于,数据是否要开放给业务人员使用?采用维度建模构建出来的数据库结构表更加符合普通人的直觉、易于被普通人所理解,从而有利于数据的推广使用。下面以超市收银小票为例说明常规的三范式模型和维度模型。

三范式的数据模型示意如下:

维度模型示意如下:

以上两个模型的最小数据粒度都是小票项目,可以容易看出来,维度模型是将关系模型的层次结构展开平铺而成。从上面的这个范例可以引出采用维度建模方法的基本理由,就是:

数据结构简单。在决定是否要采用维度建模之前,必须回答一个问题,“数据模型是否要开放给业务人员直接使用”,如果答案肯定,则应该采用维度建模的方法。维度模型这个概念有点学术化,但究其本质而言,是将层次化的数据结构展开为单一层次,有点类似于将一个业务过程的数据汇总到一个excel的sheet页中。

不过维度建模的代价也很明显,就是其灵活性较差,数据冗余较多,所以,在很多书中提出了一个折中的办法,即“雪花模型”,同时还煞有介事的对比了雪花模型与星型模型(即上面的示例)的优缺点,让很多初学者心中飘来了一个挥之不去的疑问,“既然雪花模型既有关系模型的优点,还有维度模型的优点,为什么还要存在星型模型呢”?。窃以为,这完全是多此一举的做法,维度建模追求的是使用简单,多增加一级关联,增加的使用复杂度就会增加不止一点,会给多数不懂技术的业务人员带来极大的障碍,是一种舍本逐末的做法

基于这种考虑,在建设数据仓库的过程中,明细层和集市层分别采用不同的建模方法,也就是:

明细层采用传统的三范式关系模型。这一层次的数据模型要将业务过程描述清楚,将源数据(即业务系统)中隐含的、有歧义的概念进行清晰化,如活跃用户、VIP用户等。该层次的数据模型追求的目标是灵活地表达业务过程,要保证数据一致性、唯一性、正确性,以尽量少的代价与源数据保持数据同步,同时该层次的数据模型不建议开给不懂技术的业务人员直接使用,因此,采用关系型的三范式模型是最佳的选择。

集市层采用维度模型。集市层是按照业务主题、分主题构建出来的、面向特定部门或人员的数据集合,该层次的数据模型会开放给业务人员使用,进行数据挖掘及业务分析。由于业务员多数不懂数据库技术,缺少将业务需求转换为关系型数据结构的逻辑思维,更写不出复杂的SQL语句,因此,越简单的数据模型,越能被他们所接受,因此,这个层次所构建出来的数据模型,要按照业务过程进行组织,每个事实表代表一个独立的业务过程,事实表之间不存在直接的依赖关系,这样业务人员可以很容易地将分析需求对应到事实表上,利用工具或手工写出简单的SQL,将统计数据提取出来进行分析。

以上,就是数据仓库采用维度建模和关系建模的基本判断。

时间: 2024-08-12 20:28:40

数据仓库系列-为什么要维度建模的相关文章

数据仓库系列 - 缓慢渐变维度

在从 OLTP 业务数据库向 DW 数据仓库抽取数据的过程中,特别是第一次导入之后的每一次增量抽取往往会遇到这样的问题:业务数据库中的一些数据发生了更改,到底要不要将这些变化也反映到数据仓库中?在数据仓库中,哪些数据应该随之变化,哪些可以不用变化?考虑到这些变化,在数据仓库中的维度表又应该如何设计以满足这些需要. 很显然在业务数据库中数据的变化是非常自然和正常的,比如顾客的联系方式,手机号码等信息可能随着顾客的所在地的更改发生变化,比如商品的价格在不同时期有上涨和下降的变化.那么在业务数据库中,

数据仓库系列之维度建模

上一篇文章我已经简单介绍了数据分析中为啥要建立数据仓库,从本周开始我们开始一起学习数据仓库.学习数据仓库,你一定会了解到两个人:数据仓库之父比尔·恩门(Bill Inmon)和数据仓库权威专家Ralph Kimball.Inmon和Kimball两种DW架构支撑了数据仓库以及商业智能近二十年的发展,其中Inmon主张自上而下的架构,不同的OLTP数据集中到面向主题.集成的.不易失的和时间变化的结构中,用于以后的分析;且数据可以通过下钻到最细层,或者上卷到汇总层;数据集市应该是数据仓库的子集;每个

为什么要维度建模

凡是建设数据仓库,一定会提到维度建模方法.这一方法是Kimball最先提出的,其最简单的描述就是,按照事实表.维度表来构建数据仓库.数据集市.在维度建模方法体系中,维度是描述事实的角度,如日期.商品.地址等,事实是要度量的指标,如用户数.销售额等.按照一般书籍的介绍,维度建模还会分为星型模型.雪花模型等,各有优缺点,但很少直接回答一个问题,也就是数据仓库为什么要采用维度建模? 这个问题的基本判断在于,数据是否要开放给业务人员使用?采用维度建模构建出来的数据库结构表更加符合普通人的直觉.易于被普通

数据仓库专题(2)-Kimball维度建模四步骤

一.前言 四步过程维度建模由Kimball提出,可以做为业务梳理.数据梳理后进行多维数据模型设计的指导流程,但是不能作为数据仓库系统建设的指导流程.本文就相关流程及核心问题进行解读. 二.数据仓库建设流程 以下流程是根据业务系统.组织结构.团队结构现状设定的数据仓库系统建设流程,适合系统结构复杂,团队协作复杂,人员结构复杂的情况,并且数据仓库建设团队和业务系统建设团队不同的情况.具体流程如下图所示: 图1 数据仓库系统建设流程 三.四步维度建模 Kimball四步建模流程适合上述数据仓库系统建设

搭建数据仓库第06篇:逻辑建模–3–维度建模核心之总线架构

目录 前言 维度建模 星型模型 小结 前言 维度建模是Kimball提出来的经典的数据仓库建模思想.维度建模提倡针对某一主题,通过建设维度和事实来快速建设数据仓库.与维度建模相对应的自然是Inmon的范式建模.在上篇也提到范式建模非常适合应用于中间明细层的建设,那么在DW/DM层为什么选择使用维度建模呢?这是第一个问题.维度建模的核心是总线架构,一致性维度,一致性事实.本篇的主题是总线架构,那为什么说维度模型是总线式架构?本篇通过维度建模和星型模型的讲解来分别解释这两个问题. 维度建模 维度模型

数据仓库专题(22):总线架构和维度建模优势-杂项

一.总线架构 维度建模的数据仓库中,有一个概念叫Bus Architecture,中文一般翻译为“总线架构”.总线架构是Kimball的多维体系结构(MD)中的三个关键性概念之一,另两个是一致性维度(Conformed Dimension)和一致性事实(Conformed Fact). 在多维体系结构(MD) 的数据仓库架构中,主导思想是分步建立数据仓库,由数据集市组合成企业的数据仓库.但是,在建立第一个数据集市前,架构师首先要做的就是设计出在整个企业 内具有统一解释的标准化的维度和事实,即一致

维度建模的基本概念及过程

摘要:本文首先介绍维度模型中的维度表和事实表这2个基本构成要素的基础知识:其次,介绍设计维度模型的4个基本步骤:再次,围绕某银行为实现业务价值链数据集成的需要,介绍多维体系结构中的3个关键性概念:数据仓库总线结构.一致性维度.一致性事实. 关键词:维度表;事实表;维度模型设计过程;数据仓库总线结构;一致性维度;一致性事实. 0 引言 与流行的说法不同,Ralph Kimball本人并没有定义“维度”和“事实”这样的术语.术语“维度”与“事实”,最初是20世纪60年代在一个由General Mil

数据仓库建设中的数据建模方法(转)

简介: 本文的主要内容不是介绍现有的比较流行的主要行业的一些数据模型,而是将笔者在数据仓库建设项目中的一些经验,在这里分享给大家.希望帮助大家在数据仓库项目建设中总结出一套能够合乎目前业界规范的,满足大部分行业数据仓库建设标准的一种方法. 所谓水无定势,兵无常法.不同的行业,有不同行业的特点,因此,从业务角度看,其相应的数据模型是千差万别的.目前业界较为主流的是数据仓库厂商主要是 IBM 和 NCR,这两家公司的除了能够提供较为强大的数据仓库平台之外,也有各自的针对某个行业的数据模型. 例如,在

浅谈数据仓库建设中的数据建模方法

所谓水无定势,兵无常法.不同的行业,有不同行业的特点,因此,从业务角度看,其相应的数据模型是千差万别的.目前业界较为主流的是数据仓库厂商主要是 IBM 和 NCR,这两家公司的除了能够提供较为强大的数据仓库平台之外,也有各自的针对某个行业的数据模型.       例如,在银行业,IBM 有自己的 BDWM(Banking data warehouse model),而 NCR 有自己的 FS-LDM 模型.在电信业,IBM 有 TDWM(Telecom Data warehouse model)