Data Vault初探(二) —— 构建及参考原则

来源:互联网 发布:淘宝库存软件 编辑:程序博客网 时间:2024/05/21 18:37
摘自:《下一代数据仓库模型Data Vault的研究及其应用》

        Data Vault模型的构建
        在Data Vault模型中,各个实体组件有着严格、通用的定义与准确、灵活的功能描述,这不但使得Data Vault模型能够最直观、最一般地反映数掘之间内含的业务规则,同时也为构建Data Vault模型提供了一致而普遍的方法。
简单地讲,Data Vault模型是由业务键(Hub)、业务关系(Link)、业务描述(Satellite)组成的。可见,Data Vault很好地实现了从现实世界到信息世界的抽象。所以,使用Data Vault模型进行数据建模与实际的业务设计非常之相似。
        Data Vault模型的建立可以遵循如下步骤:
        1.设计Hub组件
        首先要确定企业数据仓库要涵盖的业务范围;然后要将业务范围划分为若干原子业务实体,比如客户、产品等;然后,从各个业务实体中抽象出能够唯一标识该实体的“键”,该“键”要在整个业务的生命周期内不会发生变化;最后,由该业务键生成Hub组件。
        2.设计Link组件
        Link体现Hub之间的业务关联。设计Link,首先要熟悉各个Hub代表的业务实体之间的业务关系,可能是两个Hub或者也可能多个Hub之间的关系,根据业务需求,这种关系可以是1对1、1对多、或者多对多。
        然后,从相互之间有业务关系的Hub中,提取出代表各自业务实体的业务键,这些业务键将被加入到Link组件中,组合构成该Link的主键。
        在生成Link的同时,要注意如果Hub之间有业务交易数据的话,就需要在Link中保存交易数据,有两种方法,一是采用加权Link,二是给Link加上Satellite来处理交易数据。
        3.设计Satellite组件
        Satallite包含了各个业务实体(Hub)与业务关联(Link)的详细的上下文描述信息。设计Satellite组件,首先要收集各个业务实体在提取业务键后的其他信息,比如客户住址、产品价格等;由于同一业务实体(Hub)的各个描述信息不具有稳定性,会经常发生变化,所以,存必要的时候,需要将变化频率不同的信息分隔开来,为一个Hub提供几个Satellite,然后提取出该Hub的主键,作为描述该Hub的Satellite的主键。
        当业务实体之间存在交易数据的时候,需要为没有加权的Link设计Satellite,也可以根据交易数据的不同变化情况设计多个Satellite。
        4.设计必要的PIT表
        Point—In—Time表是由satellite派生而来的。如果为一个Hub或者Link设计有多个Satellite的话,而为了访问数据方便,就有用到PIT表的可能。
        PIT表的主键也是由其所归属的Hub提取而来,该Hub有几个Satellite,PIT表就至少应该有几个字段来存放各个Satellite的变化对比时间。

        建立Data Vault模型时虑该参照如下的原则:
        ■关于Hub的原则
        口Hub的主键不能够直接“伸入”到其他Hub里面。就是说,不存在父子关系的Hub。各个Hub之间的关系是平等的,这也正是Data  Vault模型灵活性与扩展性之所在。
        口Hub之间必须通过Link相关联,通过Link可以联接两个以上的Hub;
        口必须至少有两个Hub才能产生一个有意义的Link;
        口Hub的键总是“伸出去”的(到Link或者Satellite);
        ■关于Link的原则
        口Link可以跟其他Link相联;
        口Hub和Link都可以使用代理键;
        口业务主键从来不会改变,就是说Hub的主键不会改变;
        口Link可能包含代理键;
        ●关于Satellite的原则
        口Satellite必须是联接到hub或者link上才会有确定的含义;
        口Satellite总是包含装载时间load_dts,从而包含历史数据,并且没有重复的数据;
        口由于数据信息的类型或者变化频率快慢的差别,描述信息数据可能会被分隔到多个Satellite之中去;
0 0
原创粉丝点击