数据仓库建模建模考试大三 急!! 加weixin 18332643144

(1)保持数据仓库建模原貌不做任何修改起到备份数据仓库建模的作用。
(2)数据仓库建模采用压缩减少磁盘存储空间(例如:原始数据仓库建模 100G,可以压缩到 10G 左右)
(3)创建分区表防止后续的全表扫描

DWD 层需构建维度模型,一般采用星型模型呈现的状态一般为星座模型。
维度建模一般按照以下四個步骤:
选择业务过程 → 声明粒度 → 确认维度 → 确认事实
** (1 )选择业务过程**
在业务系统中挑选我们感兴趣的业务线,比如下单业务支付业务,退款业务物流
业务,一条业务线对应一张事实表

(2 )声明粒度 数据仓库建模粒度指数据仓库建模仓库的数据仓库建模中保存數据仓库建模的细化程度或综合程度的级别。


声明粒度意味着精确定义事实表中的一行数据仓库建模表示什么应该尽可能选择 最小粒度,以
此来应各种各样的需求
订单中,每个商品项作为下单事实表中的一行粒度为每次下单
每周的订单次数作为一行,粒度就是每周下單
每月的订单次数作为一行,粒度就是每月下单

(3 )确定维度 维度的主要作用是描述业务是事实主要表示的是“谁,何处何时”等信息。

(4 )确定事实 此处的“事实”一词指的是业务中的度量值,例如订单金额、下单次数等


在 DWD 层,以 业务过程为建模驱动基于每個具体业务过程的特点,构建 最细粒度的
明细层事实表事实表可做适当的宽表化处理。
至此数仓的维度建模已经完毕,DWS、DWT 和 ADS 和维度建模已经没有关系了DWS 和 DWT 都是建宽表,宽表都是按照主题去建主题相当于观察问题的角度。对应着维度表

统计各个主题对象的当天行为,服务于 DWT 层的主题宽表以及一些业务明细数据仓库建模,应对特殊需求(例如购买行为,统计商品复购率)

以分析的 主题对象为建模驱动,基于上层的应用和产品的指标需求构建主题对象的全量宽表。

对电商系统各大主题指标分别进行分析

}

数据仓库建模模型是抽象描述现實世界的一种工具和方法是通过抽象的实体及实体之间联系的形式,来表示现实世界中事务的相互关系的一种映射在这里,数据仓库建模模型表现的抽象的是实体和实体之间的关系通过对实体和实体之间关系的定义和描述,来表达实际的业务中具体的业务关系

数据倉库建模仓库模型是数据仓库建模模型中针对特定的数据仓库建模仓库应用系统的一种特定的数据仓库建模模型,一般的来说我们数据倉库建模仓库模型分为几下几个层次,如图 2 所示

图 2. 数据仓库建模仓库模型

通过上面的图形,我们能够很容易的看出在整个数据仓库建模倉库得建模过程中我们需要经历一般四个过程:

· 业务建模,生成业务模型主要解决业务层面的分解和程序化。

· 领域建模生成领域模型,主要是对业务模型进行抽象处理生成领域概念模型。

· 逻辑建模生成逻辑模型,主要是将领域模型的概念实体以及实体之间嘚关系进行数据仓库建模库层次的逻辑化

· 物理建模,生成物理模型主要解决,逻辑模型针对不同关系型数据仓库建模库的物理化以忣性能等一些具体的技术问题

因此,在整个数据仓库建模仓库的模型的设计和架构中既涉及到业务知识,也涉及到了具体的技术我們既需要了解丰富的行业经验,同时也需要一定的信息技术来帮助我们实现我们的数据仓库建模模型,最重要的是我们还需要一个非瑺适用的方法论,来指导我们自己针对我们的业务进行抽象处理,生成各个阶段的模型

1 为什么需要数据仓库建模仓库模型

在数据仓库建模仓库的建设中,我们一再强调需要数据仓库建模模型那么数据仓库建模模型究竟为什么这么重要呢?首先我们需要了解整个数据仓库建模仓库的建设的发展史。

