阿里大数据之路笔记

2021-04-06  本文已影响0人  帝乙岩

第二章笔记数据模型篇

第八章建模综述

为什么需要数据建模:
维度模型

设计步骤:

第九章数据整合及管理体系

建设方法论核心:从业务架构设计到模型设计,从数据研发到数据服务,做到数据可管理,可追溯,可规避重复建设
数据接入层:ods;数据中间层:dwd和dws层


阿里体系架构图.jpg

名词解释:

模型设计

基本原则

1.高内聚,低耦合:将业务相近或者相关,粒度相同的数据设计为一个逻辑或者物理模型;将高概率同时访问的数据放一起,低概率访问数据分开存放.
2.核心模型与扩展模型分离:不能让扩展模型的字段过度侵入核心模型,以免破坏核心模型的架构简洁性和可维护性.
3.公共处理逻辑下沉及单一: 不要让公用的处理逻辑暴露给应用层实现,不要让公共逻辑多处同时存在.
4.成本与性能平衡:不宜过度冗余和数据重复
5.数据可回滚:处理逻辑不变,在不同时间多次运行数据结果确定不变
6.一致性:具有相同含义的字段在不同表中的命名必须相同.
7.命名清洗,可理解

模型实施

1.业务调研:业务领域,业务线的业务有什么共同点和不同点,以及各个业务线可以细分为哪几个业务模块,每个业务模块的业务流程.


实施工作流程.jpg

2.架构设计

数据域划分: 数据域划分.jpg
构建总线矩阵:明确每个数据域下有哪些业务过程;业务过程与哪些维度相关,定义每个数据域下的业务过程和维度.
业务过程.jpg

3.规范定义:定义指标体系,原子指标,修饰词,时间周期,派生指标
4.模型设计:维度和属性的定义,维度,明细事实表和汇总事实表的模型设计.

第十章维度设计

  1. 设计基础
    度量称为事实,环境描述为维度,维度所包含的表示维度的列,称为维度属性,维度的作用一般是查询约束,分类汇总以及排序等.
    维度和维度属性的获取:一方面在报表中获取;一方面和业务人员交流获取.常出现在"按照"语句内,例:
    用户要"按照"月份和产品来查看销售情况,
    维度使用主键标识唯一性:代理键:处理缓慢变化维和自然键,业务含义的键.
    对于前台应用系统来说,商品ID是代理键;对数据仓库来说,商品id属于自然键.

维度设计就是确定维度属性的过程

维度的层次结构
层次方式或一对多的方式互相关联
钻取:一层一层扩展,向下钻取更详细,向上钻取更汇总

规范化和反规范化
联机事务处理系统(OLTP):采用雪花模型:属性被实例化为一系列维度,非单一维度(mysql中的)
联机分析处理系统(OLAP)(数仓采用)
反规范化:将维度的属性和层次合并到单一维度中的操作(数仓采用),方便易用性能好
雪花模型:事实表维度表分支维度表
星型模型:事实表_维度表

一致性维度和交叉探查
交叉探查:将不同数据域的商品的事实合并在一起进行数据探查,如计算转化率等.
维度格式和内容要保持一致,否则查探结果错误
维度一致性的表现形式

  1. 维度设计高级主题
    维度整合
    数据仓库是一个面向主题的,集成的,非易失的且随时间变化的数据集合,用来支持管理人员的决策.
    应用之间的差异:

进行数据集成:

表级别的整合:

水平拆分
维度通常可以按照类别或类型进行细分.
如何设计维度:

垂直拆分
维度设计时,依据维度设计的原则,尽可能丰富维度属性,同时进行反规范化处理.
按照扩展性,产出时间,易用性
主维表存放稳定,产出时间早,热度高的属性,从维表存放变化较快,产出时间晚,热度低的属性.

历史归档
面对庞大的数据量,如何设计模型,如何降低存储,如何让下游方便获取数据.

  1. 维度变化
    缓慢变化维
    处理维度的变化的方式

