我对数据仓库和SSIS相当陌生,但我的任务是使用来自母公司的两个不同部门的销售交易记录来填充数据仓库。我的问题......我正在修改填充产品(SKU)维度的SSIS包,以适应与这两个部门相关的产品,并且我最终得到了两个部门中存在的一些产品名称。我需要一个解决方案来容纳SAME维度表中每个部门的产品列表。这可能吗?
举例说明:
https://www.dropbox.com/s/hkda4n1bfs5o178/Capture.JPG?dl=0
其中'widget_3'和'widget_4'命名在两个部门中相同,但它们不相同的产品。恰巧被命名为相同。我想这是一个常见的问题,但我不愿意在先咨询某人之前对维度表模式进行任何更改。
我正在使用一个Product维表,该表具有[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
答案 0 :(得分:0)
这是业务问题的最后一天。如果在两个部门中存在名称冲突,则应在解决数据之前解决此冲突,否则部门会发现他们在其产品上看到的某些销售不属于他们。
一旦理解了如何在全球范围内对待这一点(例如,如果发生冲突,你将有一个小的部门前缀,但必须同意),问题将自动解决。
当部门无法联系或不同意解决方案时,您可以拥有两个产品名称列,每个列都用于两个部门,并将它们用作PK(我不会包括一个部门,或者至少我不会展示它,因为它让最终用户感到困惑)。但我确实建议找到一个商业解决方案,而不是技术解决方案。