Booknote,《Star Schema -The Complete Reference》
Dimensional Design 维度设计
维度模型由两部分: measurements and context, 即 测量指标和上下文。
在数据仓库模型里对应的是事实表和维度表,如果引入关系数据库,那么此时的维度模型就是星型模型。
维度设计是服务于分析型系统,而非事务型系统—— 前者是面向业务过程的评估,后者是保证服务的顺利执行。 ( evaluation vs execution
)
OLTP system
Transaction(事务)要提供的接口: 增加,删除,修改,查询,而且应保证操作的原子性。
在OLTP系统,数据库表的设计要遵循一定的设计规范,比较著名的就是3NF(第三范式)。 这种规范也被称为 ER模型。
OLAP(Analytic System)
OLAP在设计和定位、实现上,和OLTP都有着较大的差异:
Measurement and Context
- 一月 各类商品的毛利是多少?
- 按教育程度分类,每类用户的账户余额平均值是多少?
- 供货商的退货率是多少?
这一系列问题与销售过程、账户管理、退款服务产生的存量数据有关。为了回答这些问题,要查询的不再是一条数据,而是一批次+多个表的数据的聚合查询结果。
对Measurement必须是结合context的, 比如当有人说销售额是1000时,这句话的信息量极少。1000到底是一个商品还是一类商品,时间描述也不清楚。 对范围的限定,即为context,上下文。
Fact and Dimensions
在维度设计中,测量对应的是事实表,上下文对应的是维度表。
要留意的是,并不是所有数值都是隶属于事实的测量。 比如说用户的年龄,可以作为维度。
事实和一个数值指标对应,往往“指标”是可以拆解或聚合的。
事实表与维度举例(销售过程)星形样例
商品维度:商品,SKU编码,商品描述,品牌与品牌编码,经理,分类与分类编码;
销售员维度:销售员,区域编码和区域名称
顾客维度:顾客ID,账单地址
时间日期:下单日期,下单月份,季,财务周期,订单年
Star Schema 星形模式
事实表为中心,向外放射(☢️)解释关联到每个方面的维度:
事实表的查询
数据仓库架构
😶 Data Warehouse Architectures
这一章介绍EDW(enterprise data warehouse)。 作者提示,不要生搬硬套文中提到的架构模块。
Inmon's Corporate Information Factory 🏭
Bill Inmon是数据仓库社区中多产的贡献者(prolific writer and contributor to the data warehousing community), 代表性著作(Corporate Information Factory, 企业信息工厂)
这个架构下, 分析型应用(包括BI工具)不直接查询。
EDW通常存储在关系数据库管理系统,Inmon提供使用3NF范式。
Kimball,维度数据仓库
Kimball的成就
- 1990年,Kimball将之前的个人思想加以提炼,提出了star schema设计。
- 对数据仓库Kimball给出了一套维度设计的方法论 —— 数据总线架构(bus architecture)
Kimball 维度模型和前文提到EDW最大的区别是什么?
设计是遵循维度建模,而非范式的关系建模,由一系列星型表或cubes组成。
二者,维度数仓可以直接被分析系统查询,data mart (是数据仓库中的主题区域)。