四、维度建模实践案列-零售业务(中)

本文介绍了在零售销售场景中,如何设计和构建日期、产品、商店和促销维度表,强调了规范化处理、扁平化多对一层次、地理属性的多维度汇总以及促销策略的重要性。通过实例展示了维度表在事实表分析中的应用和扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要围绕维度表设计,关注健壮的属性细节;

3.1 日期维度

日期维度是一张特殊的维度表,几乎所有维度模型中,都有日期维度;

与其他维度不同,日期维度可以提前建立,可以按行表示过去、现在、将来的日期,日期维度不会太大,就算包含20年的日期维度,也仅仅约7300行;

通常情况下,时间维度表的数据并不是来自于业务系统,而是手动写入,并且由于时间维度表数据的可预见性,无须每日导入,一般可一次性导入一年的数据。

案例,具体时间维度根据所在行业需要调整:

在这里插入图片描述

开发提示:在开发中,很多情况需要计算某个财务周期、节假日、某个周末、某个时间差等,直接使用sql函数不方便,可能很多函数不支持,那提前把这些维度数据放在维度表中,直接使用就变得很方便;

注意:

  • 文本属性的标识和标志

    促销活动中,如果想知道节假日与非节假日促销效果,需要关联维度表,日期维度假日标识可能就是两个简单的标识(Y、N),从标识来看不能马上知道具体含义,简化这个流程,将编码替换成节假日/非节假日,直接简单明了不是很好吗?

    类似的套路可以用在工作日、周末等中;

  • 当前与相对日期属性

    维度中,大多数日期维度不应该更新,比如IsCurrentDay表示当前时间,需要每天更新,还有某些属性具有滞后性,比如0表示今天、-1表示昨天、+1表示明天等;这些属性如果作为维表物理存储与维护,耗时耗力;这类属性适合作为计算列而不是作为物理列存储,这些滞后列没有存在维护的必要;

  • 将当天时间作为维度或事实

    在数据分析中,如果你基于当前时间按照分钟级别维护到维度表,基于维度表每隔1分钟做一些汇总操作,最终的维度表将会变得很大,可以选择把当天时间作为维度表单独维护;

4、产品维度

产品维度其实就是表示每个SKU的描述性信息属性

4.1扁平化多对一层次

下图就是一张常见产品维度表属性字段
在这里插入图片描述

下图是笔者以前公司产品维度字段属性
在这里插入图片描述

从维表字段来看,表中包含SKU大多数描述信息,单个SKU可以上卷到品牌,品牌上卷到类别,类别分成多个层次;

产品下卷到平台属性、销售属性;每个层次都存在多对一的形式,比如多个产品对应一个品牌;

在维度表中,产品品牌、SKU描述等这些基本信息,具有唯一性;

如果产品很多,表中有大量重复属性;如果按照规范化方式设计维度表,这些冗余信息会被单独放在另一张表,通过关联取得;这种设计会造成性能损耗(雪花模型);

将重复低粒度值保存在主维表是一种基本的维度建模技术,规范化这些值将其放在不同表将难以实现简单化与高性能的主要目标

4.2下钻维度属性

在维度模型上下钻只不过是在表头中从维度表获取特定行头,上卷移除表某些行头,下钻在表中添加更多行头

案例:
在这里插入图片描述

5、商店维度

商店维度描述零售连锁的每个门店

5.1多层次维度表

这里商店维度是本案列中主要的地理维度,每个商店在不同地址,可以按照地理属性对商店进行上卷操作,比如按照邮编、县区、省、国家等多个维度进行汇总操作;

在一个维度表中表示多个层次并不常见,跨多个层次的属性名称和值应该具有唯一性;

本案列中商品维度:
在这里插入图片描述

6、促销维度

促销维度描述销售商品促销条件

促销条件包括临时降价、报纸广告、礼券广告等

促销维度对一个公司来说很重要,作为一个管理者总是想知道公司那些促销渠道促进产品销售;

管理者还想知道促销产品在促销期间是否获得较大效果?

促销品促销前后销售情况如何?

促销是否有利可图?

同时采用多种促销机制是否有助于提升产品销售?

促销活动之间是否有影响?

下面是促销维度表:
在这里插入图片描述

7、实际销售模式

通过上面结合实际业务分析,可以得到很多类型的维度表,下面事实表结合维度表,得到大宽表,基于宽表,你可以在不同维度做上卷、下钻操作;
在这里插入图片描述

从图就能看到维度建模的简洁之处,如果随着业务发展有新的维度出现,新维度添加很方便,可以把相这些新属性添加到某张已经存在的表,或者单独建立一张独立的维度表,和事实表关联;

小结:本节主要结合实际业务,简述如何设计各种不同的维度表;本节主要围绕零售销售事实,设计了产品维度、促销维度、商店维度,其他维度设计思路相同,这里不一一简述;

下一小节将继续讨论事实表相关的案列
查看更多内容可关注微信公众号
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值