数据仓库维度建模知识讲解
- 格式:ppt
- 大小:5.83 MB
- 文档页数:22
1、数据仓库基本概念1.1、主题(Subject)主题就是指我们所要分析的具体方面。
例如:某年某月某地区某机型某款App的安装情况。
主题有两个元素:一是各个分析角度(维度),如时间位置;二是要分析的具体量度,该量度一般通过数值体现,如App安装量。
1.2、维(Dimension)维是用于从不同角度描述事物特征的,一般维都会有多层(Level:级别),每个Level 都会包含一些共有的或特有的属性(Attribute),可以用下图来展示下维的结构和组成:以时间维为例,时间维一般会包含年、季、月、日这几个Level,每个Level一般都会有ID、NAME、DESCRIPTION这几个公共属性,这几个公共属性不仅适用于时间维,也同样表现在其它各种不同类型的维。
1.3、分层(Hierarchy)OLAP需要基于有层级的自上而下的钻取,或者自下而上地聚合。
所以我们一般会在维的基础上再次进行分层,维、分层、层级的关系如下图:每一级之间可能是附属关系(如市属于省、省属于国家),也可能是顺序关系(如天周年),如下图所示:1.4、量度量度就是我们要分析的具体的技术指标,诸如年销售额之类。
它们一般为数值型数据。
我们或者将该数据汇总,或者将该数据取次数、独立次数或取最大最小值等,这样的数据称为量度。
1.5、粒度数据的细分层度,例如按天分按小时分。
1.6、事实表和维表事实表是用来记录分析的内容的全量信息的,包含了每个事件的具体要素,以及具体发生的事情。
事实表中存储数字型ID以及度量信息。
维表则是对事实表中事件的要素的描述信息,就是你观察该事务的角度,是从哪个角度去观察这个内容的。
事实表和维表通过ID相关联,如图所示:1.7、星形/雪花形/事实星座这三者就是数据仓库多维数据模型建模的模式上图所示就是一个标准的星形模型。
雪花形就是在维度下面又细分出维度,这样切分是为了使表结构更加规范化。
雪花模式可以减少冗余,但是减少的那点空间和事实表的容量相比实在是微不足道,而且多个表联结操作会降低性能,所以一般不用雪花模式设计数据仓库。
大数据分析基础——维度模型大数据分析基础——维度模型1基本概念维度模型的概念出自于数据仓库领域,是数据仓库建设中的一种数据建模方法。
维度模型主要由事实表和维度表这两个基本要素构成。
1.1维度维度是度量的环境,用来反映业务的一类属性,这类属性的集合构成一个维度,也可以称为实体对象。
维度属于一个数据域,如地理维度(其中包括国家、地区、省以及城市等级别的内容)、时间维度(其中包括年、季、月、周、日等级别的内容)。
维度是维度建模的基础和灵魂。
在维度建模中,将度量称为“事实” ,将环境描述为“维度”,维度是用于分析事实所需要的多样环境。
例如,在分析交易过程时,可以通过买家、卖家、商品和时间等维度描述交易发生的环境。
维度所包含的表示维度的列,称为维度属性。
维度属性是查询约束条件、分组和报表标签生成的基本来源,是数据易用性的关键。
1.2事实表事实表是维度模型的基本表,每个数据仓库都包含一个或者多个事实数据表。
事实数据表可能包含业务销售数据,如销售商品所产生的数据,与软件中实际表概念一样。
事实表作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计,通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和与业务过程有关的度量。
事实表中一条记录所表达的业务细节程度被称为粒度。
通常粒度可以通过两种方式来表述:一种是维度属性组合所表示的细节程度:一种是所表示的具体业务含义。
作为度量业务过程的事实,一般为整型或浮点型的十进制数值,有可加性、半可加性和不可加性三种类型。
相对维度来说,通常事实表要细长,行的增加速度也比维度表快的多,维度表正好相反。
事实表有三种类型 :1.事务事实表:事务事实表用来描述业务过程,眼踪空间或时间上某点的度量事件,保存的是最原子的数据,也称为“原子事实表\周期快照事实表”。
2.周期快照事实表:周期快照事实表以具有规律性的、可预见的时间间隔记录事实,时间间隔如每天、每月、每年等。
3.累积快照事实表:累积快照事实表用来表述过程开始和结束之间的关键步骤事件,覆盖过程的整个生命周期,通常具有多个日期字段来记录关键时间点,当过程随着生命周期不断变化时,记录也会随着过程的变化而被修改。
数据仓库建模方法论数据仓库建模是指将数据仓库中的数据按照某种标准和规范进行组织和管理的过程。
数据仓库建模方法论包括了多种方法和技术,用于帮助用户理解和分析数据仓库中的数据,从而支持决策制定和业务分析。
一、维度建模方法维度建模方法是数据仓库建模的核心方法之一,它以维度为核心,将数据按照维度进行组织和管理,从而提供给用户灵活和高效的数据查询和分析能力。
1.1 星型模型星型模型是最常见和简单的维度建模方法,它将数据仓库中的事实表和多个维度表通过共享主键的方式进行关联。
事实表包含了衡量业务过程中的事件或指标,而维度表包含了用于描述和过滤事实记录的属性。
星型模型的结构清晰,易于理解和使用,适用于绝大部分的数据仓库场景。
1.2 雪花型模型雪花型模型是在星型模型的基础上进行扩展和优化的一种模型,它通过拆分维度表中的属性,将其拆分为多个维度表和子维度表,从而使得数据仓库更加灵活和高效。
雪花型模型适用于维度表中的属性比较复杂和层次结构比较多的情况。
1.3 天际线模型天际线模型是一种比较先进和复杂的维度建模方法,它通过将事实表和维度表按照一定的规则进行分组和划分,从而实现多个星型模型之间的关联。
天际线模型适用于数据仓库中包含多个相互关联的业务过程和多个不同的粒度的情况。
二、多维建模方法多维建模方法是在维度建模方法基础上进行进一步抽象和简化的一种方法,它通过创建多维数据立方体和维度层次结构来组织和管理数据。
2.1 数据立方体数据立方体是多维建模的核心概念,它将数据按照事实和维度进行组织和管理,从而提供给用户直观和高效的数据查询和分析能力。
数据立方体包含了多个维度和度量,用户可以通过选择和组合维度和度量进行数据分析和挖掘。
2.2 维度层次结构维度层次结构是多维建模的关键技术,它通过将维度进行分层和组织,从而实现维度之间的关联和上下级关系。
维度层次结构可以有效地减少数据的冗余和复杂性,提高数据仓库的查询和分析效率。
三、模式设计方法模式设计方法是在维度建模方法和多维建模方法的基础上进行进一步的抽象和规范的一种方法,它通过定义模式和规则来组织和管理数据仓库中的数据。
通俗易懂数仓建模—Inmon范式建模与Kimball维度建模在数据仓库领域,有两位大师,一位是“数据仓库”之父B i l l I n m o n,一位是数据仓库权威专家R a l p h K im ba l l,两位大师每人都有一本经典著作,I n m o n大师著作《数据仓库》及K im ba l l大师的《数仓工具箱》,两本书也代表了两种不同的数仓建设模式,这两种架构模式支撑了数据仓库以及商业智能近二十年的发展。
今天我们就来聊下这两种建模方式——范式建模和维度建模。
本文开始先简单理解两种建模的核心思想,然后根据一个具体的例子,分别使用这两种建模方式进行建模,大家便会一目了然!一、两种建模思想对于In mo n和K i m ba l l两种建模方式可以长篇大论叙述,但理论是很枯燥的,尤其是晦涩难懂的文字,大家读完估计也不会收获太多,所以我根据自己的理解用通俗的语言提炼出最核心的概念。
范式建模范式建模是数仓之父In mo n所倡导的,“数据仓库”这个词就是这位大师所定义的,这种建模方式在范式理论上符合3N F,这里的3N F与O L T P中的3N F还是有点区别的:关系数据库中的3N F是针对具体的业务流程的实体对象关系抽象,而数据仓库的3N F是站在企业角度面向主题的抽象。
I n m o n模型从流程上看是自上而下的,自上而下指的是数据的流向,“上”即数据的上游,“下”即数据的下游,即从分散异构的数据源-> 数据仓库-> 数据集市。
以数据源头为导向,然后一步步探索获取尽量符合预期的数据,因为数据源往往是异构的,所以会更加强调数据的清洗工作,将数据抽取为实体-关系模型,并不强调事实表和维度表的概念。
维度建模K i m b al l模型从流程上看是自下而上的,即从数据集市-> 数据仓库-> 分散异构的数据源。
K i mb a l l是以最终任务为导向,将数据按照目标拆分出不同的表需求,数据会抽取为事实-维度模型,数据源经E T L转化为事实表和维度表导入数据集市,以星型模型或雪花模型等方式构建维度数据仓库,架构体系中,数据集市与数据仓库是紧密结合的,数据集市是数据仓库中一个逻辑上的主题域。
维度建模粒度的概念
维度建模是一种数据建模的方法,主要用于数据仓库的构建。
在维度建模中,粒度是一个重要的概念,它决定了数据仓库中数据的细化程度。
粒度是指数据仓库的数据单位中保存数据的细化程度的级别。
简单来说,粒度是指事实表中存储的数据的汇总程度。
如果事实表中存储的是具体的每一笔销售记录,则粒度较小;如果存储的是每种商品的日销售总额的记录,则粒度较大。
选择合适的粒度,可以决定数据仓库的规模,并影响分析查询的计算量。
在数据仓库构建中,通常会分为两层:一层是操作数据存储(ODS),存储粒度较小的细节数据;另一层是数据仓库,在ODS的基础上,存储粒度较大
的汇总数据。
因此,粒度是维度建模中一个重要的概念,它决定了数据仓库中数据的详细程度和汇总程度,进而影响数据分析和查询的效果。
如需更多关于“维度建模粒度”的信息,建议咨询统计学专家或查阅统计学相关书籍。
数仓维度建模(如有侵权请联系删除)一、什么是维度建模按照事实表,维度表来构建数据仓库,数据集市。
将数据结构化的逻辑设计方法,它将客观世界划分为度量和上下文。
二、维度建模的优势和原则1、优势和缺点a) 维度建模是可预测的标准框架。
允许数据库系统和最终用户查询工具在数据方面生成强大的假设条件,这些数据主要在表现和性能方面起作用。
b) 星型连接模式的可预测框架能够忍受不可预知的用户行为变化。
c) 具有非常好的可扩展性,以便容纳不可预知的新数据源和新的设计决策。
可以很方便在不改变模型粒度情况下,增加新的分析维度和事实,不需要重载数据,也不需要为了适应新的改变而重新编码。
较好的扩展性意味着以前的所有应用都可以继续运行,并不会产生不同的结果。
但是,维度建模法的缺点也是非常明显的,由于在构建星型模式之前需要进行大量的数据预处理,因此会导致大量的数据处理工作。
而且,当业务发生变化,需要重新进行维度的定义时,往往需要重新进行维度数据的预处理。
而在这些与处理过程中,往往会导致大量的数据冗余。
另外一个维度建模法的缺点就是,如果只是依靠单纯的维度建模,不能保证数据来源的一致性和准确性,而且在数据仓库的底层,不是特别适用于维度建模的方法。
2、维度建模的原则原则1、载入详细的原子数据到维度结构中维度建模应该使用最基础的原子数据进行填充,以支持不可预知的来自用户查询的过滤和分组请求,用户通常不希望每次只看到一个单一的记录,但是你无法预测用户想要掩盖哪些数据,想要显示哪些数据,如果只有汇总数据,那么你已经设定了数据的使用模式,当用户想要深入挖掘数据时他们就会遇到障碍。
当然,原子数据也可以通过概要维度建模进行补充,但企业用户无法只在汇总数据上工作,他们需要原始数据回答不断变化的问题。
原则2、围绕业务流程构建维度模型业务流程是组织执行的活动,它们代表可测量的事件,如下一个订单或做一次结算,业务流程通常会捕获或生成唯一的与某个事件相关的性能指标,这些数据转换成事实后,每个业务流程都用一个原子事实表表示,除了单个流程事实表外,有时会从多个流程事实表合并成一个事实表,而且合并事实表是对单一流程事实表的一个很好的补充,并不能代替它们。
维度建模和指标体系构建01数仓建模综述数据建模是数据开发工作中的核心与基石,好的模型体系好处很多:•降低成本:优秀的模型设计能够提升数据复用性,减少计算/存储资源浪费•提升开发效率:优秀的模型设计能够降低数据使用门槛,减少工作量•提升质量:优秀的模型设计能够保证数据口径一致,降低bug率数据建模的实现方式有很多,常用的比如ER模型,Data Vault模型等。
目前业界使用最多的模型是Ralph Kimball 在《数据仓库工具》中提出的维度建模模型,其中典型的代表如星型模型,雪花模型。
一个典型的维度建模一般需要经过如下几个步骤:1.业务调研:调研需要建模的业务形态,划分基本的业务线/数据域2.层次设计:定义数仓层级,保证各层级之间职责明确,划分清晰3.规范设计:定义数仓中表/字段的命名规范,建立统一的指标体系4.事实表设计:根据单一/复合业务过程确定事实表主题,确定最小粒度5.维度表设计:根据业务确定实体,补充实体属性字段优秀的层次设计可以保证数仓表数量在可控范围内增长,同时保证数据产出流逻辑清晰,便于后期维护和扩展。
良好的规范设计规定了统一的命名规则,保证各个业务过程的实体/指标的完备和唯一性。
02设计原则按照《大数据之路——阿里巴巴大数据实战》,维度建模应该符合以下几个规范1.高内聚,低耦合:从业务流程和数据访问特性两个角度考虑,针对业务粒度相近,业务流程相近的数据应该放在同一个表中(例如广告数仓中通常会把广告的点击/曝光/转化多个业务过程数据放在同一个宽表中),针对经常要在同一个场景下访问的数据,也应该放在同一个表内。
2.公共处理逻辑下沉和单一:公用的逻辑应该封装在底层表中,避免公用逻辑直接暴露给上层,同一个公共逻辑需要收敛,避免在多个地方同时存在3.适当冗余:考虑到mr/rdd计算框架下join运算的资源损耗,可以通过适当冗余字段处理减少join操作4.命名一致/可理解:同一个业务含义的字段命名必须相同,且直观可读。
MySQL中的数据仓库建模与OLAP分析1. 引言随着大数据时代的到来,数据分析成为企业决策和发展的重要依据。
而数据仓库和OLAP(联机分析处理)技术则成为数据分析的核心工具之一。
本文将重点讨论MySQL中的数据仓库建模和OLAP分析的相关知识。
2. 数据仓库建模数据仓库是一个面向主题、集成、稳定、随时间变化而演化的数据集合。
数据仓库建模是构建数据仓库的关键步骤之一。
在MySQL中,常用的数据仓库建模方法有维度建模和实体关系建模。
2.1 维度建模维度建模是一种以业务维度为基础的建模方法。
它通过对业务过程中的维度进行抽象和建模,将复杂的业务过程简化成简单的维度模型。
维度建模主要包括维度表和事实表两部分。
维度表是描述业务过程中的维度属性的表,例如时间、产品、地区等。
事实表是描述业务过程的事实指标的表,例如销售额、订单数量等。
通过将维度表和事实表进行关联,可以方便地进行多维度的OLAP分析。
2.2 实体关系建模实体关系建模是一种以实体关系为基础的建模方法。
它通过对业务过程中的实体和实体之间的关系进行建模,将数据存储在多个表中。
实体关系建模主要包括实体表和关系表两部分。
实体表是描述业务过程中的实体属性的表,例如客户信息、产品信息等。
关系表是描述实体之间关系的表,例如客户和订单之间的关系、产品和订单之间的关系等。
通过对实体表和关系表的查询,可以获取业务过程中的多个维度数据,从而进行OLAP分析。
3. OLAP分析OLAP(联机分析处理)是一种多维、快速、交互式的数据分析方法。
通过对数据仓库中的多维数据进行切片、挖掘和透视等操作,可以获取到多个维度之间的关系和趋势。
在MySQL中,OLAP分析可以通过使用SQL语言和OLAP函数来实现。
3.1 切片和钻取切片和钻取是OLAP分析中常用的操作方式之一。
切片通过选择一个或多个维度进行过滤,从而获取到特定维度下的数据。
例如,通过选择时间维度为2019年,在数据仓库中获取到2019年的数据。
数据仓库建模一、概述数据仓库建模是指根据业务需求,将原始数据进行整理、转换和存储,以便于数据分析和决策支持。
本文将详细介绍数据仓库建模的标准格式,包括数据仓库架构、维度建模和事实表设计等方面的内容。
二、数据仓库架构1. 数据仓库层次结构数据仓库通常由三层构成:操作型数据层、数据仓库层和数据展示层。
操作型数据层用于存储原始数据,数据仓库层用于存储经过整理和转换的数据,数据展示层用于展示数据分析结果。
2. 数据仓库模型数据仓库模型采用星型模型或者雪花模型。
星型模型由一个中心的事实表和多个维度表组成,每一个维度表与事实表通过外键关联。
雪花模型在星型模型的基础上,将维度表进一步规范化,形成多个层次的维度表。
三、维度建模1. 维度表设计维度表包含业务过程中的维度属性,如时间、地点、产品等。
每一个维度表应包含一个主键和多个属性列,属性列用于描述维度的特征。
主键与事实表进行关联。
2. 事实表设计事实表包含业务过程中的度量指标,如销售额、订购数量等。
每一个事实表应包含一个主键和多个度量列,度量列用于存储度量指标的数值。
主键与维度表进行关联。
3. 维度建模技巧维度建模过程中,需要注意以下几点:- 维度表应具备高度可重用性,便于在不同的事实表中使用。
- 维度表的属性列应具备高度一致性和完整性,便于数据分析和查询。
- 维度表的属性列应具备高度可扩展性,便于根据业务需求进行扩展。
四、事实表设计1. 事实表类型事实表分为事务型事实表和积累型事实表。
事务型事实表记录每一个业务事件的详细信息,积累型事实表记录业务事件的累计值。
2. 事实表度量粒度事实表度量粒度应根据业务需求进行确定。
普通情况下,度量粒度应尽可能细化,以便于进行更详细的数据分析。
但也需要考虑数据存储和查询效率的问题。
3. 事实表的度量指标事实表的度量指标应根据业务需求进行确定。
度量指标应具备可度量性、可加性和可分解性等特性,便于进行数据分析和计算。
五、数据仓库建模工具数据仓库建模过程中,可以使用一些建模工具辅助设计和管理数据仓库,如PowerDesigner、ERwin等。