数据建模
2023-08-31 17:13:14 0 举报
AI智能生成
数据建模
作者其他创作
大纲/内容
OLTP(On-Line Transaction Processing)— 联机事务处(操作型系统)
OLAP(On-Line Analytical Processing)— 联机分析处理(分析型系统)
在OLTP场景中,常用的是使用实体关系模型(ER)来存储,从而在事务处理中解决数据的冗余和一致性问题,OLAP中的ER模型,与OLTP中的有所区别。其本质差异是站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系的抽象
ER模型
是维度模型在关系型数据库上的一种实现。该模型表示每个业务过程包含事实表,事实表存储事件的数值化度量,围绕事实表的多个维度表,维度表包含事件发生时实际存在的文本环境。这种类似于星状的结构通常称为\"星型连接\"。其重点关注用户如何更快速地完成需求分析,同时具有较好的大规模复杂查询的响应性能。在星型模型基础上,在复杂场景下还可以进一步衍生出雪花模型
星型模型
是维度模型的另一种实现。当数据被加载到OLAP多维数据库时,对这些数据的存储的索引,采用了为维度数据涉及的格式和技术。性能聚集或预计算汇总表通常由多维数据库引擎建立并管理。由于采用预计算、索引策略和其他优化方法,多维数据库可实现高性能查询
多维模型
相关概念
重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能
特点
用于承载事务数据,通常粒度比较低,它是面向事务的,其粒度是每一行对应一个事务,它是最细粒度的事实表,例如产品交易事务事实、ATM交易事务事实
事务事实表
按照一定的时间周期间隔(每天,每月)来捕捉业务活动的执行情况,一旦装入事实表就不会再去更新,它是事务事实表的补充。用来记录有规律的、固定时间间隔的业务累计数据,通常粒度比较高,例如账户月平均余额事实表
周期快照事实表
用来记录具有时间跨度的业务处理过程的整个过程的信息,每个生命周期一行,通常这类事实表比较少见
积累快照事实表
事实表
退化维度
直接覆盖原值
增加维度行
增加属性列
混合方式
处理方式
缓慢变化维度
维度表
粒度
组织完成的微观活动:如检索、竟价、展现、点击
选择事务过程
如何描述事实表中每个行的内容:如客户单次检索
声明粒度
业务人员如何描述来自业务过程度量事件的数据 ?
确定维度
过程的度量是什么?时间、IP.来源、受理者等
确定事实
步骤
收集业务需求与数据实现
选择业务过程
确认维度(描述环境)
确认事实(用于度量)
部署方式 - 星型模型或多维模型
实操流程
维度建模
星型模型主要是维表和事实表,以事实表为中心,所有维度直接关联在事实表上,呈星型分布
在星型模型的基础上,维度表上又关联了其他维度表。这种模型维护成本高,性能方面也较差,所以一般不建议使用。尤其是基于hadoop体系构建数仓,减少join就是减少shuffle,性能差距会很大
雪花模型
是对星型模型的扩展延伸,多张事实表共享维度表。数仓模型建设后期,大部分维度建模都是星座模型
星座模型
维度模型
范式建模法其实是我们在构建数据模型常用的一个方法,该方法的主要由 Inmon 所提倡,主要解决关系型数据库的数据存储,利用的一种技术层面上的方法。目前,我们在关系型数据库中的建模方法,大部分采用的是三范式建模法
范式 是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则,而在关系型数据库中这种规则就是范式,这一过程也被称为规范化。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd范式(BCNF)、第四范式(4NF)和第五范式(5NF)
范式建模
DataVault由Hub(关键核心业务实体)、Link(关系)、Satellite(实体属性) 三部分组成 ,是Dan Linstedt发起创建的一种模型方法论,它是在ER关系模型上的衍生,同时设计的出发点也是为了实现数据的整合,并非为数据决策分析直接使用
Data Vault模型
高度可扩展的模型,所有的扩展只是添加而不是修改,因此它将模型规范到6NF,基本变成了K-V结构模型。一般很少使用
Anchor模型
数仓建模方法论
指面向业务分析,将业务过程或者维度进行抽象的集合。在划分数据域时,既能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域中和扩展新的数据域
数据域
指企业的业务活动事件,如下单、支付、退款都是业务过程。请注意,业务过程是一个不可拆分的行为事件,通俗地讲,业务过程就是企业活动中的事件
业务过程
用来明确数据统计的时间范围或者时间点,如最近30天、自然周、截至当日等
时间周期
是对修饰词的一种抽象划分,是从属于某个业务域的
修饰类型
指除了统计维度以外指标的业务场景限定抽象。修饰词隶属于一种修饰类型
修饰词
原子指标和度量含义相同,基于某一业务事件行为下的度量,是业务定义中不可再拆分的指标,具有明确业务含义的名词,如支付金额
度量/原子指标
维度是度量的环境,用来反映业务的一类属性,这类属性的集合构成一个维度,也可以称为实体对象。维度属于一个数据域,如地理维度(其中包挤国家、地区、省以及城市等级别的内容)、时间维度(其中包括年、季、月、周、日等级别的内容)
维度
维度属性隶属于一个维度,如地理维度里面的国家名称、国家ID、省份名称等都属于维度属性
维度属性
派生指标=一个原子指标+多个修饰词(可选)+时间周期。可以理解为对原子指标业务统计范围的圈定
派生指标
Operational Data Store,操作数据层,在结构上其与源系统的增量或者全量数据基本保持 一致。它相当于一个数据准备区,同时又承担着基础数据的记录以及历史变化。其主要作用是把基础数据引入到MaxCompute
ODS
Common Data Model,公共维度模型层,又细分为DWD和DWS。它的主要作用是完成数据加工与整合、建立一致性的维度、构建可复用的面向分析和统计的明细事实表以及汇总公共粒度的指标
CDM
Data Warehouse Detail,明细数据层
DWD
Data Warehouse Summary,汇总数据层
DWS
Application Data Service,应用数据层
ADS
数据层次划分
数据处理流程
按业务划分
按数据域划分
按业务过程划分
数据划分及命名空间约定
模型是对现实事物的反映和抽象,能帮助我们更好地了解客观世界。数据模型定义了数据之间关系和结构,使得我们可以有规律地获取想要的数据。例如,在一个超市里,商品的布局都有特定的规范,商品摆放的位置是按照消费者的购买习惯以及人流走向进行摆放的
数据模型是在业务需求分析之后,数据仓库工作开始时的第一步。良好的数据模型可以帮助我们更好地存储数据,更有效率地获取数据,保证数据间的一致性
作用
数据模型
一个逻辑和物理模型由哪些记录和字段组成,应该遵循最基本的软件设计方法论中的高内聚和低耦合原则。主要从数据业务特性和访问特性两个角度来考虑:将业务相近或者相关的数据、粒度相同数据设计为一个逻辑或者物理模型;将高概率同时访问的数据放一起,将低概率同时访问的数据分开存储
高内聚和低耦合
建立核心模型与扩展模型体系,核心模型包括的字段支持常用核心的业务,扩展模型包括的字段支持个性化或是少量应用的需要。在必须让核心模型与扩展模型做关联时,不能让扩展字段过度侵入核心模型,以免破坏了核心模型的架构简洁性与可维护性
核心模型与扩展模型分离
底层公用的处理逻辑应该在数据调度依赖的底层进行封装与实现,不要让公用的处理逻辑暴露给应用层实现,不要让公共逻辑在多处同时存在
公共处理逻辑下沉及单一
适当的数据冗余可换取查询和刷新性能,不宜过度冗余与数据复制
成本与性能平衡
处理逻辑不变,在不同时间多次运行数据的结果需确定不变
数据可回滚
相同的字段在不同表中的字段名必须相同
一致性
表命名规范需清晰、一致,表命名需易于下游的理解和使用
命名清晰可理解
一个模型无法满足所有的需求。需合理选择数据模型的建模方式。通常,设计顺序依次为:概念模型->逻辑模型->物理模型
补充说明
模型设计原则
维度属性尽量丰富,为数据使用打下基础。给出详实的、富有意义的文字描述。沉淀通用维度属性,为建立一致性维度做好铺垫。严格区分事实与维度,通过使用场景进行区分。
维度表设计要点
选择一种适合的事实表类型。事实尽可能完整,包含整个业务过程的全部事实。确保每一个事实度量都是一致性,反复计算都会得到相同的结果。尽量记录一些“原子”事实,而不是加工后的结果。可适当做些”维度退化属性”,提高事实表的查询性能。为提高聚合性能,可适度做些上卷汇聚事实表
事实表设计要点
建模规范
PowerDesigner
ER/Studio
Sparx Enterprise Architect
CA ERwin
IBM - InfoSphere Data Architect
Visio
Excel Mapping
建模工具
数据建模
0 条评论
下一页