数据仓库建模

Data Vault Modelling

假设数据架构如下: 源系统 -> 数据仓库(使用数据仓库模型)-> 数据虚拟化 -> 消费层(例如,BI 工具和报告)

我读到,对于数据保管库,关键原则之一是加载原始数据并保留来自所有来源的记录 - 因此不会出于 traceability/auditing 目的进行重复数据删除或转换。如果这是真的,转换会发生在哪里?

是的,确实如此,“原始”数据保险库保存的记录与加载时在源系统上的记录相同。

但是还有另外一个概念,“业务”数据库。这是所有逻辑和转换发生的地方。业务数据保险库不是原始数据保险库的完整副本,但您创建 hub/link/sat/pit/bridge 来实施适合您需要的逻辑。

这样,它会帮助你长期 运行。例如,如果您明年需要更改业务规则,您仍然拥有过去特定时间特定源系统的原始数据。如果您的逻辑有错误,您仍然拥有原始数据。

根据我的经验,通常你有这样的架构:

  1. 原始源(从您的 OLTP 数据源复制)
  2. 暂存(现在作为数据湖中的持久暂存区,因为它比关系数据库便宜)
  3. Raw Vault(应用所谓的硬规则,如数据类型更改)
  4. Business Vault(应用所谓的软规则,您所有的业务逻辑、聚合、串联……)
  5. 信息集市(数据集市有时会被虚拟化,但并非总是...通常 Star/Snowflake 模式)
  6. Cube/Tabular 型号
  7. BI 工具

您可以在此处找到有关 Raw Vault 和 Business Vault 之间区别的更多信息:Datavault - hard rules (rawvault) vs soft rules (businessvault)