敏捷数仓模型设计

随着敏捷开发的发展,Devops成为每个组织的事实上的标准-我们能否使数仓开发敏捷起来?让我们研究一下数仓的核心,数据建模(主要是Data Vault模型)。 Data Vault模型是否有助于数仓的健壮性和可扩展性?在讨论这些要点之前,这里有一个快速的背景知识。

 

Data Vault是一种建模方法,由Hubs(业务键),Links(关系)和Satellite(上下文)构成,基于这种方法设计的数据模型既稳定又敏捷。Hubs,Links和Satellite设计的方法使数据仓库可以轻松添加数据。最大程度避免修改已经存在的表,重构整个数仓。快速响应数据仓库的增量开发以适应快速变化的业务需求。

 

Data Vault通过简化数据拉通和变更,解决了一些现有的EDW(传统企业数仓)问题。通过将业务键及其描述属性之间的关联分开,Data Vault可以解决数仓重构的问题。通过消除星型架构设计的缺点,Data Vault适合处理海量数据的场景。如果添加相似业务键的新数据源,可以添加新的Hubs-Satellites-Links,然后将其链接到现有的Data Vault结构,而无需更改现有的数据模型。总体而言,使开发更加敏捷。

 

一,Data Vault模型有几个主要的组件,这里先总结一下:

 

1.Hub组件,是一个数据表,用于记录在业务应用中常用到的业务实体键值,如员工ID,发票号、客户编号、车辆号等。

 

表内包括几个关键字段:代理主键(Surrorgate Key),即hub表的主键;业务实体主键(Business Key),记录业务键值;装载时间(Load Data/Time Stamp),记录该业务键值的记录时间;数据源(Record Source),记录该业务键值的来源,以追踪数据。

 

                                                           

2.Link组件,通过存储相关业务实体间Hub表的SK(Surrorgate Key),以记录一对多、多对多的业务实体间关系,如员工与企业的雇佣关系,账户与客户之间的关系等。

 

包括以下几个关键字段:代理主键(Surrorgate Key),即Link表的主键;Hub1 SK…Hubn SK,与此Link相关的Hub表SK,记录业务关系;装载时间(Load Data/Time Stamp),记录该业务关系的记录时间;数据源(Record Source),记录该业务关系的来源,以追踪数据。

 

                                                       

3.Satellite组件,Hub表中业务主键所对应的业务描述,即业务实体的属性信息,这些信息具有时效性,随时间变化而可能产生变化,因此,Satellite组件内的记录均具有时间维,可记录实体属性的历史变化情况。根据实体属性变化频率的不同,可将一类实体的业务属性分为若干Satellite表,通过向Satellite分表追加记录,以实现在更小粒度下,实现第二类渐变维的保存历史数据特性。

 

Satellite组件包括以下关键字段:代理主键(Surrorgate Key),即Satellite组件表的主键;Hub或Link表的主键,Satellite联合主键之一,记录该Satellite组件所属Hub或Link;装载时间(Load Data/Time Stamp),Satellite联合主键之一,记录该描述信息在数仓中的有效时间;数据源(Record Source),记录该描述信息的来源,以追踪数据。

 

                                                   

4.Point-In-Time辅助表,用于同一Hub的多个Satellite组件间的时间同步。因为同一业务实体的不同类型属性的更新频率不同,因此同一Hub的多个Satellite组件基本不会同步更新,因此,只需要在PIT表中记录在同一时点同时有效的Satellite组件描述信息即可,以保证查询到的数据是查询时点的实体状态。通过PIT表中的记录,可以清晰的分析业务实体属性的变化频率及频率差异。

PIT表用于解决多Satellite组件统一时点的问题,如果只有一个Satellite组件则不需要PIT表。

 

二,Data Vault与星型模型比较

 

1.星型模型容易产生数据孤立,不同主题间的数据不容易产生联系,而且一旦模型确定,想要追加维度,涉及的调整范围较大,灵活性不足;而Data Vault继承了3NF的优点,可以从整体上描述企业的业务数据或信息结构,而且能够实现数据模型的动态架构。

 

2.Hub组件与星型模型中的维度表非常相似:记录了业务实体的维度信息的键值,但其它描述信息记录在了Satellite组件中。

 

