数仓实践:浅谈 Kimball 维度建模1
1、度量和环境
(1)度量
识别:和业务方、需求方交谈,或者阅读报表、图表等
销售额、库存、访问量、熟客量就是度量,也就是指标
(2)环境
单独讲度量是没有意义的,离不开环境
维度建模通过对度量和及其上下文和环境的详细设计来实现的
2、事实和维度
度量对应事实,上下文和环境对应维度
(1)事实
以数值形式出现,被文本形式的上下文包围
(2)维度
分为5W,也就是who,why,where,when,what
可以被直观分为独立的逻辑块,每一个独立逻辑块就是一个维度
一个订单可以被分为商品、买家、卖家等多个维度
(3)如何转换为事实和维度
根据需求描述或者基于现有报表
需求描述:按照一级类目,统计本店铺上月的销售额情况
事实:销售额
维度:一级类目、上月
3、事实表
事实表是维度建模中的核心表、基础表
事实表存储业务过程中的所有度量、引用的维度
(1)存储的度量
事实表的一行对应一个度量事件
粒度:就是细节的级别,可粗可细
事实表的度量:可累加(销售金额、销售数量)、半可累加(仅仅某些维度可加)、不可累加(订单状态)
(2)存储的引用维度
用于关联和连接相应的维度,通过这些外键,进行各个角度、维度分析
(3)类型
事务事实表:粒度细,事务数据,比如产品交易事务事实
周期快照事实表:记录有规律、固定时间间隔的业务累计数据,粒度较粗,比如账户月均余额事实表
累计快照事实表:记录具有时间跨度的业务处理过程的整个信息,比如从用户下单、物流、评价、售后等整个流程的信息
同一个事实表的粒度是相同的
4、维度表
维度表是维度建模的灵魂,设计的好坏决定数仓的好坏
维度表包括5W、描述字段、标签字段
维度表包括若干个列,也就是维度属性
维度属性用于where、group by,报表标签生成的基本来源
在查询、报表需求中,属性按照by(按)标识
维度属性最好是文本、离散的,减少编码的使用,提供丰富的切割能力
设计时,判断数据源获取的字段是事实还是维度属性的方法:
当事实看待:含有许多取值并参与运算的度量值
当维度属性看待:一个变化不多并作为约束条件的离散取值的描述
更多推荐


所有评论(0)