数据仓库 - 多个部门的重复维度成员

Posted

技术标签:

【中文标题】数据仓库 - 多个部门的重复维度成员【英文标题】:Data Warehouse - duplicate dimension members for multiple divisions 【发布时间】:2015-07-16 23:18:00 【问题描述】:

我对数据仓库和 SSIS 还很陌生,但我的任务是用来自母公司的 2 个不同部门的销售交易记录填充数据仓库。我的问题...我正在修改填充产品 (SKU) 维度的 SSIS 包,以适应与两个部门相关的产品,我最终得到了两个部门中都存在的一些产品名称。我需要一个解决方案来容纳 SAME 维度表中每个部门的产品列表。这可能吗??

举例说明:

https://www.dropbox.com/s/hkda4n1bfs5o178/Capture.JPG?dl=0

“widget_3”和“widget_4”在两个部门中命名相同,但它们是同一产品。刚好同名。我想这是一个常见问题,但在先咨询某人之前,我不愿意对维度表架构进行任何更改。

我正在使用具有 [MemberID] 作为主键和 [Product] 作为 IGNORE_DUP_KEY = OFF 的唯一非聚集约束的产品维度表。我的第一直觉是修改表模式以将 IGNORE_DUP_KEY 更改为 ON 并依靠 [Division] 属性来帮助填充事实表中的数据;使用 [Product] 和 [Division] 来识别更新时的 [MemberID]。

像这样??:

https://www.dropbox.com/s/fjzvsh80mtp3ozs/Capture2.JPG?dl=0

我是不是走错了路?

注意事项: - 使用 SQL 2008

【问题讨论】:

您的产品维度不应有任何与部门相关的内容。该信息应该在某种事实表中。 谢谢!我确实在销售明细事实表中包含了部门数据,但我试图在多个部门之间维护一个通用的产品维度。我从来没有想过他们可以有相同的产品名称。我想我会尝试做momobo建议的;这是在发生冲突的情况下使用前缀。 【参考方案1】:

这归根结底是一个业务问题。如果两个部门之间存在名称冲突,则应先解决此冲突,然后才能将数据一起呈现,否则一个部门会发现他们在其产品上看到了一些不属于他们的销售。

一旦了解如何在全局级别处理此问题(例如,您将有一个小的部门前缀以防发生冲突,但这必须达成一致)问题将自动解决。

当无法联系到部门或无法就解决方案达成一致时,您可以有两个产品名称列,每个用于两个部门中的每一个,并将它们一起用作 PK(我不会包括部门,或者至少我不会展示它,因为它会让最终用户感到困惑)。但我确实建议您寻找业务解决方案,而不是技术解决方案。

【讨论】:

谢谢!我完全理解并同意您的解决方案。我想我会尝试前缀解决方案。

以上是关于数据仓库 - 多个部门的重复维度成员的主要内容,如果未能解决你的问题,请参考以下文章

数据仓库中维度的多个来源

如何处理数据仓库中重复id包含略有不同值的维度表?

Hadoop之数据仓库设计

Hadoop之数据仓库设计

数据仓库设计

数据仓库设计,多维还是一维带属性?