Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我最近实施了 SCD 类型 2 - 用于 OLAP 报告的客户维度。我们以前在Type 1 上使用过,其中customerID 是构建维度的关键,但由于该维度会得到重复记录,例如C_001 有两条记录,我认为使用相同的CustomerID 作为关键构建维度是不切实际的。我应该将代理视为主键,并使用“CustomerID”作为属性吗?
这是 SCD 类型 2 维度的最佳实践吗?
客户维度快照图片。
代理键当然应该用作主键,但这并不能解决这里的主要问题。 您的业务键(以前是您的 customerID)也必须是唯一的,以便在构建事实表时分配正确的代理键,否则如果您只使用 customerID,您将创建重复项。 查看您提供的数据示例,您的业务密钥必须由 customerID 和 Region 组成。 虽然,我必须指出你的模型看起来有点奇怪,因为客户应该总是有一个唯一的 id 分配给它,如果案例是客户可以在不同的地区设有办事处,那么更合适的模型将附加一个位置维度,它会告诉您与给定事实相关的确切地区(或城市或国家等)。