DATA VAULT的发展以及向业务DATA VAULT的过渡

在上一篇文章中,我讨论了DATA VAULT的基础知识,描述了DATA VAULT的基本元素及其用途。这不能被认为是DATA VAULT耗尽的主题,有必要谈论DATA VAULT的下一步发展。

在本文中,我将重点介绍DATA VAULT的开发以及向BUSINESS DATA VAULT或仅是BUSINESS VAULT的过渡。

出现BUSINESS DATA VAULT的原因


应当指出,具有一定优势的DATA VAULT并非没有缺点。这些缺点之一是编写分析查询的困难。请求有大量的JOIN,代码又长又麻烦。另外,落入DATA VAULT的数据不会进行任何转换,因此,从业务角度来看,纯形式的DATA VAULT没有无条件的价值。

为了消除这些缺点,DATA VAULT方法已通过以下元素进行了扩展:

  • PIT(时间点)表;
  • 桥表;
  • 预定义的派生词。

让我们仔细看看这些元素的目的。

坑表


通常,一个业务对象(HUB)可以包含具有不同更新率的数据,例如,如果我们谈论的是表征一个人的数据,则可以说关于电话号码,地址或电子邮件的信息的更新率比例如姓名,护照详细信息,婚姻状况或性别。

因此,在确定卫星时,应牢记其更新频率。它为什么如此重要?

如果将具有不同刷新率的属性存储在一个表中,则每次更新最频繁更改的属性时,都必须在表中添加一行。结果,磁盘空间增加,查询执行时间增加。

既然我们已经根据更新频率对卫星进行了划分,并且可以将数据独立上传到卫星,那么应该有可能获得相关数据。不使用不必要的JOIN会更好。

我将解释,例如,需要从具有不同更新频率的卫星获取最新信息(到最后更新的日期)。为此,您不仅需要进行JOIN操作,还需要创建几个子查询(对于每个包含信息的卫星),并选择最大更新日期MAX(更新日期)。随着每个新的JOIN,这样的代码会增长,并且很快变得难以理解。

PIT表旨在简化此类查询;在将新数据写入DATA VAULT的同时填充PIT表。 PIT表:

图片

这样,我们就可以随时了解所有卫星上数据的相关性。使用PIT表的JOIN,我们可以完全排除嵌套查询,当然,前提是PIT每天都被填充且没有间隙。即使PIT中存在间隙,也只能使用对PIT本身的一个子请求来获取实际数据。对于每个卫星,一个子查询将比子查询更快地工作。


BRIDGE表还用于简化分析查询。但是,与PIT的区别是简化和加快了不同集线器,链路及其卫星之间的请求的方法。

该表包含查询中经常使用的所有卫星的所有必需键。此外,如果需要分析键名,则如有必要,可以用文本形式的键来补充哈希业务键。

事实是,在不使用BRIDGE的情况下,获取位于属于不同集线器的卫星中的数据的过程中,不仅需要产生卫星本身的JOIN,还需要产生连接集线器的链接。

BRIDGE是否存在取决于存储配置,优化查询执行速度的需要。一个BRIGE的通用例子很难被提出。

预定义派生


包含预计算指标的表是使我们更接近BUSINESS DATA VAULT的另一种对象。这样的表对于业务确实很重要;它们包含根据给定规则汇总的信息,并使访问起来相对容易。

从结构上讲,预定义导数不过是某个中心的另一颗卫星。像普通卫星一样,它包含一个业务密钥和在卫星中形成记录的日期。然而,与此相似的是结束。商业用户根据最流行的,预先计算的指标来确定此类“专业”卫星的属性的进一步组成。

例如,包含有关雇员的信息的中心可能包括带有指示符的人造卫星,例如:

  • 最低工资;
  • 最高工资;
  • 平均工资;
  • 累计应计薪金等

在同一个中心的PIT表中包含PREDEFINED DEVIVATIONS是合乎逻辑的,然后您可以轻松地获取特定日期的员工数据切片。

发现


如实践所示,由于以下几个原因,业务用户使用DATA VAULT有点困难:

  • 请求代码复杂而繁琐;
  • JOIN的数量会影响查询性能。
  • 编写分析查询需要对存储库的结构有深入的了解。

为了简化数据访问,DATA VAULT扩展了其他对象:

  • PIT(时间点)表;
  • 桥表;
  • 预定义的派生词。

我认为,在下一篇文章中,我打算告诉那些使用BI的人最有趣的事情。我将介绍创建表的方法-事实和表-基于DATA VAULT的度量。

本文的材料基于:

  • 肯特·格拉齐亚诺 Kent Graziano)出版物上,除了详细的说明之外,还包含该模型的图表;
  • 书籍:“使用DATA VAULT 2.0建立可扩展的数据仓库”;
  • Data Vault基础知识文章

All Articles