工业数据分析 | 范式建模和维度建模,你pick谁?
来源: | 作者:pmod6d781 | 发布时间: 2022-03-04 | 703 次浏览 | 分享到:


最后,范式建模也会有一些门槛,即数据模型要满足三范式的要求,这需要一定的数据库模型理论和技能基础,这也是范式建模体系最终不被采用的重要因素之一。但是笔者相信,在工业数据智能领域,最大的门槛不是特定的数据库技术,而是工业知识、IT知识和数据分析知识的融合。在范式建模过程中,业务专家、IT专家、数据分析专家依据业务规则对数据模型进行反复澄清讨论,由此产生的信息交流和最后产出的数据模型会帮助整个团队建立共同业务认知和语言体系,这对后续数据分析和应用的研发是一个重要的基础。


维度建模

在维度建模(Dimensional Modeling)中,数据被分为事实和维度两种类型。事实指在业务过程中发生的一次度量,而维度指这次度量发生的上下文。一次度量(事实表中的一行)可以包含多个度量结果和多个与之关联的维度信息。


在工业领域中,来自于DCS或者SCADA系统中的设备时序数据是最典型的事实数据之一:PLC的一次采样会产生多条测点数据,例如温度、压力等,同时伴随这条事实数据的至少有两个维度——时间戳和点位号。另一个工业产品制造领域常见的事实数据是生产过程中的质检数据:一个半成品或者成品在检测环节经过特定检测手段会产生的一次检测结果记录。检测的指标,例如尺寸、重量等属于度量数据;而被检测的产品ID、检测程序、检测机台等属于维度数据。



在事实表中,维度列的取值只是一个单值(标量),但背后通常代表的是一个业务实体(这也是为什么很多维度列以某某ID命名),我们称其为维度实体。一个维度实体又可以和其他的实体产生联系。例如上面的例子中,设备时序数据表中的“点位号”代表的“点位”可以抽象为一个对象,除了点位号(ID)之外还有度量单位、量程、物理意义等属性。通常多个点位又同属于一台设备,所以一个点位对象又和一个设备对象发生关联,等等。根据事实表和维度表之间组织成的形状不同,维度模型分为星型模型(Star Schema)和雪花模型(Snowflake Schema)两种类型。


星型模型是以事实表为中心,所有的维度直接和事实表相关联,维度和维度之间没有关联,维度表围绕在事实表周围成星状分布。

雪花模型以星型模型为基础扩展,允许维度表和维度表之间继续产生关联关系,也就是说,事实表可以通过维度和维度的关联获得间接维度。


同一个问题,既可以用星型模型组织数据,也可以用雪花模型组织数据,那么这两种模型的优缺点分别是什么呢?我们用设备时序数据为例进行对比说明。



上图是设备时序数据的星型模型组织。首先,点位号是设备时序数据的一个维度,通过一个点位实体类型来记录点位对象的其他属性;时间戳是一个维度但是一般在工业数据分析中,时间戳直接参与运算,并不会像销售数据那样,时间是小时、天、月、年等自然时间段进行分析聚合的,因次不用进行对象化处理。接下来,假设分析课题要在设备的粒度上对监测数据进行聚合,例如存在多个点位是对同一设备组件的冗余测量,我们需要计算他们的平均值。针对这个问题,星型模型方式需要重新处理事实表,增加一个“设备ID“维度,并且与设备实体类型进行关联。