gpt4 book ai didi

data-warehouse - 假设多值维度具有一对多关系 [Dim 1 : many Fact]?

转载 作者:行者123 更新时间:2023-12-04 01:50:07 25 4
gpt4 key购买 nike

我是数据仓库实践的新手,在学术练习的背景下,我想在选定的兴趣领域使用数据集创建星型模式。因此,我和我的同学选择了一个国家一年内的车祸数据集。

问题是,在很多情况下(如果不是最多的话),涉及的汽车不止一辆车。因此,如果我选择将“事故”事件作为事实表,将“司机”、“汽车”、“伤亡”、“位置”、“条件”等作为维度,这些如何转化为星型模式,什么时候“汽车”、“司机”和“伤亡”维度是多值的?例如,我可以涉及 3 辆汽车、3 名司机和 7 名伤员。考虑到星型模式的使用是强制性的。

此外,据我所知,事实表通常可以在测量中包含数值。它也可以将分类变量作为测量值吗?

最佳答案

维度建模中一个非常重要的概念是晶粒。 Ralph Kimball(如果您正在学习维度建模,您会一次又一次地看到他的作品)强调从尽可能低的粒度开始建模非常重要。这使您可以以尽可能多的方式对数据进行切片和切 block ,从最低粒度到更高粒度进行汇总。

很多时候,当您发现其中一个问题似乎是多对多时,问题实际上是您为相关事实表选择了错误的粒度。向 Nick.McDermaid(他在评论中建议更改粒度)表示歉意,“个人参与事故”的粒度低于“事故”,因此将事实表的粒度至少降低到该级别 - 并且创建事故维度 - 很有意义。

不过,这可能不是最低粒度;例如,如果您的数据集跟踪受伤情况,则每个参与者可能有多处受伤。因此,在这种情况下,事实表颗粒可能更适合“在事故中受伤”——您需要在“受伤”维度中有一行表示“没有受伤”,以防万一,以包括那些没有受伤的参与者。所以你应该做的第一件事不是决定你的事实表是什么,而是筛选数据并试图找出你的最低粒度是什么;完成此操作后,您应该能够很好地掌握事实表将围绕什么建模,以及您需要哪些维度。

维度建模可能有点棘手,因为您可以通过多种方式做事 - 而最正确的方式通常看起来并不十分明显,尤其是当您从您的背景移动时习惯于更规范化的数据结构。我建议首先尝试使用最基本的表格类型来建模某些东西——即尽量避免雪花、桥接表格等——看看你是否能想出一个解决方案来避免这些技巧。这通常会导致更好的模型(即更易于导航、具有更好的查询性能并可用于回答更多问题的模型)。

Nick.McDermaid 关于试验和尝试不同事物的建议也很可靠,因为它可以帮助您打破最初的假设。有时会有多种潜在设计 - 对它们进行全面考虑可能是决定最佳设计的必要条件。

关于data-warehouse - 假设多值维度具有一对多关系 [Dim 1 : many Fact]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40774305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com