实例剖析4种数据仓库的建模方法_第1页
实例剖析4种数据仓库的建模方法_第2页
实例剖析4种数据仓库的建模方法_第3页
实例剖析4种数据仓库的建模方法_第4页
实例剖析4种数据仓库的建模方法_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实例剖析4种数据仓库的建模方法

数据仓库,这个几乎是所有大数据开发面试必问的话题.比如数据仓库的分

层架构?为什么需要数据仓库建模?数据仓库建模的原则是什么?结合'业务

举例说明数据仓库建模的步骤,以及注意事项?什么是缓慢变化维?维度该

如何选择建设,原则是什么,主犍如何设计等等?

一众问题搞得小伙伴们死去活来,甚至工作好几年的小伙伴都没搞清楚过,

尤其是大厂特别爱问这些问题。有些小伙伴甚至觉得这些都是形而上学,不

懂这些我不一样搞了很多年开发?即使感兴趣的买了一本厚厚的数据仓库工

具书也看不懂!那么实际数据仓库建模到底是什么,开发人员该掌握哪些?

数据仓库前世今生

来一起看个官方定义:数据仓库,英文名称为Datawarehouse,可简写为

DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类

型数据支持的战略集合。它出于分析性报告和决策支持H的而创建。为需要

业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控

制。

数据仓库之父BillInmon在1991年出版的BuildingtheDataWarehouse

一书中首次提出了被广为认可的数据仓库定义。Inmon将数据仓库描述为

个面向主题的、集成的、随时间变化的、非易失的数据集合,用丁支持管

理者的决策过程。

简单点来说,现实情况是一个企业有很多数据源,比如行的业务数据存放在

Mysql,PG库,有的存放在Oracle,有的日志存放在Flp,Nginx服务器上

等,有的是外部采集的爬虫数据等等。那么对于企业来说沉淀了这么多数

据,如何将这些数据放到一起进行数据融合,数据分析,给企业挖掘数据价

值呢?这些不同数据源,不同数据存储格式,不同的数据更新周期,如果让

你把企业这些数据融合分析,你怎么办?

首先,你是不是要把这些不同数据按照统一的格式,一定的规范存储到一

起,然后在通过特定的工具做数据计算分析?那么对于企业来说,把企业各

种数据源的数据放到一起存储和计算的地方就叫数据仓库(约定俗称的叫

法),所以本质上数据仓库上融合各个数据源,存储加工数据的地方,早期

大数据没有发展起来的时候,企业数据仓库的载体一般是Oracle,那时候

主要给企业做BI报表(BusinessIntelligence商业智能)。

后来随着企业数字化,互联网的发展,企业收集到数据越来越多,发现原有

的技术框架已经满足不了业务存储和分析的需求了。了是乎就有了现在

Hadoop生态为主的数仓仓库。

数据仓库建模的目的?

为什么要进行数据仓库建模?大数据的数仓建模是通过建模的方法更好的组

织、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点。

一般主要从下面四点考虑:

•访问性能:能够快速杳询所需的数据,减少数据I/O。

•数据成本:减少不必要的数据冗余,实现计算结果数据复用,降低大数

据系统中的存储成不和计算成本。

•使用效率:改善用户应用体验,提高使用数据的效率。

•数据质量:改善数据统计口径的不一致性,减少数据计算错误的可能

性,提供高质量的、一致的数据访问平台。

常见的数据建模方法

数据仓库本质是从数据库衍生出来的,所以数据仓库的建模也是不断衍生发

展的。从最早的借鉴数据库的范式建模,到逐渐提出维度建模,DataVault

模型,Anchor模型等等,越往后建模的要求越高,越需满足3NF,4NF

等。但是对于数据仓库来说,目前主流还是维度建模,会夹杂着范式建模。

数据仓库建模方法论可分为:范式建模、维度建模、DataVault模型、

Anchor模型。

但是逐渐随着企业数据的高增长,复杂化,数仓全部使用ER模型建模显得

越来越不合时宜。为什么呢,因为其按部就班的步骤,三范式等,不适合现

代化复杂,多变的业务组织。

E-R模型建模的步骤(满足3NF)如下:

•抽象出主体(教师,课程)

•梳理主体之间的关系(一个老师可以教多门课,一门课可以被多个老

师教)

•梳理主体的属性(教师:教师名称,性别,学历等)

•画出E-R关系图

2、维度建模

维度建模,是数据仓库大师RalphKimball提出的,是数据仓库工程领域最

流行的数仓建模经典。

维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服

务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模

复杂查询的响应性能。维度建模是面向分析的,为了提高查询性能可以增加

数据冗余,反规范化的设计技术。

