Data Vault 数据仓库模型构建-1
关于Data Vault数据模型
-
Data Vault是一种数据仓库建模方法,用来存储来自多个操作型系统的完整的历史数据。
-
Data Vault方法需要跟踪所有数据的来源,因此其中每个数据行都要包含数据来源和装载时间属性, 用以审计和跟踪数据值所对应的源系统。
-
Data Vault不区分数据在业务层面的正确与错误, 它保留操作型系统的所有时间的所有数据, 装载数据时不做数据验证、清洗等工作, 这点明显有别于其他数据仓库建模方法。
-
Data Vault建模方法显式地将结构信息和属性信息分离, 能够还原业务环境的变化。 Data Vault允许并行数据装载,不需要重新设计就可以实现扩展。
Data Vault是面向细节的,可追踪历史的,一组有连接关系的规范化的表的集合。 这些表可以支持一个或多个业务功能。
它是一种综合了第三范式(3NF)和星型模型优点的建模方法。
其设计理念是要满足企业对灵活性、 可扩展性、 一致性和对需求的适应性要求, 是一种专为企业级数据仓库量身定制的建模方式
Data Vault 模型各类表说明
对于Data Vault主要分为3种类型的表:中心表,链接表,卫星表(附属表)。
中心表
对于构建Data Vault模型的,第一件事就是构建中心表,中心表示DV模型中的核心。如果设计得当,将可以兼容整合各种数据源。
为了达到这点,就应该假设系统源是不可知的,所以中心表应该依赖于实际的业务逻辑标识,而不是使用代理键。
中心表的表结构:
字段 | 说明 |
---|---|
hub_key | 代理主键,通过对业务主键进行MD5计算所得 |
business_key | 业务主键,唯一标识业务主键,来之源系统 |
load_dts | 数据第一次转载的时间,只记录第一次转载时间 |
rec_src | 数据源系统 |
链接表
链接表的目的是为了灵活性和易扩展,通过链接表可以在不改变原有的构架和转载条件下进行扩展。在Data Vault模型中所有的
关系和事件都是通过链接表来表示。在DV模型中,中心表没有外键,对于中心表间的连接是通过链接表。所以连接表至少要有两个
父中心表。
链接表表结构:
字段 | 说明 |
---|---|
link_key | 代理主键,使用相关的父Hub表的业务主键拼接后计算MD5值 |
hub_keys | hubs的代理键 |
hub_business_keys | hubs的业务主键 |
load_dts | 第一次装载数据的时间 |
rec_src | 源系统信息 |
卫星表(附属表)
卫星表示所有的原始数据系统,在这个表中也捕获数据的变化,所以这种表有点像维度模型中的渐变维度表。
一个附属表总有一个且唯一一个外键引用到中心表或链接表。
字段 | 说明 |
---|---|
sta_key | 代理主键,相关的hub或link表的主键和数据载入时间的MD5值 |
hub_or_link_key | 父hub或Link的代理主键 |
attribute_columns | 属性数据列 |
hash_diff | 各列拼接后的MD5值计算 |
sat_load_dts | 数据装载时间 |
sat_rec_src | 数据来源信息 |
总结
表 | 关键字 | 作用 |
---|---|---|
Hubs中心表 | business_key业务主键 | 使其以业务为导向, 并允许跨系统集成 |
Links链接表 | Associations/Transactions关联和转换 | 提供了在无需重新设计的情况下吸收结构和业务规则更改的灵活性 |
Satellites附属表 | Descriptors描述性信息 | 提供在任何想要的时间间隔内记录历史记录的适应性, 以及对源系统的无可争辩的可审核性和可追溯性 |
总之, 通过Data Vault模型可以获得敏捷性、灵活性、适应性、可审核性、可扩展性.
更多内容信息 https://blue-shadow.top