3.Link组件与星型模型中的事实表非常相似,只是没有度量数据,因此可在原有Link组件的基础上,追加度量数据,以记录事实数据。

 

4.Satellite组件的设计可以解决星型模型中多事实冗余的问题,由于Link本身具有多维的特性,因此通过在Link上追加度量信息的方式也同步解决了多维事实数据的问题。在向Link追加度量信息时,如果事实数据类型很多时,可以将度量信息按更新频度或类型进行分类,然后分别存储在多个Satellite组件中,以降低由于更新频度不同等原因导致的事实数据冗余。方法是为Link表增加一个Link组件,用于存储不同度量类型的主键关系,然后为建立对应的Satellite组件,以记录事实数据。

                                 

5.由于hub和link的设计,可以使Data Vault模型的数据仓库具有很好的扩展性,追加Hub和Link非常方便,也不用考虑粒度问题;Link的优势在于每个Link都是追加在Link组件中的或者是增加一个新的Link来记录新的关联关系,而不需要更新Link的数据结构,这样他的扩展性和灵活性就非常强,这一点与星型模型具有很大的区别。

 

6.理论上来说,Data Vault模型通过使用Satellite组件,减少了事实表的数据冗余(通过考虑不同变化率的数据而分别存储),大大降低了存储的数据量,能够提升查询性能,但因为Data Vault模型根据3NF对表进行了理细粒度的拆分,使查询过程增加了连接操作,这方面的影响需要验证,是否能够突破理论,实现真实的性能提升,本人再起无法评论,需要实际应用的检验。

 

三,一些设计原则:

 

关于Hub:

 

1.Hub之间不能直接通过外键进行关联,而必须通过Link联接,以保证模型的灵活性和扩展性;

 

2.两个或两个以上的Hub都可以通过Link相联;

 

3.Hub的键会出现在其它组件中(Link和Satellite)中,否则Hub数据将被孤立。

 

关于Link:

 

1.Link可以与其他Link相联;

 

2.Hub主键固定,而不会发生变化;

 

关于Satellite:

 

1.Satellite必须存在关联的Hub或Link才有意义,否则无效;

 

2.Satellite问题包含装载时间,以记录历史数据,且没有重复数据;

 

3.可根据更新频率拆分Satellite;

 

Data Vault模型在建模工具中的应用

 

Datablau简介

北京数语科技有限公司(以下简称“数语科技”)成立于2016年,是专注于数据治理领域的国内自主知识产权的专业软件产品提供商,主要业务是数据治理软件产品的研发与销售。数语科技的创始团队全部来自CA erwin,天然具有世界级水准的软件产品开发能力。创始人兼CEO王琤曾任职erwin全球研发总监,拥有超过十年以上数据建模和数据管理的从业经验。CTO朱金宝曾任职erwin首席架构师,先后服务多家全球知名企业,并曾全程参与中国建设银行数据治理项目,目前全面负责Datablau软件平台的研发工作和关键项目的实施工作。

数语科技根据DAMA理论和中国国情独立研发Datablau新一代数据治理平台,平台由Datablau DDM数据建模产品和Datablau DAM数据资产管理平台两大部分组成,全部拥有软件著作权和知识产权,一站式全面满足中国企业的数据治理需求。其中数据建模产品DDM是Datablau填补国内空白的重量级产品,帮助中国客户摆脱国外产品的垄断现状。

2018年,Datablau数据治理平台通过了中国信息通信研究院严格苛刻的产品评测并获得的“最佳大数据产品”奖。

Datablau Data Modeler简介

DDM(Datablau Data Modeler)是国内首创的专业建模工具,是数据治理体系的重要组成部分。数据模型是“所有系统、文档和流程中包含的所有数据的语境。是生数据的知识。”换句话说,如果没有数据模型,组织IT系统中收集和存储的所有数据都会失去意义,也就没有业务价值。

更多了解我们, 官网: www.datablau.cn

发布了12 篇原创文章 · 获赞 7 · 访问量 564

猜你喜欢

转载自blog.csdn.net/weixin_39971741/article/details/105404503
今日推荐