提问人:ninelondon 提问时间:7/19/2023 更新时间:7/20/2023 访问量:48
Power BI 数据建模 - 为什么这个设计很糟糕?
Power BI Data Modelling - why is this bad design?
问:
我有一个抽象的数据建模问题。我有以下 4 个表:
项目群 - 项目群是一个建筑项目。例如埃菲尔铁塔建筑项目。程序 ID 是唯一标识符。
工作流 - 项目群具有多个工作流。完成建筑物时涉及的每个不同项目(电力工作流、窗户工作流、管道工作流等)都有一个工作流。工作流 ID 是唯一标识符
任务 - 工作流有许多任务。TASK ID 是唯一标识符。此表还包含开始日期和结束日期。
成本 - 此表包含日期列、任务 ID 和成本。任务 ID 不是唯一标识符,因为成本可能会在几天内向同一任务 ID 收取费用。
我有两个选项来对数据进行建模,我更喜欢选项 2。然而,有人告诉我这是糟糕的设计。有人可以帮我理解为什么选项 1 会比选项 2 更好吗?
答:
1赞
David Browne - Microsoft
7/20/2023
#1
这是星星(选项 1)与雪花(选项 2)维度问题。这两种方法都很常见,对模型进行非规范化,使事实数据表具有所有维度键,而不必遍历多个维度,这是一种性能优化。
在 Power BI 中也是如此,其中星型架构可能表现更好。但是,需要权衡,因为在星型架构设计中,程序和工作流不会流向任务。
因此,更常见的设计是将 Programme、Workstream 和 Task 扁平化到一个表中。将它们展平为单个维度可保留工作流与任务之间的关系,以便您可以查看单个工作流下的所有任务。
但这两种设计都可以正常工作,并且在许多情况下表现相似。
上一个:元数据和数据模型之间有什么关系?
评论