1

这是一个非常基本的问题,但我找不到可靠的答案。我的 Dimension 表中可以有 Fact 表中没有的值吗?我意识到相反的方向是有问题的。我的事实表中不能有维度表中不存在的维度键,但反过来呢?

我有一个包含我所有客户的客户表。然后,我有一个包含客户 ID 的订单事实表,但是,并非所有客户都曾经订购过东西,因此订单事实不包含客户表中每个客户的客户 ID。

这似乎是一个合理的情况,但我在处理我的多维数据集时遇到了未找到键的问题,除了对我的维度使用命名查询之外,似乎没有任何方法可以解决问题,我专门过滤掉没有任何订单的任何客户. 这解决了错误,但如果我不必这样做,我宁愿不必这样做。也许我的 Key Not Found 错误确实存在另一个潜在问题。

所以,我希望有人能明确地告诉我我的方案是否应该有效。我的维度表中的记录可以多于事实表中的记录吗?如果是这样,那么我将花更多时间试图找出错误。如果没有,我将辞职为我需要使用的每个事实创建我的客户表的多个视图。

谢谢

4

2 回答 2

1

我会说是的...设置中几乎没有“危害”,最多您存储的字节数比您可能需要的多。在这种情况下,让尚未在维度表中订购任何东西的客户不会损害任何东西,而且很可能是一个必要的步骤,因为客户从创建尚未订购到已创建和订购。

通常维度表往往是从事实表派生的,而从事实表中派生的维度表中的值如何从事实表中派生出来有点令人困惑......但我可以在你的设置

我经常发现,在所有引用它的事实记录都被重新指向之后,“归档”维度值可能会持续很长时间。

对我来说似乎没有伤害没有犯规的情况......

于 2013-09-11T22:44:29.873 回答
0

是的当然。

一般来说,您需要“一致的维度”,即您可以跨事实表共享的维度。

假设您的 customer_orders_product 事实表使用 2010 年 1 月 1 日至 2013 年 12 月 31 日的日历维度。

但是现在您添加了一个新的事实表,warehouse_receives_shipment,并且该数据可以追溯到 2005 年。

您不会想要两个日历维度表。

于 2013-09-13T17:44:07.360 回答