前段时间和一家互联网创新企业的数据架构师聊天,说他们正准备开始用Data Vault的模型进行数据仓库的建设,他们有一套维度建模的集市,但是维度建模的特点是更贴业务,但是对于数据的存储不是很友好,对于数据友好,他们是想在维度集市之前,加一层Data Vault的数据层。
其实这个数据架构也就很明白啦。ER来说太突出从上往下的关系,但是现在的创新企业的数据架构的关系还不明确,不好去表达,那Data Vault 是一个很好的选择,综合了ER和DM。同时还是保留原有的维度集市进行数据分析。这说明该企业已经有了一定的数据结构的大方向,只是细节还是不确定,那么Data Vault就是一个很好的载体,也是一个很好的解决方案。
有一点是需要探讨的是,习惯了维度建模的架构师,怎么去建立好这个数据层呢?有一点无法逾越的是,维度建模强调业务,就是有用的放在一块,如果面向数据,不可避免的是要对数据进行整理,那整理就会有类似主题的概念,所以个人认为Data Vault要有一个弱主题的形式存在,不然太散,Hub太多,不好维护。当然也不要像是ER那种强主题形式,也不适合。还有一点就是用ER地有一个特点就是业务逻辑简单,但是实际场景复杂,而DM是另外一方面,业务逻辑多变,但实际场景简单。但是当DM这一方,想去尝试多个场景的,同时业务逻辑会更多变时,那维度模型似乎就是支撑不了。因为应付一个场景的多变的需求还可以,和同时应付多个场景的多变需求,而且多个场景的数据之间还有关联,那么就需要一个能够体现关系的模型出现。Data Vault是一个很好的选择。
总结一下,数据越是需要反应关系,其路径就是如图所示,一步步递进,最终是ER。