伙伴云客服论坛»论坛 S区 S客户管理 查看内容

0 评论

0 收藏

分享

数据仓库工具箱-第6章-订单管理

文章目录

    重要专业名词含义一、订单管理总线矩阵二、订单事务
      2.1 事实表规范化2.2 日期维度(维度角色扮演)
        2.2.1 角色扮演与总线矩阵
      2.3 产品维度
        2.3.1 产品维度共同特征2.3.2 维度的层次构造2.3.3 规范化与反规范化
      2.4 客户维度
        2.4.1 单一维度表与多维度表2.4.2 应用于客户/代理分配的无事实的事实表
      2.5 交易维度(todo)2.6 针对订单号的退化维度2.7 杂项维度
    三、发票事务(todo)
      3.1 作为事实、维度或两者兼顾的效劳级性能3.2 利润与损益事实3.3 审计维度
    四、用于订单整个流水线的累积快照
      4.1 延迟计算4.2 多种度量单位4.3 超越后视镜
    五、小结


重要专业名词含义

代理键:
(1)代理键是系统生成,自身无意义,数仓中不允许一个表中只要代理键而没有自然键。
(2)代理键不能暴露给用户,用于join关联使用,不用于where挑选使用
(3)自然键与代理键相反,是在自然(真实)生活中唯一确定一个事物的标识。身份证号(理论上,假设没有因技术原因形成的反复)就是一个自然键,用于确定一个人。
操作型数据: 业务侧数据,ODS层
分析型数据: 数仓的数据

一、订单管理总线矩阵

数据仓库工具箱-第6章-订单管理-1.png

列:代表维度
行:代表业务过程
X :代表该行业务过程需要该维度

二、订单事务

2.1 事实表规范化

书中描绘: 保留单一的、通用的事实数量以及维度,用于区分度量类型。规范化后的表是每个度量每订单明细一行,而不是更自然的每个订单明细事件一行。度量类型维度指明事实是什么度量(eg:总的订单数量、订单折扣数量还是其他度量)。
通俗说法: 事实表规范化指,如一个事实表有5个维度,7个事实,那么规范化之后变成了7行,每行5个原来的维度一个度量类型维度和1个事实,即把7个事实分为7行。
缺点:
(1)行数会增加。规范化事实,需要以事实表中行数量乘以事实类型数量。
(2)不方便在事实间执行算数函数。(例如计算成交量/意向金支付量),事实在同一行方便计算,在不同行计算困难。
优点:在第14章中,会讨论一种可以使度量类型维度更有意义的环境。
2.2 日期维度(维度角色扮演)

什么维度角色扮演: 某个维度在单一事实表中同时呈现屡次时,会呈现维度模型的角色扮演。(事实表中同时呈现两个日期列,意向金支付日期、交车已定日期,需要关联同一个日期维度表的不同视图/别名)。
在总线矩阵中文档化角色扮演的常见技术是在矩阵的一个单元中标明多种角色,如图6-4所示。
2.2.1 角色扮演与总线矩阵

数据仓库工具箱-第6章-订单管理-2.png

在总线矩阵中文档化角色扮演的常见技术是在矩阵的一个单元中标明多种角色,如图6-4所示。
2.3 产品维度

2.3.1 产品维度共同特征

(1)大量冗长的、描绘性的列
(2)一个或多个属性层次,加上没有层次的属性。(城市、省份)
(3)重新建立操作型代码到代理键的映射
整合不同业务系统中的产品到数仓中,不同业务系统中的相同产品的自然键假设不同,需要数仓来维护一张多个业务系统与数仓的产品映射表
(4)增加描绘性属性值以扩大或交换操作型代码
交换:产品维度列是查询约束和报表标识的唯一来源,因而必需具有易读性,模糊的缩略词或纯数字编码都不适宜。
扩大:单一列中包含多个缩略词的代码应该被扩展或分割成不同的属性。
(5)检查属性值,确保没有拼写错误、不可能存在的值、多变量等
(6)将属性定义、解释、元数据来源文档化
2.3.2 维度的层次构造

维度层次:
维度层次是描绘维度内部构造的属性集合,它刻画了维度内部不同成员间的相对关系。在多维数据库中,每个维可以有其自身的维度层次构造。考虑这样一个商业销售用多维数据库,它含有4个维度,分别为产品维,客户维,时间维,仓库维。对于时间维,可以有“年–季度–月份”这样一个层次,而对于产品维,也可以有“产品类别–品牌–产品名”这样一个层次。
层次构造有时用金字塔构造来表示,唯一例外是所有成员都在同一个层次。如金字塔构造一样,在塔顶,即维度层次较高方,其成员数量比塔底,即维度层次较地方的成员数量要少。如在一个地理维度中,它包含层次“洲—国家—城市”,“欧洲”属于“洲”层次,“法国”属于“国家”层次,而“巴黎”属于“城市”层次。显而易见,属于“洲”层次的成员数量少于属于“国家”层次的成员数量,而属于“国家”层次的成员数量亦少于属于“城市”层次的成员数量。同时,层次越高,描绘性越模糊,层次越低,描绘性越细致。如上述所提及地理维度,“欧洲”的描绘性比“法国”的描绘性模糊,而“法国”的描绘性也比“巴黎”的描绘性要模糊。
维度建模如何处置:
(1)第一种是将所有维度层次构造全部扁平化、冗余存储到一个维度表中,比如商品的一至三级类目分别用三个字段来存储,品牌等的处置也是类似的;
(2)第二种是新建类目维度表,并在维度表中维护父子关系。
2.3.3 规范化与反规范化

