Kimball 模型设计 - 何时下雪或星空

问题描述 投票:0回答:1

我有 Kimball 风格数据仓库的数据模型。关于维度表及其所有权时的整个星型与雪花型架构难题。

场景:一堆物联网设备每隔几分钟记录一次读数。每个物联网设备都属于某个业务实体(分支机构)。这意味着,通过行级安全性,特定业务部门的用户只能查看属于其业务部门的设备的数据。

什么是更好的模型?

选项 A - 雪花 FactDeviceReading 通过 DimBusinessEntity 和 DimDevice 之间的链接链接到 DimBusinessEntity。为了知道设备读数属于哪个业务实体,必须通过 DimDevice 查看。

enter image description here

选项 B - 星号 FactDeviceReading 和 DimBusinessEntity 之间的直接链接。而 DimBusinessEntity 和 DimDevice 之间存在“软”关系。 enter image description here

接受建议。

data-modeling data-warehouse kimball
1个回答
0
投票

我认为设计的驱动因素之一应该是如何实现行级安全性(RLS)

保持 RLS 模型一致。因此,如果您使用 DimBusinessEntity 驱动 RLS,则将此 Dim 的 FK 添加到每个事实表中,而不是通过 DimDevice 执行此操作,因为大概不是每个事实表(现在或将来)都可以保证包含 FK到 DimDevice

如果您这样做,则无需在 DimBusinessEntity 和 DimDevice 之间创建 FK,因为它们始终通过事实表链接。

如果您不使用 DimBusinessEntity 来驱动 RLS,那么我仍然不会将 Dims 雪花化。如果业务实体仅存在于设备上下文中,则考虑将业务实体属性非规范化到设备 Dim 中

© www.soinside.com 2019 - 2024. All rights reserved.