数据仓库建模仓库的发展大致经历了这样的三个过程:

· 简单报表阶段:这个阶段系统的主要目标是解决一些日常的工作中业务人员需要的报表,以及生成一些简单的能够帮助领导进行决策所需要的汇总数据仓库建模这个阶段的大部分表现形式为数据仓库建模库和前端报表工具。

· 数据仓库建模集市阶段:这个阶段主要是根据某个业务部门的需要,进行一定的数据仓库建模嘚采集整理,按照业务人员的需要进行多维报表的展现,能够提供对特定业务指导的数据仓库建模并且能够提供特定的领导决策数據仓库建模。

· 数据仓库建模仓库阶段:这个阶段主要是按照一定的数据仓库建模模型,对整个企业的数据仓库建模进行采集整理,並且能够按照各个业务部门的需要提供跨部门的,完全一致的业务报表数据仓库建模能够通过数据仓库建模仓库生成对对业务具有指導性的数据仓库建模,同时为领导决策提供全面的数据仓库建模支持。

通过数据仓库建模仓库建设的发展阶段我们能够看出,数据仓庫建模仓库的建设和数据仓库建模集市的建设的重要区别就在于数据仓库建模模型的支持因此,数据仓库建模模型的建设对于我们数據仓库建模仓库的建设,有着决定性的意义

一般来说,数据仓库建模模型的建设主要能够帮助我们解决以下的一些问题:

· 进行全面的業务梳理改进业务流程。在业务模型建设的阶段能够帮助我们的企业或者是管理机关对本单位的业务进行全面的梳理。通过业务模型嘚建设我们应该能够全面了解该单位的业务架构图和整个业务的运行情况,能够将业务按照特定的规律进行分门别类和程序化同时,幫助我们进一步的改进业务的流程提高业务效率,指导我们的业务部门的生产

· 建立全方位的数据仓库建模视角,消灭信息孤岛和数據仓库建模差异通过数据仓库建模仓库的模型建设,能够为企业提供一个整体的数据仓库建模视角不再是各个部门只是关注自己的数據仓库建模,而且通过模型的建设勾勒出了部门之间内在的联系,帮助消灭各个部门之间的信息孤岛的问题更为重要的是,通过数据倉库建模模型的建设能够保证整个企业的数据仓库建模的一致性,各个部门之间数据仓库建模的差异将会得到有效解决

· 解决业务的變动和数据仓库建模仓库的灵活性。通过数据仓库建模模型的建设能够很好的分离出底层技术的实现和上层业务的展现。当上层业务发苼变化时通过数据仓库建模模型,底层的技术实现可以非常轻松的完成业务的变动从而达到整个数据仓库建模仓库系统的灵活性。

· 幫助数据仓库建模仓库系统本身的建设通过数据仓库建模仓库的模型建设,开发人员和业务人员能够很容易的达成系统建设范围的界定以及长期目标的规划,从而能够使整个项目组明确当前的任务加快整个系统建设的速度。

2 如何建设数据仓库建模仓库模型

建设数据仓庫建模模型既然是整个数据仓库建模仓库建设中一个非常重要的关键部分那么,怎么建设我们的数据仓库建模仓库模型就是我们需要解決的一个问题这里我们将要详细介绍如何创建适合自己的数据仓库建模模型。

3.1 数据仓库建模仓库数据仓库建模模型架构

数据仓库建模仓庫的数据仓库建模模型的架构和数据仓库建模仓库的整体架构是紧密关联在一起的我们首先来了解一下整个数据仓库建模仓库的数据仓庫建模模型应该包含的几个部分。从下图我们可以很清楚地看到整个数据仓库建模模型的架构分成 5 大部分,每个部分其实都有其独特的功能

图 3. 数据仓库建模仓库数据仓库建模模型架构

从上图我们可以看出,整个数据仓库建模仓库的数据仓库建模模型可以分为大概 5 大部分:

· 系统记录域(System of Record):这部分是主要的数据仓库建模仓库业务数据仓库建模存储区数据仓库建模模型在这里保证了数据仓库建模的一致性。

· 内部管理域(Housekeeping):这部分主要存储数据仓库建模仓库用于内部管理的元数据仓库建模数据仓库建模模型在这里能够帮助进行统一的元数据倉库建模的管理。

· 汇总域(Summary of Area):这部分数据仓库建模来自于系统记录域的汇总数据仓库建模模型在这里保证了分析域的主题分析的性能,滿足了部分的报表查询

· 分析域(Analysis Area):这部分数据仓库建模模型主要用于各个业务部分的具体的主题业务分析。这部分数据仓库建模模型可鉯单独存储在相应的数据仓库建模集市中

· 反馈域(Feedback Area):可选项,这部分数据仓库建模模型主要用于相应前端的反馈数据仓库建模数据仓庫建模仓库可以视业务的需要设置这一区域。

通过对整个数据仓库建模仓库模型的数据仓库建模区域的划分我们可以了解到,一个好的數据仓库建模模型不仅仅是对业务进行抽象划分,而且对实现技术也进行具体的指导它应该涵盖了从业务到实现技术的各个部分。

3.2 数據仓库建模仓库建模阶段划分

我们前面介绍了数据仓库建模仓库模型的几个层次下面我们讲一下,针对这几个层次的不同阶段的数据仓庫建模建模的工作的主要内容:

图 4. 数据仓库建模仓库建模阶段划分

从上图我们可以清楚地看出数据仓库建模仓库的数据仓库建模建模大致分为四个阶段:

1. 业务建模,这部分建模工作主要包含以下几个部分:

· 划分整个单位的业务,一般按照业务部门的划分进行各个部汾之间业务工作的界定,理清各业务部门之间的关系

· 深入了解各个业务部门的内具体业务流程并将其程序化。

· 提出修改和改进业务蔀门工作流程的方法并程序化

· 数据仓库建模建模的范围界定,整个数据仓库建模仓库项目的目标和阶段划分

2. 领域概念建模,这部分嘚建模工作主要包含以下几个部分:

· 抽取关键业务概念,并将之抽象化

· 将业务概念分组,按照业务主线聚合类似的分组概念

· 細化分组概念,理清分组概念内的业务流程并抽象化

· 理清分组概念之间的关联,形成完整的领域概念模型

3. 逻辑建模,这部分的建模笁作主要包含以下几个部分:

· 业务概念实体化,并考虑其具体的属性

· 事件实体化并考虑其属性内容

· 说明实体化,并考虑其属性內容

4. 物理建模这部分得建模工作,主要包含以下几个部分:

· 针对特定物理化平台做出相应的技术调整

· 针对模型的性能考虑,对特萣平台作出相应的调整· 针对管理的需要结合特定的平台,做出相应的调整· 生成最后的执行脚本并完善之。

从我们上面对数据仓库建模仓库的数据仓库建模建模阶段的各个阶段的划分我们能够了解到整个数据仓库建模仓库建模的主要工作和工作量,希望能够对我们茬实际的项目建设能够有所帮助

3.4 数据仓库建模仓库建模方法

大千世界,表面看五彩缤纷实质上,万物都遵循其自有的法则数据仓库建模仓库的建模方法同样也有很多种,每一种建模方法其实代表了哲学上的一个观点代表了一种归纳,概括世界的一种方法目前业界較为流行的数据仓库建模仓库的建模方法非常多,这里主要介绍范式建模法维度建模法,实体建模法等几种方法每种方法其实从本质仩讲就是从不同的角度看我们业务中的问题,不管从技术层面还是业务层面其实代表的是哲学上的一种世界观。我们下面给大家详细介紹一下这些建模方法

范式建模法其实是我们在构建数据仓库建模模型常用的一个方法,该方法的主要由 Inmon 所提倡主要解决关系型数据仓庫建模库得数据仓库建模存储,利用的一种技术层面上的方法目前,我们在关系型数据仓库建模库中的建模方法大部分采用的是三范式建模法。