RalphKimball提出对数据仓库维度建模,并且将数据仓库中的表划分为

事实表、维度表两种类型。

1)事实表

在ER模型中抽象出了有实体、关系、属性三种类别,在现实世界中,每一

个操作型事件,基本都是发生在实体之间的,伴随着这种操作事件的发生,

会产生可度量的值,而这个过程就产生了一个事实表,存储了每一个可度量

的事件。

以电商行业为例:电商场景:一次购买事件,涉及主体包括客户、商品、商

家,产生的可度量值包括商品数量、金额、件数等。

fact订中-叨乡田

PK订单ID

IL7K1两

2ID

TTK用

1ID

nK3时

ID

TK4

H羿

状态

入贝勾牛勿车口寸I'H]

卜一单时间

事实表根据粒度的角色划分不同,可分为事务事实表、周期快照事实表、累

积快照事实表。注意:这里需要值得注意的是,在事实表的设计时,一定要

注意一个事实表只能有一个粒度,不能将不同粒度的事实建立在同一张事实

表中。

•事务事实表,用于承载事务数据•,通常粒度比较低,它是面向事务的,

其粒度是每一行对应一个事务,它是最细粒度的事实表,例如产品交易

事务事实、ATM交易事务事实。

•周期快照事实表,按照一定的时间周期间隔(每天,每月)来捕捉业务活

动的执行情况,一旦装入事实表就不会再去更新,它是事务事实表的补

充。用来记录有规律的、固定时间间隔的业务累计数据,通常粒度比较

高,例如账户月平均余额事实表。

•累积快照事实表,月来记录具有时间跨度的业务处理过程的整个过程的

信息,每个生命周期一行•,通常这类事实表比较。见。

2)维度表

维度,顾名思义,业务过程的发生或分析角度。比如从颜色、尺寸的角度来

比较手机的外观,从cpu、内存等较比比较手机性能建。维度表一般为单一

主键,在ER模型中,文体为客观存在的事物,会带有自己的描述性属

性,属性一般为文本性、描述性的,这些描述被称为维度。

比如商品,单一主键:商品ID,属性包括产地、颜色、材质、尺寸、单价

等,但并非属性一定是文本,比如单价、尺寸,均为数值型描述性的,H

常主要的维度抽象包括:时间维度表、地理区域维度表等。

案例:某电商平台,经常需要对订单进行分析,以某宝的购物订单为例,以

维度建模的力式设计该模型

涉及到事实表为订单表、订单明细表,维度包括商品维度、用户维度、商家

维度、区域维度、时间维度。

•商品维度:商品ID、商品名称、商品种类、单价、产地等。

•用户维度:用户ID、姓名、性别、年龄、常住地、职业、学历等。

•时间维度:R期ID、R期、周几、上/中/卜.旬、是否周末、是否假期等

图片。

维度分为:

①退化维度(DegenerateDimension)

在维度类型中,有一种重要的维度称作为退化维度,亦维度退化一说。这种

维度指的是直接把一些筒单的维度放在事实表中。退化维度是维度建模领域

中的一个非常重要的概念,它对理解维度建模有着非常重要的作用,退化维

度一般在分析中可以用来做分组使用。

②缓慢变化维(SlowlyChangingDimensions)

维度的属性并不是始终不变的,它会随若时间的流逝发生缓慢的变化,这种

随时间发生变化的维度我们一般称之为缓慢变化维(SCD)。比如员工表中

的部门维度,员工的所在部门有可能两年后调整一次。

3)维度建模模型的分类

维度建模按数据组织类型划分可分为星型模型、雪花模型、星座模型。

①星型模型

星型模型主要是维表和事实表,以事实表为中心,所有维度直接关联在事实

表上,呈星型分布。

记账事实赚单日期维度

客户维度BillDateKey(FK)

CustomerKey(PK)CustomerKey(FK)服务列表项维度

CustomerID(NK)ServiceLineKey(FK)ServiceLineKey(PK)

CustomerNameSalesOrganizationKey(FK)ServiceLineNumber(NK)

CustomerAddressRatePlanKey(FK)ServiceLineAreaCode

CustomerCityBillNumber(DD)\ServiceLineActivationDate

CustomerState/CallCount\

CustomerZipTotalMinuteCount比率计划维度

OrigAuthorizationCreditScoieNight-WeekendMinuteCount\RatePlanKey(PK)

RoamMinuteCountRalePlanCode

错售组织维度1MessageCountRatePlanName

SalesOrganizationKey(PK)DataMBUsedRatePlanAbbreviation

SalesOrganizationNumberMonthServiceChargeRatePlanTypeCode

SalesOrganizationNameMessageChargeRatePlanTypeDescription

