MaxCompute大数据实践,电商数据仓库选择雪花还是星型模型?

作者:王永伟

规范化和反规范化

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

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

对于淘系商品维度,如果采用雪花模式进行规范化处理,将表现为如下形式:

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

对于淘宝商品维度,如果采用反规范化处理,将表现为如下形式:

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

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

更多数仓理论请关注:《 大数据之路:阿里巴巴大数据实践

云栖团队博客稿源:云栖团队博客 (源链) | 关于 | 阅读提示

本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 科技动态 » MaxCompute大数据实践,电商数据仓库选择雪花还是星型模型?

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录