维度模型中的事实 table 实际上是一个 table 的事件吗?

Is facts table in dimensional model is actually a table of events?

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

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

现在,业务部的同事们想告诉大家:

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

此外,浏览器和设备应该存在于一个维度还是单独的维度中?我无法想象 ETL 过程会构建这样一个 table.

以我目前的理解模式应该是这样的:

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

事实table可以包含交易、事件、余额、快照、流程。甚至还有 "factless" 个事实 table。

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

Dim Details 毫无意义。相反,创建 dim "Device" 和 dim "Browser"。

您的模型缺少的一件事是 dim "Date",用于与日期相关的分析: calendar table

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