【问题标题】:Is facts table in dimensional model is actually a table of events?维度模型中的事实表实际上是事件表吗?
【发布时间】:2019-03-13 16:23:46
【问题描述】:

我是维度数据建模的新手,想知道如何将其应用于看起来不像销售报告的东西。

假设我有一个网络信使。它跟踪用户的设备、浏览器类型和位置。

现在,我业务部门的同事想知道:

  • 上个月在 Chrome 中发生了多少信息聊天?
  • 去年北美在移动设备上发生了多少信息聊天?
  • 上周每天的聊天率(能够按浏览器、设备和位置进行过滤)

所以对我来说,我想衡量聊天率,事实表应该是什么样的?

另外,浏览器和设备应该存在于一个维度中还是分开的维度中?我无法想象 ETL 过程会构建这样一个表。

在我目前的理解架构中应该是这样的:

似乎每次创建聊天时我都应该将它添加到 chat_facts 表中,这对我来说就像保存一个包含事件的表,我们稍后将通过聚合来计算这些事件。 这是事实表的正确方法吗?

【问题讨论】:

    标签: database data-modeling data-warehouse dimensional-modeling


    【解决方案1】:

    事实表可以包含交易、事件、余额、快照、流程。甚至还有“无事实”的事实表。

    在您的情况下,将聊天记录为事件是完全合理的。除了消息数,每条聊天记录还可能包含其他事实,例如大小、持续时间、参与者数量等。

    Dim Details 毫无意义。相反,创建暗淡的“设备”和暗淡的“浏览器”。

    您的模型缺少的一件事是暗淡的“日期”,用于与日期相关的分析: calendar table

    (我还会将事实表中的“created”重命名为更具描述性的名称,例如“Creation Date”)

    【讨论】:

    • 非常感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多