文章目录
8 多维建模
1 :维度建模中的基本概念
①:事实表
日销售情况事实表 |
---|
日期关键字(FK) |
产品关键字(FK) |
商场关键字(FK) |
销售额 |
销售量 |
- 维度建模的核心和基本表
- 每一个事实表都对应着一个或者是若干个“度量值”
- 度量值是事实表的核心,也是趋势分析的对象
- 通过事实表来记录维度值和度量值之间的关系
- 事实表中的一行对应一个度量值
- 事实表中的所有度量值必须具有相同的粒度
- 粒度划分的模型:事务,周期快照,累计快照
- 事实表中的度量值
- 最常用的度量值:数值类型
- 度量值通场是一个可以连续取值的量,很少采用文本形式的度量值
- 三种类型的度量值
- 做加发,沿着某些维度做加法,不能做加法运算
- 计数统计,计算平均值,取样统计
- 事实表中的关键字
- 每个事实表中都有两个或者是两个以上的外关键字
- 通过外关键字建立事实表和为表之间的练习,从而可以通过维度表来存取事实表中的度量值
- 可以由外关键字的组合构成事实表中的主关键字
- 每个事实表中都有两个或者是两个以上的外关键字
②:维度表
- 维度表是事实表的入口,为用户提供了使用数据仓库的接口
- 维度表中的维度属性筒仓用于定义事实表上的查询条件,也可作为定义报表和统计查询的“列”
- 维度表的定义通常包括
- 尽可能多的列
- 相对少的行(相对于事实表)
- 维度表的属性组成
产品关键字(FK) |
---|
产品描述 |
SKU编号 |
商标编号 |
分类描述 |
部门描述 |
包装描述 |
- 维度属性
- 通常是文本数据,或者是离散数据
- 尽量减少使用编码属性(使用一月,而不是用1)
③:维度属性和度量值的区别
- 度量值属性
- 由许多的取值可能并可以参与统计运算的属性
- 维度属性
- 离散的或者是取值可能不是很多的属性
- 取值不变或者很少产生变化的属性
- 从不参与统计计算但是经常用作查询条件的属性
④:事实和维度的融合
- 将事实表及其相关的维表通过关键字进行连接
2:零售营销
①:维度建模的设计过程
- 选取要建模的业务处理过程(分析型)
- 分析需要
- 定义业务处理的粒度
- 事实表中的每一行的度量值的取值粒度
- 选择事实表中的维度(事先已经建立)
- 选择事实表中的度量值
- 以分析对象为依据
- 可以由多个度量值
一:需求分析
- 数据的入口(数据驱动)
- 前台的pos机
- 后台的货物入库
- 管理决策需要(面向主题)
- 定价
- 促销
- 这是两个最常见也是最重要的决策
二:定义业务处理的粒度
- 选取业务处理
- 在什么样的促销条件下,在什么样的日子里,在什么样的商店,正在销售什么样的商品
- 定义粒度
- POS事务的每个商品条目
- 最初粒度的选择可以与执行的分析操作有关系
三:选定维度
- 先选取已经确定的维表,与自己的事实表联系
- 确定待定事实
- 通过计算而获得的可加性的度量值也可以物理存储在事实表中(毛利润金额)
- 不具有可加性的计算结果则应该由分析展现工具在访问过程中进行计算,比如(毛利润,单价)
四:维度的设计
- 日期维度
- 是每个数据仓库必须具备的维度
- 日期维度表可以实现的建立好
- 可以预先建立好五到十年的日期维度值
- 日期是客观存在的,是可以预见的,预先建立可以保证不漏不重,同时连续的物理存储空间增加效率
- 日期维度中的属性
- 星期,月名,嫉妒,财政周
- SQL日期标记(用于sql数据库的连接,用于加速)
- 产品维度
- 产品维度表中存在着两类的属性
- 产品的多级体系划分属性(构成属性体系结构)
- SKU编号 -> 小类描述 -> 大类描述 -> 部门描述
- 从左到右,每一级都是多对一的对应管理,从而构成了一个关于商品的分类体系
- 其他的描述属性
- 包装类型,脂肪含量
- 这类属性并不是产品体系中的组成部分,但是可以与产品的体系划分属性组合在一起进行有意义的分析应用
- 产品维度表中存在着两类的属性
- 商场维度
- 销售面积
- 数值类型的字段,并且是跨商场可相加的
- 但是由于这是商场的一个不变属性,并且大都用作查询分析报表的列标题,所以还是安排在商场维度表中
- 首次开业日和最后一次重修日期
- 其取值来自于定义在前述的日期维度表上的视图
- 采用维度支架加以实现
- 首场开业日期和最终的重修日期一般都是要连接到日期维度表拷贝的关键字,这些日期维度的拷贝通过VIEW结构在SQL进行定义,并且在语义上同基本日期维度相区别
- 销售面积
- 促销维度
- 对商品促销活动的评判因素
- 促销商品的销售分析
- 在促销期间是否出现增长
- 在促销进行之前或者是随后是否减少
- 相邻或者是同类的其他商品的销售是否出现相应的降低情况
- 与促销商品的同类的所有商品的销售是否出现总体增长
- 促销是盈利(考虑促销活动自身的成本)
- 促销商品的销售分析
- 存在多种不同的促销形式
- 降价,广告,展销,
- 每一种类型的促销活动可以单独形成一个促销维度表
- 也可以将所有的促销活动柔和在一个促销维度表种
- 维度的组合
- 参与组合的维度高度相关,组合起来的维度就不会比分开的维度大许多
- 组合起来的维度能够高效的进行浏览
- 维度的分散
- 在用户分开考虑的时候,分开的维度更加容易理解
- 独立维度的管理对于组合维度来说,更加的直接了当
- 不在促销范围之内的商品销售事实应该如何在事实表中表示
- 在促销维度表中定义一个特殊的行
- 在事实表中,所有没有参与促销活动的行(产品销售事实)都引用该特殊的行,以表示该维度只对事实表中的当前行不可用
- 还有一类问题是上述的零售营销模型无法回答的(什么样的促销产品是还没有卖出去的)
- 需要另外一个非事实型事实表来记录每件商品的促销活动
- 促销范围事实表
- 不存在度量指标(仅仅记录各个维成员之间的关系)
- 为每天中的每个商场的每一个促销产品创建一行
- 需要另外一个非事实型事实表来记录每件商品的促销活动
- 对商品促销活动的评判因素
促销关键字(PK) | 1 |
---|---|
促销名称 | |
减价类型 | |
促销媒体类型 | |
广告类型 | |
展览类型 |
五:POS事务编号
- 退化维度
- 维度表为空,具体的维度值直接存放在事实表中
- 事务编号,订单编号,发票编号,提货单编号