SalesChannelIDDataChargePlanMinutesAllowed

SalesChannelNameRoamingChargePlanMessagesAllowed

TaxesPlanDataMBAIlpwed,_

RegulatoryChargesNight-WeehM漏茶褊迎

②雪花模型

雪花模型,在星型模型的基础上,维度表上又关联了其他维度表。这种模型

维护成本高,性能方面也较差,所以一般不建议使用。尤其是基于hadoop

体系构建数仓,减少join就是减少shuffle,性能差距会很大。

尖叫提示:所以由上可以看出:

•星型模型和雪花模理主要区别就是对维度表的拆分。

•对于雪花模型,维度表的涉及更加规范,一般符合3NF,有效降低数据

冗余,维度表之间K会相互关联。

•星型模型,一般采月降维的操作,反规范化,不符合3NF,利用冗余来

避免模型过于复杂,提高易用性和分析效率,效密相对较高。

③星座模型

星座模型,是对星型模型的扩展延伸,多张事实表共享维度表。数仓模型建

设后期,大部分维度建模都是星座模型。

4)维度建模步躲

维度建模步骤:选择业务过程,声明粒度->确定维度,确定事实。旨在聿点

解决数据粒度、维度设计和事实表设计问题。

F---------------

选择业务过程声明粒度标识维度标识事实

组织完成的微如何描述事实业务人员如何过程的度量是

观活喇:如检表中每个行的描述来自业务什么?时间、

索、竞价、展内容:如客户过程度量事件

现、点击单次检索的数据?

声明粒度,为业务最小活动单元或不同维度组合。以共同粒度从多个组织业

务过程合并度量的事实表称为合并事实表,需要注意的是,来自多个业务过

程的事实合并到合并事实表时,它们必须具有同样等级的粒度。

3、DataVault模型

DataVault是DanLinstedt发起创建的一种模型方法论,DataVault是在

ER模型的基础上衍生而来,模型设计的初衷是有效的组织基础数据层,使

之易扩展、灵活的应对业务的变化,同时强调历史性、可追溯性和原子性,

不要求对数据进行过度的一致性处理。同时设计的出发点也是为了实现数据

的整合,并非为数据决策分析直接使用。

DataVault模型是一种中心辐射式模型,其设计重点围绕着业务链的集成模

式。这些业务键是存储在多个系统中的、针对各种信息的键,用丁定位和唯

一标识记录或数据。

DataVault模型包含三种基本结构:

•中心表-Hub:唯一业务键的列表,唯一标识企业实际业务,企业的业

务主体集合。

•链接表-Link:表示中心表之间的关系,通过链接表串联整个企业的业

务关联关系。

•卫星表-Satellite:历史的描述性数据,数据仓库中数据的真正载体。

1)中心表・Hub

只包含业务主键信息以及数据装载的描述,不包含非键值以外的业

务数据属性本身;比如中心表商品,在DataVault下的涉及:

|Hub_商品|

PK〔Hub商品ID

|商品ID

loadtime

商品属性以及描述信息,都属丁卫星表的范畴.空涤生..据

2)链接表・Link

链接表用来描述中心表间的关联关系,亦不包含业务键值以及数据

装载描述以外的任何非键值数据,比如学生选课链接表,其设计:

Link授课

PKLink授课ID

FK1hub教师ID

FK2hub课程ID

loadtime

浇生大缴据

与选课相关的课时数等描述信息,都属于卫星表的范畴

3)卫星表・Satellite

数仓中数据的主要载体,包括对链接表、中心表的数

据描述、数值度量等信息,中心表商品、订单明细的卫星表

分别如下:

sal_商品sat_订单明细

PKsat商品IDPKset订单明细ID

商品idlink_订单明细ID

商品名称商品及量

商品单价

商品减免

000°0°<6涤生

4)DataVault模型建模流程

•梳理所有主要实体

•将有入边的实体定义为中心表

•将没有人边切仅有一个出边的表定义为中心表

•源苦衷没有入边且有两条或以上出边的表定义为连接表

•将外键关系定义为链接表

Link_分班sat_班级

Hub.班级

PKLink_分班【DPK澳L班级ID

PKhubj»级ID

FKIhub学生IDFK1hub班级ID

FK2huh班级ID班级ID年级ID

Hub学生年级介绍

PKhub学生ID而级名称

Link.选择选修

学生ID••♦

PKLink诜ig】DPKWjjt修LD

IK:huh学生IDFKlLink选课ID

EK2hub一课程ID学分

•••

saj教师

PK|sat教丽?

f帅

Hub.UtWhub_tII)

PKhubftWID性

Link授课学

教师ID专

PKLink.授课U)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论