我是数据仓库的新手。首先,我想要精确于我的数据仓库工具包的副本是在它的方式到我的邮箱(蜗牛邮件:p)。但我已经在网上找到了所有这些东西。

我在网上找不到的是,当你似乎在DW中有一个以上的事实时是怎么做的。在我的案件(保险)中,我有没有定期发生的退款。一个客户可以拥有3个月,然后在同一月内十个。另一方面,我有“订阅费”(不确定是什么是正确的英语术语,但你得到了这一点),每月一次或每三个月都会发生。这似乎显然像我的两个独特的事实。

这两个是一种尺寸松散地耦合,如客户端或“保险产品”。现在是这两个不同的仓库,我必须制作两个不同的报告,然后连接DW之外的报告?或者有一种方法可以设计它以适应单个下降的DW。或者我应该将这两个事实结合在一起吗?我可能会在退款时丢失粒度。

一些博客,我读取的说,一个dw总是有一个事实表。其他人提到设计具有S的事实表的步骤,但如果它们之间存在链接,则没有明确的指令,或者它们只是同一DW项目的不同组件。

有人是否知道关于DW设计的那部分精确部分的一些引用?

有帮助吗?

解决方案

向后追随您的问题。

数据仓库可以有多个事实表。但是,您确实希望最小化事实表之间的连接。可以在不同的事实表中复制事实信息重复。

您提到的对象:

退款是一个事实。时间戳是退款事实的维度。

订阅费是一个事实。时间戳是订阅费法事实的维度。

退款可能不止一次。我猜测每个客户都有一个订阅费。所以看来我们到目前为止,我们有两个事实表,客户和客户退款。

如果您知道只有3次退款(例如示例),那么您将消除客户退款事实表,并在客户表中放3个退款列。

还提到保险。客户可以拥有多个政策。所以我们有一个第三个事实表。

数据仓库通常使用 star schema 设计。 Star Schema基本上是一个事实表,连接到一个或多个维度表。您可能在数据仓库中有多个明星,因为我们已经定义了3个事实表。

其他提示

我意识到我在回答一个旧的帖子,但我对提供的任何答案都不满意。我觉得这两个问题都没有回答。

模式可以具有一个或多个事实,但这些事实没有通过任何关键关系链接。当您将乳清查询标准化/事务数据库时,最好不要在单个查询中加入事实表。由于许多到许多联盟的性质等 - 如果尝试,结果将是不正确的。

您正在寻找的答案是您需要“跨越”,基本上意味着您正在分别查询每个事实表(架构)并合并结果。这可以使用SQL或优选地通过Reporting / Analytics工具来发生,您可能拥有数据仓库。而不是重复关于如何执行此操作的答案,我会将每个人指导到两个非常好的文章:

克里斯adamson钻取的三种方式

应该仓库 - 通过拉尔夫金钻钻孔

您可以在您喜欢的情况下拥有尽可能多的事实表。在您的示例中,您可能有类似的东西:

dimproduct 列出了几种产品 - 订阅是其中之一。 dimtransactiontype 将列出可能的交易(购买,退款,经常性订阅费......)

现在假设您对简化的订阅报告感兴趣,您可以添加 factsubscription ,如下所示:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top