说实话,我对数据仓库的实践是完全陌生的,作为一项任务,我需要使用星型模式设计一个国家发生车祸的数据仓库。首先,我将FactTable设计为具有QtyCars和QtyCasulties度量的事故,其维度为:“驾驶员”,“汽车”,“伤亡”,“位置”,“状况”。
但后来我意识到它们之间存在许多关系,例如:
事故1:只有一辆车辆有2人伤亡。
Acc 2:有两辆车,第一辆有一个伤亡人员,第二辆有两个伤亡人员。
帐户3:有三辆车。第一辆有3人伤亡,第二辆有2人伤亡,而第三辆没有伤亡。我应该在以下架构中更改什么?
train_test_split()
答案 0 :(得分:0)
确定事实表中最困难的事情之一就是确定粒度。这取决于您的要求。
我怀疑您的案例的粒度是在个别人员伤亡级别上,这意味着您不会在事实表中包括CarQty和伤亡人数。
关于事实表的另一件事是,您应该能够对任何维度进行汇总。如果您在人员伤亡级别上有事故,那么您需要始终计数(distinct car_id)以获取车辆数量,计数(count(distinct意外_id)以获取事故数量,或计数(*)以获取人员伤亡数量。
在您的情况下,这可能是最好的方法,因为它将允许查询“ 6月份发生的涉及BWM的事故涉及多少辆汽车”之类的查询。
其中一些查询并非如此简单,例如,如果其中有一辆 是宝马,您需要查看所有事故伤亡人数,但所有这些查询至少可以回答一些工作。
然后将根据报告的需要,根据需要添加任何合并的汇总表,例如一个包含计数的表。