1 / 47
文档名称:

大数据平台-数据建模总结-技术方案.docx

格式:docx   大小:102KB   页数:47页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

大数据平台-数据建模总结-技术方案.docx

上传人:guoxiachuanyue008 2022/7/26 文件大小:102 KB

下载得到文件列表

大数据平台-数据建模总结-技术方案.docx

相关文档

文档介绍

文档介绍:目录
1仓库底层模型重构1




,在ER模型中,实体为客观存在的事务,会带有自己的描述性属性,属性一般为文本性、描述性的,这些描述被称为维度。
比如商品,单一主键:商品ID,属性包括产地、颜色、材质、尺寸、单价等,但并非属性一定是文本,比如单价、尺寸,均为数值型描述性的,日常主要的维度抽象包括:时间维度表地理区域维度表等。
维度建模通常又分为星型模型和雪花模型
星型模型:
雪花模型:
技术方案
4

堆廈表乩2
维度萄
维虞表2
JJ
■k^
醛度表3
錐虔再4

星型模型和雪花模型的主要区别在于对维度表的拆分,对于雪花模型,维度表的设计更加规范,一般符合3NF;而星型模型,一般采用降维的操作,利用冗余来避免模型过于复杂,提高易用性和分析效率。
雪花、星型模型对比:
1、冗余:雪花模型符合业务逻辑设计,采用3NF设计,有效降低数据冗余;星型模型的维度表设计不符合3NF,反规范化,维度表之间不会直接相关,牺牲部分存储空间。
2、性能:雪花模型由于存在维度间的关联,采用3NF降低冗余,通常在使用过程中,需要连接更多的维度表,导致性能偏低;星型模型反三范式,采用降维的操作将维度整合,以存储空间为代价有效降低维度表连接数,性能较雪花模型高。
3、ETL:雪花模型符合业务ER模型设计原则,在ETL过程中相对简单,但是由于附属模型的限制,ETL任务并行化较低;星型模型在设计维度表时反范式设计,所以在ETL过程中整合业务数据到维度表有一定难度,但由于避免附属维度,可并行化处理。
大数据和传统关系型数据库的计算框架不一样,例如对比mapreduce和oracle,在mapreduce里面,每多一个表的关联,就多一个job。mapreduce的每个任务进来,要申请资源,分配容器,各节点通信等。有可能YARN调度时长大于任务运行时间,例如调度需要5秒才能申请到资源,而表之间的join只需要2秒。hive优化里面,要尽可能减少job任务数,也就是减少表之间的关联,可以用适当的冗余来避免低效的查询方式,这是和oracle等其他关系型数据库不同的地方。
(点此了解:MapReduce作业运行机制)
技术方案
6
3、DataVault模型
DataVault是在ER模型的基础上衍生而来,模型设计的初衷是有效的组织基础数据层,使之易扩展,灵活应对业务变化,同时强调历史性、可追溯性和原子性,不要求对数据进行过度的一致性处理,并非针对分析场景所设计。
DataVault模型是一种中心辐射式模型,其设计重点围绕着业务键的集成模式。这些业务键是存储在多个系统中的、针对各种信息的键,用于定位和唯一标识记录或数据。
DataVault模型包含三种基本结构:
1)中心表-Hub:唯一业务键的列表,唯一标识企业实际业务,企业的业务主体集合。
2)链接表-Link:表示中心表之间的关系,通过链接表串联整个企业的业务关联关系。
3)卫星表-Satellite:历史的描述性数据,数据仓库中数据的真正载体。
DataVault是对ER模型更进一步的规范化,由于对数据的拆解更偏向于基础数据组织,在处理分析类场景时相对复杂,适合数仓底层构建,目前实际应用场景较少。
4、Anchor
Anchor是对DataVault模型做了更进一步的规范化处理,初衷是为了设计高度可扩展的模型,核心思想是所有的扩张只添加而不修改,于是设计出的模型基本变成了K-V结构的模型,模型范式达到了6NF。
由于过度规范化,使用中牵涉到太多的join操作,目前没有实际案例,仅作了解。四种基本建模方法对比:
当前主流建模方法为:ER模型、维度建模。
1)ER模型
ER模型应用到构建数仓时更偏重数据整合,站在企业整体考虑,将各个系统的数据按相似性一致性进行合并处理,为数据分析、决策服务,但并不便于直接用来支持分析。
问题:
a)需要全面梳理企业所有的业务和数据流;
b)实施周期长;
c)对建模人员要求高。
2)维度模型维度建模是面向分析场景而生,针对分析场景构建数仓模型,重点关注快速、灵活的解决分析需求,同时能够提供大规模数据的快速响应性能。针对性强,主要应用于数据仓库构建和
技术方案
6
OLAP引擎底层数据模型。
模型选择和设计的原则:
a)数仓模型的选择是灵活的,不局限于某一种模型方法;
b)数仓模型的设计也是灵活的,以实际需求场景为导向;