数据仓库维度中的查找代码

Posted

技术标签:

【中文标题】数据仓库维度中的查找代码【英文标题】:lookup codes in data warehouse dimension 【发布时间】:2018-05-17 06:29:17 【问题描述】:

上游 OLTP 系统中的许多核心实体都有 很多 用户熟悉并希望在数据仓库报告中继续使用的特定于域的查找代码。诸如 product_category = "SRB6"、incentive_scheme = "APP3" 等。这些代码确实有很长的形式描述,但这不是用户熟悉也不想要的。

代码之间的相关性较低,基数通常不会那么低,因此垃圾维度似乎不正确。核心维度一般是 SCD 类型 II,查找代码不太可能改变。

如何在不使用维度周围的 3NF 查找表雪花的情况下对这些查找代码进行最佳建模?

我可以看到的选项包括:

将代码和长格式描述直接放在尺寸表中 将源系统、代码和描述放在具有代理键的单个全局“查找”维度中,并在实体维度中使用该代理键 两者的结合;维度和 SCD 类型 II 中的查找变暗代理键、代码和描述查找变暗 其他?

【问题讨论】:

【参考方案1】:

典型的维度建模方法只是将代码和长格式描述直接放在它们相关的维度表中。例如。 DimProduct 将包含描述产品类别的列,如果需要,包括代码和描述。

其他系统确实优先考虑查找、规范化等的通用管理,并且会使用您建议的其他选项,但它们不会是维度模型,也不会受益于模型的易读性和减少数量的性能加入。

【讨论】:

是的,我认为这是查找管理方面的问题。 啊,是的,你在问题中提到有很多。 Kimball Group 会说,模型对不了解数据库的用户的可理解性和性能应该是您的主要目标:如果这意味着您必须在幕后“在厨房里”做更多的工作以使事情变得更容易对于用户来说,就这样吧。

以上是关于数据仓库维度中的查找代码的主要内容,如果未能解决你的问题,请参考以下文章

数据仓库中的时间和日期维度

数据仓库星型模式的维度表和事实表中的数据如何?

数据仓库系列 - 缓慢渐变维度

数据仓库 ETL 缓慢 - 更改维度中的主键?

数据仓库暗表中的选项维度信息

数据仓库中的时间维度