《数据仓库工具箱》读书笔记(一):维度建模初步

第一章 数据仓库、商业智能及维度建模初步

一、数据仓库与商业智能的目标

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的数据库中,这种规范化的、原子数据的仓库被称为企业数据仓库(Enterprise Data Warehouse)
它与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、步骤维度:在日志表里可以为行为顺序进行编号,探究行为发生的过程,这个维度叫步骤维度

你可能感兴趣的:(《数据仓库工具箱》读书笔记(一):维度建模初步)