数据建模:维度设计基础知识(下)

上一篇我们介绍了什么是维度,在维度建模中,我们将度量称作为“事实”,将环境描述为“维度”,用于分析事实所需要的多种环境,本篇文章我们继续介绍维度设计基础知识。

数据建模:维度设计基础知识(下)

维度的层次结构

维度中的一些描述属性以层次方式或一对多的方式互相关联,可理解为包含连续主从关系的属性层次。层次的最底层代表维度中描述最低级别的详细信息,最高层代表最高级别的概要信息。维度常常有多个这样的嵌入式层次结构,比如某宝商品维度,有卖家、类目、品牌等。商品属于类目,类目属于行业,其中类目的最低级别是叶子类目,叶子类目属于二级类目,二级类目属于一级类目。

在属性的层次结构中进行钻取是数据钻取的方法之一。钻取思路可以参考某宝,比如统计2020年“双十一”的下单GMV,得到一行记录;沿着层次下钻,添加行业,得到行业示例个数的记录数;继续沿着层次下钻,添加一级类目,得到一级类目示例个数的记录数。这样,就通过向报表中添加连续的维度细节级别,实现在层次结构中进行钻取。

规范化和反规范化

当属性层次被实例化为一系列维度,而不是单一维度时,被称为雪花模式。大多数联机事务处理系统(OLTP)的底层数据结构在设计时采用此种规范化技术,通过规范化处理将重复属性移至其自身所属的表中,删除冗余数据。

这种方法在OLTP系统中可以有效避免数据冗余导致的不一致性。比如在OLTP系统中,存在商品表和类目表,且商品表中有冗余的类目表的属性字段,假设对某类目进行更新,则必须更新商品表和类目表,且由于商品和类目是一对多的关系,商品表可能每次需要更新几十万至上百万记录,这是不合理的。而对于联机分析处理系统(OLAP)来说,数据是稳定的,不存在OLTP系统中存在的问题。

数据建模:维度设计基础知识(下)

将维度的属性层次合并到单个维度找那个的操作称为反规范化。分析系统的主要目的是用于数据分析和统计,如何更方便用户进行统计分析决定了分析系统的优劣。采用雪花模式,用户在统计分析的过程中需要大量的关联操作,使用复杂度高,同时查询性能很差;而采用反规范化处理,则方便、易用且性能好。

对于商品维度,如果采用反规范化处理,从用户角度简化了模型,并且使数据库查询优化器的连接路径比完全规范化的模型简化许多。反规范化的维度仍包含与规范化模型同样的信息和关系,从分析角度来看,没有丢失任何信息,但复杂性降低了。

数据建模:维度设计基础知识(下)

采用雪花模式,除了可以节约一部分存储外,对于OLAP系统来说没有其他效用。而现阶段存储的成本非常低。处于易用性和性能的考虑,维表一般是很不规范化的。实际应用中,几乎总是使用维表的空间来换取简明性和查询性能。

一致性维度和交叉探查

构建企业级数据仓库不可能一蹴而就,一般采用迭代式的构建过程。而单独构建存在的问题是形成独立型数据集市,导致严重的不一致性。Kimball的数据仓库总线架构提供了一种分解企业级数据仓库规划任务的合理方法,通过构建企业范围内一致性维度和事实来构建总线架构。

数据仓库总线架构的重要基石之一就是一致性维度。在针对不同数据域进行迭代构建或并行构建时,存在很多需求是对于不同数据域的业务过程,或者,同一数据域的不同业务过程合并在一起观察。比如对于日志数据域,统计了商品维度的最近一天的PV和UV;对于交易数据域,统计了商品维度的最近一天的下单GMV。现在将不同数据域的商品的事实合并在一起进行数据探查,如计算转化率等,成为交叉探查。

如果不同数据域的计算过程使用的维度不一致,就会导致交叉探查存在问题。当存在重复的维度,但维度属性或维度属性的值不一致时,会导致交叉探查无法进行或交叉探查结果错误。

维度一致性的几种表现形式

1)共享维表。

2)一致性上卷,其中一个维度的维度属性是另一个维度的维度属性的子集,且两个维度的公共属性结构和内容相同。

3)交叉属性,两个维度具有部分相同的维度属性。

总结

以上就是笔者关于——“数据建模:维度设计基础知识(下)”的分享内容,希望对大家有所帮助。

相关阅读:

数据建模:维度设计基础知识(上)

业界动态

广告平台和广告主是如何互相“窃取”数据的(下)

2020-12-3 8:56:12

业界动态

优化师面试:最常见7大问题+回答模版

2020-12-3 9:05:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索