基本观点
每一种建模都代表着一种观察世界的角度;这种角度的差异很难说什么好坏对错之分。
关于数据
数据本质是信息,数据之所以有价值是因为其中包含着我们想要的信息,不包含信息的数据没有价值。
关于信息
一条信息必然是关于某(个)些实体的;因为世界是由各种各样的实体构成的,不关于任何实体的信息即使存在也没有现实意义。
关于实体
实体是指客观世界存在的事物(不管是实际的,还是抽象的)。
苹果、友谊、用户都可以指代某种实体。
实体之间的关联与关联实体
任何两(几)个实体之间的关联都可以作为一个实体来看待,我们可以称之为关联实体。
实体的标定
这里的“标定”指的是被确定、被找出来。
为什么要标定:
一个可以被分析的实体,首先必须能够被标定。既然都不能确定要分析的是哪一个,自然也就无从分析了。
用户可以通过用户ID来标定,所以可以进行分析。
如何标定:
普通的实体可以通过不可变属性的一部分(一般是ID)来标定;
如果不可变属性不能标定实体,那么此类实体不可以分析。
关联实体可以通过被关联的实体的组合来标定(类似于联合主键)。
在整个数据仓库内对于同一个实体的标定必须是一致的。
企业实体总线
数据仓库的一个核心的目标是实现企业数据的整合。
Kimball通过一致性维度实现了这个目标,我们一般称之为企业总线。
实体分析建模法为了实现这个目标可以采用类似的方法,我们可以称之为企业实体总线。
实体分析的几个方面
这里的实体包括关联实体。
下面的几个方面,实际上是对关于实体的信息的分类。
实体的属性和状态(it is)
不变属性
不可以(能)改变的属性。
不可变属性必须能够标定实体。
有些ID可以作为不可变属性,有些则不能,这里参考Kimball的维度处理技术。
可变属性
可以(能)改变的属性或状态。
实体的行为记录(it did)
明细表;对于实体的行为的细粒度的记录。
关于实体的统计(group by)
对于所有时间
快照表;对于所有时间的聚合统计实际上就是快照表。
对于某一段时间
聚合表。
关于实体的高阶分析
对于以上的基础数据,应用高阶的算法的结果。
组织层次
数据接入层
原始数据的原样接入。
原始数据一定能够体现某个实体的行为,或者某些实体之间的关联。
数据转换层
在数据转换层,对于每一份数据,要做两件事:
1. 分析数据中所包含的实体(能进入这一层的数据一定要包含企业一致性实体)。
2. 对于实体的一致性标定。
一般来说这一层的数据是明细数据,而且已经实现了整合。对应到实体分析中的实体的行为记录(it did)。
实体基础信息,基础统计层
在这一层,
第一, 更新实体的属性和状态(it is)
第二, 实现关于实体的基础统计,这里面包含聚合表和快照表。
这一层已经具有价值产出的能力,可以输出实体的状态信息及快照信息。
实体高阶分析层(标签、分类、聚类)
在这一层应用上一层的产出,应用高阶算法进行深入的分析和挖掘。
对于传统多维分析的支持
此架构可以看成是一种宽松的ER模型,基于第二层(数据转换层)、第三层(实体基础信息,基础统计层)和第四层(实体高阶分析层)可以实现对于传统多维分析的支持,同时可以提供更加丰富的维度;不过可能需要额外的转换来生成星型模型。
对于机器学习的支持
此架构为机器学习的使用提供了极大的空间,这是优势所在。
对于非结构化数据的支持
对于非构化数据同样适用于上面的处理方法,这是另一点优势。
总结
总的来说,我觉得实体建模法是一种松散的模型,建模难度很小。
这种松散的特质可能更加符合大数据平台,因为计算资源和存储资源都不是问题。