星型模式中作为事实表的客户维度

Posted

技术标签:

【中文标题】星型模式中作为事实表的客户维度【英文标题】:Customer Dimension as Fact Table in Star Schema 【发布时间】:2014-06-11 18:23:19 【问题描述】:

维度表也可以变成事实表吗?例如,我有一个客户维度表,其中包含名称、性别等标准属性。

我需要知道今天、上个月、去年等使用 SSAS 创建了多少客户。

我可以使用客户键和日期键创建不露面的事实表,或者我可以使用相同的客户维度表,因为它已经具有这两个键。

将客户维度表同时用作事实和维度是否正常?

谢谢

【问题讨论】:

投反对票的问题有什么问题? 【参考方案1】:

是的,您也可以将维度表用作事实表。在您的情况下,您将只有一个度量值,即计数 - 假设此客户表中每个客户都有一条记录。如果您的每个客户有多个记录,例如。 G。当您使用复杂的 slowly changing dimension 逻辑时,您将使用不同的计数。

【讨论】:

【参考方案2】:

根据您的示例,直接针对客户维度运行查询就足够了。无需创建另一个表来执行此操作,例如事实表。事实上,这样做是个坏主意,因为你必须每天维护它。只要您在客户表本身中有时间属性,就更简单地运行查询。从某种意义上说,您将维度用作事实,但毕竟数据就是数据,可以根据需要进行查询。

【讨论】:

我在 DIM_CUSTOMER 表中有一个 created_at(yyyy-mm-dd hh:MM:ss 格式)列。从客户维度创建与日期和时间维度的关系是更好的做法吗?这样做可能会破坏我的星型模式。

以上是关于星型模式中作为事实表的客户维度的主要内容,如果未能解决你的问题,请参考以下文章

数据仓库 - 多维模型 - 事实表小于维度表

星型模式 - 外部标识符事实或维度?

14.星型模型中事实表作为维表使用面临的问题和解决方法

14.星型模型中事实表作为维表使用面临的问题和解决方法

星型模式 - 贷款逾期日期建模

维度建模(星型雪花星座)