
缓慢变化维
-
2023年3月17日发(作者:高考英语满分多少)《数据仓库⼯具箱》读书笔记(⼀):维度建模初步
第⼀章数据仓库、商业智能及维度建模初步
⼀、数据仓库与商业智能的⽬标
1、⽅便地保存数据
2、数据⼀致性
3、适应变化
4、及时展现数据
5、信息安全
6、数据权威
7、⽀撑业务
⼆、数仓管理者的职责
1、理解业务理解⽤户
2、为⽤户提供⾼质量、相关的、可访问的信息
3、维护数仓/分析环境
三、维度建模基础知识
1、维度模型和3NF模型包含的数据是⼀样的,只是维度模型存储的数据更易理解,查询性能更⾼,包装得更灵活
事实表:
2、维度模型中的事实表来⾃对业务过程性能的度量
3、事实表中每⾏对应⼀个度量事件
4、每⾏中的数据是⼀个特定级别的细节数据,称为粒度
5、事实表通常分为事务、累计快照、周期快照
6、事实表主键通常成为组合键
维度表:
7、维度表包含与业务过程度量事件有关的⽂本环境
8、数仓分析环境取决于维度属性的质量和深度
四、各种数仓架构
1、Kimball
Kimball
操作型源系统,就是数据的来源,数据记录的最基础的形式
ETL过程主要是对维度与事实进⾏划分,清洗数据,关注维度表的处理(代理键分配等)
前端区将获取到元数据、报表、分析应⽤等内容,展⽰时也需要兼顾效率
2、独⽴数据集市
独⽴数据集市
这种结构明显难以保证⼀致性,但开发起来会⽐较快
3、Inmon
Inmon
原⼦数据保存在满⾜3NF的数据库中,这种规范化的、原⼦数据的仓库被称为企业数据仓库(EnterpriseDataWarehouse)
它与Kimball的区别包括数据粒度的不同,可能有些数据不是原⼦级别的,它也不围绕业务展开
4、Kimball+Inmon
Kimball+Inmon
EDW保留三范式规则,但原⼦数据是不聚合的,作为展现区的数据来源
第⼆章Kimball维度建模技术概述
⼀、基本概念
1、收集业务需求与数据实现
2、维度设计过程:选择业务过程、声明粒度、确认维度、确认事实
3、业务过程是组织完成的操作型活动(订单、注册)
4、粒度:事务表⾥的每⼀⾏表⽰的是什么
5、维度:⽤于描述环境
6、事实:对业务过程进⾏度量
7、灵活扩展:事实粒度⼀致时可直接创建列,通过新的维度列关联维度⾄事实,可以在维度表上简历新列添加属性,可以使事实表粒度更原⼦化
⼆、事实表技术基础
1、事实表⾏对应⼀个度量事件
2、可加、半可加是针对维度⽽⾔的,部分维度可加的是半可加。
3、事实表中的外键不能存在空值
4、最好保证事实度量是⼀致的
5、事务事实表:⼀⾏对应空间或时间上某点的度量事件,⽐如订单表、⽇志表
6、周期快照事实表:每⾏汇总了发⽣在某⼀周期的多个度量事件,⽐如⼀个⽤户在⼀天⾥的点击、退出次数
7、累计快照事实表:每⾏汇总了发⽣在过程开始和结束之间可预测步骤内的度量事件,⽐如订单有提单、⽀付、成单、配送、评价的可作为度量
的过程
8、⽆事实事务表:可能存在某些事件仅仅记录多维实体,没有数字化的事实
9、聚集事实表:对原⼦粒度事实表数据进⾏上卷
感觉多数还是事务和聚集事实表
三、维度表技术基础
1、维度表应当具有单⼀主键列,它是扁平⾮规范表
2、维度表需要主键,可以为维度表⽣成⽆语义的整数型主键,可以借助UDF来进⾏⽣成
3、操作型系统中⾃然键不能满⾜需求时可以采⽤持久性超⾃然键
4、将常⽤维度退化到事实表中,清楚地表明没有关联的维度
5、同⼀维度可能存在不同的层次,⼀级城市,⼆级城市
6、可以建⽴将不同维度合并到⼀起的杂项维度,⽽不要为每个标识或属性定义不同维度
7、雪花维度:低粒度属性作为辅助表通过属性键连接到基本维度,当这⼀过程中包含多重维度表层次时,建⽴的多级层次结构被称为雪花模式
8、⽀架维度:被引⽤的辅助维度成为⽀架维度,⽐如银⾏账户维度可以引⽤开户⽇期维度
四、⼀致性维度
当不同的维度表的属性具有相同列名和领域内容时,称维度表具有⼀致性
五、缓慢变化维
1、原样保留
2、重写
3、增加⾏
4、增加新属性(列)
六、处理维度层次关系
1、固定深度位置层次,能够提佛那个可预测的、快速的查询性能
2、其他还可能存在可变深度层次、层次桥接、路径字符属性可变深度层次,但这些最好向固定深度层次进⾏统⼀
七、⾼级事实表技术
1、蜈蚣事实表:存在多层次维度外键
2、事实表也可分配代理键
3、多遍SQL以避免事实表间的连接
⼋、⾼级维度表技术
1、聚集事实也可作为维度进⾏处理(例如⾦额⼤于多少的⽤户)
2、步骤维度:在⽇志表⾥可以为⾏为顺序进⾏编号,探究⾏为发⽣的过程,这个维度叫步骤维度