跳转到主要内容
Chinese, Simplified

在设计分析系统时,可以使用许多不同的数据模型,例如特定于行业的域模型、Kimball、Inmon和data Vault方法论。根据您的独特要求,您可以在设计湖屋时使用这些不同的建模技术。它们都有各自的优势,并且每个都可以很好地适应不同的用例。

最终,数据模型只不过是定义不同表的构造,其中定义了一对一、一对多和多对多关系。数据平台必须为数据模型的物理化提供最佳实践,以帮助实现更容易的信息检索和更好的性能。

在上一篇文章中,我们介绍了在带有DeltaLake的Databricks中实现星型模式的五个简单步骤。在这篇文章中,我们旨在解释什么是Data Vault,如何在青铜/银/金层中实现它,以及如何使用Databricks Lakehouse平台获得Data Vault的最佳性能。

Data Vault建模,已定义

Data Vault建模的目标是适应快速变化的业务需求,并通过设计支持数据仓库更快、敏捷的开发。Data Vault非常适合lakehouse方法,因为数据模型的集线器、链路和卫星设计很容易扩展和细化,因此设计和ETL更改很容易实现。

让我们了解一下Data Vault的几个构建块。通常,Data Vault模型有三种类型的实体:

  • 集线器——集线器代表核心业务实体,如客户、产品、订单等。分析师将使用自然/业务密钥来获取有关集线器的信息。Hub表的主键通常由业务概念ID、加载日期和其他元数据信息的组合派生。
  • 链接--链接表示集线器实体之间的关系。它只有联接键。它就像维度模型中的一个无事实事实表。没有属性-只有连接键。
  • 卫星--卫星表具有集线器或链路中实体的属性。他们有关于核心商业实体的描述性信息。它们类似于维度表的规范化版本。例如,客户中心可以有许多卫星表,如客户地理属性、客户信用评分、客户忠诚度等级等。

使用Data Vault方法的一个主要优点是,当数据模型发生变化时,现有ETL作业需要的重构大大减少。Data Vault是一种“写优化”的建模风格,支持敏捷开发方法,非常适合数据湖和lakehouse方法。

db-242-blog-img-1.png

A diagram shows how data vault modeling works, with hubs, links, and satellites connected to one another.

Data Vault如何适用于Lakehouse

让我们看看我们的一些客户是如何在Databricks Lakehouse架构中使用Data Vault建模的:

db-242-blog-img-2.png

Data Vault Architecture on the Lakehouse

在Databricks Lakehouse中实现Data Vault模型的注意事项

Data Vault建模建议使用业务密钥的散列作为主键。Databricks支持开箱即用的hash、md5和SHA函数,以支持业务密钥。

  • Data Vault图层具有着陆区(有时还有暂存区)的概念。这两个物理层自然适合数据湖屋的青铜层。如果着陆区数据到达,如Avro、CSV、镶木地板、XML、JSON格式,则会在暂存区中转换为Delta格式的表,以便后续的ETL可以具有高性能。
  • 原始Vault是从平台区域或暂存区域创建的。数据在原始数据Vault中建模为集线器、链接和附属表格。加载原始Data Vault时,通常不会应用其他“业务”ETL规则。
  • 所有ETL业务规则、数据质量规则、清理和一致性规则都应用于Raw和business Vault之间。Business Vault表可以按数据域进行组织,数据域充当标准化清理数据的企业“中央存储库”。数据管理员和中小企业拥有围绕其业务保险库领域的治理、数据质量和业务规则。
  • 查询辅助表(如时间点(PIT)和桥接表)是为业务vault顶部的表示层创建的。PIT表将增强查询性能,因为一些卫星和集线器是预连接的,并通过“时间点”过滤提供一些WHERE条件。桥接表预连接集线器或实体,为实体提供类似于展开“尺寸表”的视图。Delta Live Tables与Materialized Views完全相同,可用于在Business Data Vault顶部的黄金/演示层中创建时间点表和桥接表。
  • 随着业务流程的变化和适应,Data Vault模型可以轻松扩展,而无需像维度模型那样进行大规模重构。额外的集线器(主题区域)可以很容易地添加到链接(纯联接表),并且额外的卫星(例如,客户细分)可以添加到集线器(客户),而只需进行最小的更改。
  • 此外,由于以下原因,在黄金层中加载维度模型数据仓库变得更容易:
    • 集线器使密钥管理更容易(集线器中的自然密钥可以通过Identity列转换为代理密钥)。
    • 卫星使加载维度变得更容易,因为它们包含所有属性。
    • 链接使加载事实表变得非常简单,因为它们包含所有关系。

从Databricks Lakehouse中的Data Vault模型获得最佳性能的提示

  • 对于原始Vault、业务Vault和黄金层表,请使用增量格式表。
  • 确保在集线器、链路和卫星的所有连接键上使用OPTIMIZE和Z顺序索引。
  • 不要过度划分表格,尤其是较小的卫星表格。对通常进行筛选的日期列、当前标志列和谓词列使用Bloom筛选器索引,以确保最佳性能,尤其是当您需要创建除Z顺序之外的其他索引时。
  • Delta Live Tables(Materialized Views)使创建和管理PIT表变得非常容易。
  • 将optimize.maxFileSize减小到一个较低的数字,例如32-64MB,而默认值为1 GB。通过创建较小的文件,您可以从文件修剪中受益,并最大限度地减少I/O检索需要加入的数据。
  • Data Vault模型具有相对较多的联接,因此请使用最新版本的DBR,它可确保Adaptive Query Execution在默认情况下处于ON状态,从而自动使用最佳联接策略。仅在必要时使用联接提示。(用于高级性能调整)。

在Data Vault Alliance了解有关Data Vault建模的更多信息。

原文地址
https://www.databricks.com/blog/2022/06/24/prescriptive-guidance-for-implementing-a-data-vault-model-on-the-databricks-lakehouse-platform.html
本文地址
Article

微信

知识星球

微信公众号

视频号