订阅更新

Data Vault 的 Hub、Link 和 Satellite 怎么设计?

面试问 165 约 2 分钟读完 1 次阅读

本文目录
  1. 面试怎么回答
  2. Hub 管身份,不管会变化的描述
  3. Link 管关系和业务事件
  4. Satellite 管属性和变化历史
  5. Raw Vault 不等于最终消费层
  6. 一个典型场景
  7. 参考资料

面试怎么回答

Data Vault 把稳定业务键、实体关系和可变属性分别建成 Hub、Link、Satellite。Hub 保持身份稳定,Link 固化关系粒度,Satellite 用加载时间、来源和哈希差异保存历史。它适合多源快速接入和强审计场景,但表数量多、查询链路长,所以我会把 Raw Vault 当可追溯底座,再通过 Business Vault 和维度模型向消费侧交付。

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

源系统一天一个版本,字段反复改,历史又不能丢。

如果所有变化都塞进一张宽表,维护成本很快超过查询成本。

Data Vault 用 Hub 管业务键、Link 管关系、Satellite 管可变属性和历史,适合强调可追溯与持续接入的场景。


Hub 管身份,不管会变化的描述

Hub 保存客户号、订单号等稳定业务键,以及加载时间、记录来源和用于连接的代理键或哈希键。客户姓名、等级、地址会变化,不应直接塞进 Hub。业务键选错,后续 Link 和 Satellite 都会失去稳定锚点。

Link 管关系和业务事件

Link 连接两个或多个 Hub,例如客户与订单、订单与商品。它描述关系曾经发生过,而不是把双方全部属性复制一遍。对于交易明细类关系,还要明确关系粒度,避免同一业务事件因为键不完整而被错误合并。

Satellite 管属性和变化历史

Satellite 依附于 Hub 或 Link,保存描述属性、加载时间、来源、有效时间和变化检测信息。不同变化频率、不同来源或不同安全等级的属性可以拆成多个 Satellite,减少无关字段一起变更造成的放大。

Hub、Link、Satellite 各管一件事

Raw Vault 不等于最终消费层

Raw Vault 优先保留来源事实和审计链路,规则较少、模型稳定;Business Vault 可以增加业务规则、派生关系和计算;最终仍常构建星型模型、宽表或语义层服务报表。让 BI 直接跨大量 Hub、Link、Satellite 查询,往往会把接入灵活性转成消费复杂度。

从多源接入到消费交付

一个典型场景

客户信息来自 CRM、支付和客服三个系统,客户等级和联系方式更新频率不同。可以用统一客户业务键建立 Hub,来源间的映射关系进入 Link,各系统属性进入独立 Satellite。出现数据争议时,可以沿 load_time 和 record_source 回溯,而不必覆盖旧值。

参考资料

刷题进度保存在当前浏览器