维度建模实践一例 (一) 维度还是事实

本文涉及的产品
大数据开发治理平台DataWorks,Serverless资源组抵扣包300CU*H
简介: 成本和单价是产品的维度还是事实表中的事实?来看看我对这个问题的思考与分享吧。

1. 问题概述

最近在做工业项目模型设计评审的时候,遇到了一个设计问题,有点纠结和其他同事交换了意见,思考了过后,也想跟大家分享一下。

问题:“成本”和“单价”是一个销售实体的事实,还是产品维度的属性?

关于这个问题,最开始是在讨论成本计算的时候发现的。与教科书中零售场景不一样的是,工业上某个产品的成本是要计算出来的。而《维度建模权威指南》书中的成本是事实表的一个事实。如下图所示:

image.png

在另外一个例子中,单价、成本都是销售实体中的事实,如下图所示:

image.png

事实部分翻译如下:

Sales Quantity -- 销售数量

Regular Unit Price  -- 常规单价

Discount Unit Price -- 折扣单价

Net Unit Price -- 净单价

Extended Discount Dollar Amount  -- (扩展-总)折扣金额

Extended Sales Dollar Amount -- (扩展-总)销售金额

Extended Cost Dollar Amount -- (扩展-总)成本金额

Extended Gross Dollar Amount -- (扩展-总)毛利润金额

如上图所示,一般我们零售场景中商品的单价是相对固定的,零售商会有一些折扣(线上商家的折扣应该会更复杂),所以,单价、成本是固定的利润是与订单相关的。我们可以从上述事实表中获得一些事实:

① 销售数量、销售金额、成本金额、毛利润金额都是可加事实

② 单价是一个不可加事实

在零售的销售分析场景,单价与成本是作为销售实体的事实。而在我现在遇到的场景,我们遇到的第一个场景是分析产品的成本与价格。

2. 成本与单价的本质

抛开分析场景,我思考了成本和单价的本质,在销售这个事实中单价和成本本质上是产品的属性零售的场景中,销售的单价是商品的单价,销售的成本是是商品的成本。所以,单价和成本就是商品的属性。

但是为什么我在《维度建模权威指南》的书中看到的产品维度都没有这两个属性呢?我还特地去搜了一下内网的dataworks数据地图上的产品、商品的维度表,发现确实有很多维度表都没有单价和成本两个属性,但是也有一些商品维度表是有这两个属性的。

为什么自己会觉得这两个表中的事实并不是销售这个事实表中的事实呢?思考过后我终于意识到,我忽略了分析的需求。缺乏业务认知的我意识不到商品的成本和单价的变动,我错误的忽略了这两个事实的分析需求。但是作为商品生产和经销商,价格和成本的变动是时时刻刻的。所以,就有分析单价和成本这两个事实的需求。

这就是为什么大部分场景,商品维度表中都没有单价和成本。因为这两个事实要么在“销售事实表”中,要么在其他“商品分析事实表”中。而这些事实表中的商品的维度就不会有单价和成本了。

2. 事实表的设计

通过上面的思考,我意识到了一个问题:商品的单价、成本本身就是一个事实只是成本是通过一系列的复杂计算获得的一个事实,其本身是根据原材料的成本、制造成本、运输成本等多种因素计算而来。而且价格本身又与成本有一定的强关联性。

我们通过在销售这个业务过程中去分析单价和成本这两个事实,说明销售这个业务过程中分析人员会关注客单的商品和成本。而且,在销售这个业务过程对单价和成本的分析主要是关乎销售这个过程,这个业务过程可能是一个企业业务分析中最核心和关键的事实。

我们其实可以根据对产品本身的分析需求构建一个商品定价业务过程的事实表,这个业务过程比商品销售更简单。而且对于我参与的这个项目来的客户来说,这是一家第一产业工业企业,其生产规模非常大。订单中商品的种类相对零售这种销售场景,其实是非常少且相对固定的,其成本和单价是每天进行一次计算和定价。

所以,我在思考过后,建议还是保留一个商品定价的事实,这是销售事实前的业务过程。在商品定价事实中有商品的成本计算相关的事实、单价等。另外在销售事实中,仍然会保留成本和单价这两个事实。对这个设计的解释,我认为销售业务过程中的单价和成本本身就是销售业务过程中的事实,但是追求其来源是产品定价中的事实。

3. 总结

谈及整个过程,我认为最核心的是找到我们的业务需求是什么。例如这个项目的场景中,对商品的成本和定价的分析本身是与企业生产资料相关的。而在这个企业的销售场景,在这里去分析产品的成本和定价其实是有点多余的,销售业务过程核心分析的还是销售本身。因为本身对一个产品品种不多,每天一个成本和定价的情况,

我在最开始之所以被困扰,就是我忽略了分析的本质,错误的看待产品的定价这个事实,选择性的视而不见。但是当我思考过后,重新看待分析的需求,我就不再有这个疑问。

通过这件事,我认为在做模型设计的时候,一定要尽可能的去参考一些前人对这些模型的设计。因为我们在初步进入一个行业的时候,对这些新行业的业务的理解都是有欠缺的,都是逐步去学习理解的。参考这些成熟模型,就会让你有了一个参照物,避免走入误区。再就是一定不要放弃思考,如果我一开始就以书中的参考模型为原型去设计,或者就是把成本和单价放到产品维度中,我就不会对这个设计有更深的理解。

最后感谢与我一起讨论这个问题的本质的同事们!谢谢大家!

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标  通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群  企业数据仓库开发人员  大数据平台开发人员  数据分析师  大数据运维人员  对于大数据平台、数据中台产品感兴趣的开发者
目录
相关文章
|
存储 架构师 Java
架构思考的主要维度
架构思考的主要维度
|
存储
大数据分析基础——维度模型
image.png 1基本概念 维度模型的概念出自于数据仓库领域,是数据仓库建设中的一种数据建模方法。维度模型主要由事实表和维度表这两个基本要素构成。
2651 0
|
5月前
|
SQL 存储 关系型数据库
技术心得记录:数仓建模方法之范式建模、ER实体建模、维度建模
技术心得记录:数仓建模方法之范式建模、ER实体建模、维度建模
113 0
|
存储 数据挖掘 关系型数据库
数仓学习---6、数据仓库概述、 数据仓库建模概述、维度建模理论之事实表、维度建模理论之维度表
数仓学习---6、数据仓库概述、 数据仓库建模概述、维度建模理论之事实表、维度建模理论之维度表
|
6月前
维度建模-2
维度建模-2
83 4
|
6月前
|
存储 数据挖掘
维度建模-3
维度建模-3
130 3
|
6月前
|
存储 数据建模
维度建模-1
维度建模-1
64 1
|
6月前
|
数据挖掘 数据库
离线数仓6.0--- 数据仓库 ER模型-范式理论,维度模型、维度建模理论之事实表、维度建模理论之维度表
离线数仓6.0--- 数据仓库 ER模型-范式理论,维度模型、维度建模理论之事实表、维度建模理论之维度表
283 0
|
DataWorks
维度建模实践一例 (一) 维度还是事实
成本和单价是产品的维度还是事实表中的事实?来看看我对这个问题的思考与分享吧。
487 0
维度建模实践一例  (一) 维度还是事实
|
人工智能 自然语言处理 数据管理
分析的四个维度
分析的四个维度