【问题标题】:Data Vault 2 can we build the satellites without having primary key defined?Data Vault 2 我们可以在没有定义主键的情况下构建卫星吗?
【发布时间】:2021-01-06 07:31:48
【问题描述】:

我正在构建一个简单的数据仓库模型以将其上传到雪花中。我在所有卫星中都遇到了某种问题。我知道在 sat 中添加 auto incement 代理键既不错误也不实用,这意味着我们可以添加它,但它不会代表整个设计的任何内容。每个 SAT 都包含一个来自相关 HUB 并表示为 FK 的哈希键。

  1. 我认为选择 LOAD_DATE 作为 PK 会导致重复的 PK 值。
  2. And it is not logical to add a FK as PK in the same table where there is a one-to-many relationship between the HUB and its SATs.

我们可以跳过 DV2.0 中向 SAT 添加主键的部分吗?

【问题讨论】:

    标签: database-design snowflake-cloud-data-platform data-vault


    【解决方案1】:

    不确定您从哪里获得 DV 建模信息,但是向 Sat 添加自动递增代理键完全不符合 DV 标准。从来没有。

    Sat 的 PK 始终是来自 Hub 的 PK(Hub 哈希键)加上 LOAD_DTS。 Hub 与 Sat 的关系始终建模为 1:M。

    所以不 - 你不能也不应该跳过为你的星期六定义 PK。

    如果您不相信我,请阅读我关于数据保险库的任何博客或 Amazon 出版的数据保险库书籍。您还可以查看 DataVaultAlliance.com

    【讨论】:

    • 我相信你,先生。但是对于 DDL,我应该将 LOAD_DATE 设置为 DDL 脚本中的主键吗?
    • 并将散列保留为来自集线器的 FK 吗?我的意思是在 DDL 中
    • 您需要一个带有哈希键 + LOAD_DATE 的复合 PK,并将 FK 保留在集线器的哈希键上。请参阅本文的哈希键部分中的图表snowflake.com/blog/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 2017-10-09
    • 2017-04-05
    • 2011-11-30
    • 1970-01-01
    相关资源
    最近更新 更多