范式是数据仓库建模库逻辑模型设计的基本理论一个关系模型可以从第一范式到第五范式进行无损分解,这个过程也可称为規范化在数据仓库建模仓库的模型设计中目前一般采用第三范式,它有着严格的数学定义从其表达的含义来看,一个符合第三范式的關系必须具有以下三个条件 :

· 每个属性值唯一不具有多义性 ;

· 每个非主属性必须完全依赖于整个主键,而非主键的一部分 ;· 每个非主属性不能依赖于其他关系中的属性因为这样的话,这种属性应该归到其他关系中去

由于范式是基于整个关系型数据仓库建模库的理论基礎之上发展而来的,因此本人在这里不多做介绍,有兴趣的读者可以通过阅读相应的材料来获得这方面的知识

根据 Inmon 的观点,数据仓库建模仓库模型得建设方法和业务系统的企业数据仓库建模模型类似在业务系统中,企业数据仓库建模模型决定了数据仓库建模的来源洏企业数据仓库建模模型也分为两个层次,即主题域模型和逻辑模型同样,主题域模型可以看成是业务模型的概念模型而逻辑模型则昰域模型在关系型数据仓库建模库上的实例。

从业务数据仓库建模模型转向数据仓库建模仓库模型时同样也需要有数据仓库建模仓库的域模型,即概念模型同时也存在域模型的逻辑模型。这里业务模型中的数据仓库建模模型和数据仓库建模仓库的模型稍微有一些不同。主要区别在于:

· 数据仓库建模仓库的域模型应该包含企业数据仓库建模模型的域模型之间的关系以及各主题域定义。数据仓库建模倉库的域模型的概念应该比业务系统的主题域模型范围更加广

· 在数据仓库建模仓库的逻辑模型需要从业务系统的数据仓库建模模型中嘚逻辑模型中抽象实体,实体的属性实体的子类,以及实体的关系等

以笔者的观点来看,Inmon 的范式建模法的最大优点就是从关系型数据倉库建模库的角度出发结合了业务系统的数据仓库建模模型,能够比较方便的实现数据仓库建模仓库的建模但其缺点也是明显的,由於建模方法限定在关系型数据仓库建模库之上在某些时候反而限制了整个数据仓库建模仓库模型的灵活性,性能等特别是考虑到数据倉库建模仓库的底层数据仓库建模向数据仓库建模集市的数据仓库建模进行汇总时,需要进行一定的变通才能满足相应的需求因此,笔鍺建议读者们在实际的使用中参考使用这一建模方式。

维度建模法Kimball 最先提出这一概念。其最简单的描述就是按照事实表,维表来构建数据仓库建模仓库数据仓库建模集市。这种方法的最被人广泛知晓的名字就是星型模式(Star-schema)

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

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

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

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

因此以笔者的观点看维度建模的领域主要适用与数据仓库建模集市层,它的最大的作用其实是为了解决数据仓库建模仓库建模中的性能问题维度建模很難能够提供一个完整地描述真实业务实体之间的复杂关系的抽象方法。

实体建模法并不是数据仓库建模仓库建模中常见的一个方法它来源于哲学的一个流派。从哲学的意义上说客观世界应该是可以细分的,客观世界应该可以分成由一个个实体以及实体与实体之间的关系组成。那么我们在数据仓库建模仓库的建模过程中完全可以引入这个抽象的方法将整个业务也可以划分成一个个的实体,而每个实体の间的关系以及针对这些关系的说明就是我们数据仓库建模建模需要做的工作。

虽然实体法粗看起来好像有一些抽象其实理解起来很嫆易。即我们可以将任何一个业务过程划分成 3 个部分实体,事件和说明如下图所示:

上图表述的是一个抽象的含义,如果我们描述一個简单的事实:“小明开车去学校上学”以这个业务事实为例,我们可以把“小明”“学校”看成是一个实体,“上学”描述的是一個业务过程我们在这里可以抽象为一个具体“事件”,而“开车去”则可以看成是事件“上学”的一个说明

从上面的举例我们可以了解,我们使用的抽象归纳方法其实很简单任何业务可以看成 3 个部分:

· 实体,主要指领域模型中特定的概念主体指发生业务关系的对潒。

· 事件主要指概念主体之间完成一次业务流程的过程,特指特定的业务过程

· 说明,主要是针对实体和事件的特殊说明

由于实體建模法,能够很轻松的实现业务模型的划分因此,在业务建模阶段和领域概念建模阶段实体建模法有着广泛的应用。从笔者的经验來看再没有现成的行业模型的情况下,我们可以采用实体建模的方法和客户一起理清整个业务的模型,进行领域概念模型的划分抽潒出具体的业务概念,结合客户的使用特点完全可以创建出一个符合自己需要的数据仓库建模仓库模型来。

但是实体建模法也有着自巳先天的缺陷,由于实体说明法只是一种抽象客观世界的方法因此,注定了该建模方法只能局限在业务建模和领域概念建模阶段因此,到了逻辑建模阶段和物理建模阶段则是范式建模和维度建模发挥长处的阶段。

因此笔者建议读者在创建自己的数据仓库建模仓库模型的时候,可以参考使用上述的三种数据仓库建模仓库得建模方法在各个不同阶段采用不同的方法,从而能够保证整个数据仓库建模仓庫建模的质量


}

Kimball建模方法的精髓就是简单、使鼡,建模这四步骤是它的核心部分用术语表达是:始终一致的四步设计维度模型,分别如下:

业务过程是由组织完成的一系列微观活动例如:完成下单、完成支付、发放代金券、上线产品等等。充分理解它们有助于辨别组织中的不同业务过程,它一般具有这些特性:

  • 鼡行为动词表示:它们通常表示业务过程的活动比如下单、支付、退款等
  • 一般由某个操作系统支持:比如下单由tts支持、产品上架由产品Φ心支持等
  • 生成度量:度量一般由操作过程直接生成,比如用户支付金额由用户支付过程直接产生。分析人员一般工作事件分析度量结果一句话总结:一系列过程产生一系列事实表

数据仓库建模仓库人员不仅要详细了解业务过程,还要充分理解用户需求(特别是他们的KPI)因为用户一般很难回答:“你对哪些业务过程感兴趣”,而是使用BI分析来自业务过程的性能度量

我们即需要理解上面的什么是业务过程也需要理解如下的什么不是业务过程,这样才能取舍比如不同部门的功能划分就不是业务过程,我们应该将注意力放在业务过程而鈈是不同的部门这样才能避免重复的获取数据仓库建模。

粒度是说明事实表的每一行表示什么比如:用户下单的内容放倒订单事实表嘚每一行中。这里的关键是粒度的描述不能讲维度列出来,而代替粒度声明这一步特别容易被忽略,粒度声明需要达成共识否则极囿可能到下面三四步之后返工重来

如果粒度合适,维度很容易确定因为维度是用来描述:“谁、何时何地、为何、如何”。比如订单常鼡的维度是:日期、产品、景区

用“业务的度量是什么”来思考事实属于不同粒度的事实要放在不同的事实表中。

有人可能疑惑粒度和倳实的区别是啥粒度说明了事实的每一行代表什么意思,而事实是里面包含哪些列比如成交金额、退款金额、购买份数等等

强烈抵制僅仅考虑数据仓库建模来源做为建模的方案,比如订单类数据仓库建模是从tts获取的,那么就将这些数据仓库建模放在一起这样虽然比叻解业务过程方便很多,但数据仓库建模不能代替用户的输入这样做基本注定会失败!

需要综合考虑业务用户需求和数据仓库建模来源嘚实际情况,并与上面四步联系起来如下图所示的建模方案:

}

我要回帖

更多关于 数据仓库建模 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信