【问题标题】:Fact and Dimension Tables in DWDW 中的事实和维度表
【发布时间】:2018-07-19 22:20:19
【问题描述】:

我想知道为什么事实表的大小比数据仓库中的维度表大。维度表包含属性级别的信息,并且是高度去规范化的,那么为什么维度表的大小不会更大呢?

【问题讨论】:

  • 事实会随着时间的推移而变得更大,因为所有历史交易数据都将被放入事实表中。维度也可以扩展,但通常不会那么快或不会全部扩展。
  • @tobi6 - 同意,但维度具有实体级别的数据,因此理想情况下它会比事实拥有更多的信息。说 - 一个商家有制造砖块的业务,因此一个人生成的砖块的平均数量将存储在 Fact 中,并且该人的详细信息(如电子邮件 ID、地址、电话号码等)将出现在 Dimension 中,因此理想情况下应该是尺寸更大。
  • 对我来说,更大的尺寸直接与表中的行数相关。您似乎认为更大的尺寸是列的数量。这可能是一个定义问题。

标签: data-warehouse dimensions fact


【解决方案1】:

我可以先从 Kimball 那里偷一些话开始

“维度建模始于将世界划分为度量和上下文。” https://www.kimballgroup.com/2003/01/fact-tables-and-dimension-tables/

事实表记录业务活动或事件,因此事实表的大小可能会增加。暗表存储不同上下文的信息。

例如:在一所大学中,100 名学生可能会注册 10 个科目。现在,如果您看到暗淡,Dim_StudentDim_Subject,在这种情况下,它们可能有 100 行,每个有 10 行。但招生活动会更多,因为学生可以同时注册0个或多个科目。这可能导致 Fact_Enrolment(记录注册活动)表与 dims 相比具有更多行。

注意:但是,根据我的经验,我也处理过事实表在特定时间点与暗淡相比具有较少行的事实。当 DataWarehouse 增长时,它们最终可能会变大。

希望对您有所帮助。

【讨论】:

  • 谢谢。即使我处理过比 Dim 小的事实,这也是我感到困惑的原因,但你的例子表明,随着时间的推移,事实可能会变得更大。谢谢您的帮助。例如 +1。
【解决方案2】:

维度包含实体级别的信息,而事实包含事务级别的信息,对于一个维度,多个事务可以在一段时间内发生。例如,在 HR 系统中,可以有一个包含所有员工的个人详细信息的人员维度,其中每个员工通常可能有 1-3 条记录。

事实表将存储员工的多项交易,例如招聘、晋升。部门变动、离职、离职等,所以对应个人维度的一个人记录,事实就会有多个记录。

Fact Tables 还包含对应于多个维度的事实/度量 因此,使用代理键/外键对不同维度的引用将事实与多个维度连接起来,这使得事实表比维度更重。

【讨论】:

    【解决方案3】:

    Dimension tables contains the attribute level information and highly de-normalized

    实际上,我怀疑维度表是否“高度去规范化”。一般来说,维度表中的每一行都由一个主键标识,因此它们中存在重复项的范围非常小。这可以解释为什么与事实表相比,它们的大小不会太大。

    【讨论】:

    • 不,它们是非规范化的,但只是更高的分组级别是非规范化的,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2022-01-15
    • 1970-01-01
    • 2013-10-16
    相关资源
    最近更新 更多