规范化: 当属性层次被实例化为逐个系列维度,而不是单一的维度时。大多数联机事务处置系统(OLTP)的底层数据构造在设计时采用此种规范化技术,通过规范化处置将反复属性移至其自身所属的表中,删除冗余数据。
这种方法用在OLTP系统中可以有效防止数据冗余导致的不一致性。比如在OLTP系统中,存在商品表和类目表,且商品表中有冗余的类目表的属性字段,假设对某类目停止更新,则必需更新商品表和类目表,且由于商品表和类目表是一对多的关系,商品表可能每次需要更新几十万甚至上百万条记录,这是不合理的。
对于商品维度,假设停止规范化处置,将表现为如下图所示。

数据仓库工具箱-第6章-订单管理-3.png

反规范化: 将维度表的属性层次合并到单个维度中的操作被称为反规范化。分析系统的主要目的是用于数据分析和统计,如何更方便用户停止统计分析决定了分析系统的优劣。采用这种形式,用户在统计分析的过程中需要大量的关联操作,使用复杂度高,同时查询性能很差;而采用反规范化处置,则方便、易用且性能好。
对于商品维度,假设采用反规范化处置,将表现为如下图所示。

数据仓库工具箱-第6章-订单管理-4.png


2.4 客户维度

2.4.1 单一维度表与多维度表

客户维度中另一个潜在的层次是制造商销售组织。设计者有时会疑问销售代理属性是应该单独建立一张维度表还是合并到客户维度中去。假设销售代理和客户以一对一或多对多关系高度相关,则可以将销售代理属性合并到客户维度中,这样建立的维度可以更方便的阅读。
(1)假设多对多关系是一种例外,则应该坚持将销售代理属性合并到客户维度中去,假设多对多关系常见,则应该为销售代理和客户分别建立维度表。
(2)假设销售代理和客户维度的关系会随着时间的变化而变化,或者这种关系会受到其他维度影响,最好将销售代理和客户建立不同的维度表。
(3)假设客户维度非常宏大,最好为销售代理单独建立维度表,因为假设合并到一起,在停止销售代理分析时要涉及到海量的客户维度。
(4)当其他的业务过程需要涉及销售代理时,需要将销售代理单独建立维度表,将合并后的客户维度单独用于订单业务过程。
(5)假设没有特殊原因,强迫将两个不同维度合并成一个维度是没有意义的。不要为了合并而合并。
2.4.2 应用于客户/代理分配的无事实的事实表

2.5 交易维度(todo)

2.6 针对订单号的退化维度

什么是退化维度: 就是那些看起来像是事实表的一个维度关键字,但实际上并没有对应的维度表,就是维度属性存储到事实表中,这种存储到事实表中的维度列被称为退化维度。
因为处于事实表中的订单号没有与维度表连接,所以它是一种退化维度。
优点: 简化维度数据仓库的形式。因为简单的形式比复杂的更容易理解,也有更好的查询性能。(减少事实表和维度表的关联)
2.7 杂项维度

书中描绘: 事务型商业过程通常产生一些列混杂的、低粒度的标识和指示器。与其为每个标识或属性定义不同的维度,不如建立单独的将不同维度合并到一起的杂项维度。这些维度,通常在一个形式中标志为事务型概要维度,不需要所有属性可能值的笛卡尔积,但应该包含实际发生在源数据中的合并值。
形象的解释: 就是将一些具有有限枚举值的字段值拼接在一起作为一行或者是多个字段的可能值不停止拼接而是作为多列组合,最后在杂项维度行中呈现。

数据仓库工具箱-第6章-订单管理-5.png


三、发票事务(todo)

3.1 作为事实、维度或两者兼顾的效劳级性能

3.2 利润与损益事实

3.3 审计维度


四、用于订单整个流水线的累积快照

4.1 延迟计算

4.2 多种度量单位

4.3 超越后视镜


五、小结

回复

举报 使用道具

相关帖子
全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

恍若晨曦
注册会员
主题 14
回复 22
粉丝 0
|网站地图
快速回复 返回顶部 返回列表