快照维表(不推荐不采用)
为什么不使用代理键?
原因一数据量大,分布式系统不存在事务概念,某条记录每次生成相同的代理键难度大.
原因二代理键会增加ETL的复杂性,开发和维护成本更高.
如何处理缓慢变化维?
每天保留一份全量快照数据.
弊端:无变化也会进行存储,存储资源浪费.

极限存储
历史拉链存储:利用维度模型中缓慢变化维的第二种处理方式
增加两个时间戳字段,将所有以天为粒度的变更数据都记录下来.
会导致分区过多:

微型维度(不推荐未使用)
避免维度过度增长.
通过将一部分不稳定的属性从主维度表中移出,并将它们放置到拥有自己代理键的新表中来实现.
属性相互之间没有直接联系,不存在自然键.
通过为每个组合创建新行的一次性过程来加载数据.

  1. 特殊维度
    递归层次
    某维度实例值的层次关系,均衡层次结构和非均衡层次结构
    层次结构扁平化(推荐使用)
    出现类目为空的情况,由上级类目进行回填.
    层次桥接表(就是mysql的多对多表关联,不推荐)
    适合解决更宽泛的分析问题,灵活性好;但复杂性高,使用成本高.

行为维度
类似的维度,都和事实相关,如交易,物流等
行为维度划分种类:

多值维度
事实表的一条记录在某维表中 有多条记录与之对应.
处理方式:

杂项维度
由操作型系统中的指示符或者标志字段组合而成的,不在一致性维度之列
一个事实表中可能会存在多个类似的字段,解决方案就是建立杂项维度,将这些字段建立到一个维表中,在事实表中只需要保存一个外键即可.

第11章事实表设计

  1. 事实表基础
    事实表特性
    引用的维度和与业务过程有关的度量.
    粒度通过两种方式表述:一种是维度属性组合所表示的细节程度;一种是所表示的具体业务含义.
    度量业务的事实分为:

事实表三种类型:

事实表设计原则:

事实表设计方法:选择业务过程,声明粒度,确定维度,确定事实.
一步:选择业务过程及确定事实表类型
明确业务需求以后,需要进行详细的需求分析,对业务的整个生命周期进行分析,明确关键业务步骤,从而选择与需求有关的业务过程.
订单流转案例:
买家下单-创建订单-等待买家付款-买家付款-等待卖家发货-卖家发货-等待买家确认收货-买家确认收货-交易成功
业务过程通常使用行为动词表示业务的执行活动,业务过程有四个:创建订单,买家付款,卖家发货,买家确认收货
二步声明粒度:事实表的粒度应该选择为子订单级别.
三步确定维度
四步确定事实
五步冗余维度

  1. 事务事实表
    设计过程
    任何类型的事件都可以被理解为一种事务,针对事务过程构建的事实表,用以跟踪定义业务过程的个体行为,提供丰富的分析能力,作为数据仓库原子的明细数据.
    看具体案例

单事务事实表
对每个业务过程设计一个事实表

多事务事实表
同一个事实表包含不同的业务过程.
两种方式:

多事务事实表选择:

对比: 单事务与多事务事实表对比.jpg

父子事实的处理方式:冗余到事务表中.

事实的设计准则

  1. 周期快照事实表(就是时间段的数据表)
    在确定的间隔内对实体的度量进行抽样.

特性
快照事实表的粒度通常以维度形式声明.
事务事实表稀疏的,快照事实表是稠密的.
事务事实表的事实是完全可加的,快照模型将至少包含一个用来展示半可加性质的事实.

实例:
确定快照粒度.
确定采样的状态度量.

注意事项

  1. 累积快照事实表
    研究事件之间时间间隔的需求.
    设计过程:四步
    特点:

特殊处理

物理实现
累积快照事实表模型设计

  1. 三种事实表比较


    三种事实表对比.jpg
  2. 无事实的事实表
    不包含事实或度量的事实表

  1. 聚集型事实表
    聚集主要是通过汇总明细粒度数据来获取改进查询性能的效果.
    使用频繁的公用数据,通过聚集进行沉淀.
    聚集汇总数据在公共汇总层

基本原则:

聚集的基本步骤

公共汇总层
基本原则

聚集补充说明

上一篇 下一篇

猜你喜欢

热点阅读