仓库设计:跟踪没有事件

Posted

技术标签:

【中文标题】仓库设计:跟踪没有事件【英文标题】:warehouse design: tracking the absence of an event 【发布时间】:2018-12-15 17:38:11 【问题描述】:

我正在跟踪课程的出勤率。有用户维度、课程维度和事实表。

我需要跟踪用户是否参加过课程以及他们是否参加过课程。

我正在考虑在事实表中存储每个用户和课程的记录,如果他们参加了,则记录一个,如果他们没有参加,则记录一个。

我应该存储未出席记录还是应该没有记录表示未出席?

【问题讨论】:

考虑将您的事实表设为“快照”,其中包含每个用户每个课程每个时段的 1 条记录。然后,如果用户参加了一门课程(即 Y/N),则每条记录都可以包含一个事实。 【参考方案1】:

在您的表格列表中,我还将添加一个日期维度。我会将用户维度命名为学生维度。

所以您的表格列表将如下所示:

Fact_Attendance

Dim_Student

Dim_Course

Dim_Date(以下链接描述了如何构建日期维度: https://www.mssqltips.com/sqlservertip/4054/creating-a-date-dimension-or-calendar-table-in-sql-server/)

这个事实可以创建为快照事实表。每天为每门课程的每个学生创建一行。这将帮助您生成数据洞察力以回答以下问题:

每周/每月有多少学生参加了该课程? 某个学生是否在特定日期参加了该课程?

Kimball Bus Matrix 是一个很好的起点。

https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/kimball-data-warehouse-bus-architecture/

【讨论】:

以上是关于仓库设计:跟踪没有事件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mixpanel 中跟踪匿名事件

事件后没有新页面的 Google Adwords 转化跟踪

无法解析跟踪:没有EvFrequency事件

缺少电子商务数据和不良事件跟踪代码

定制数据的统计跟踪

VB6/VBA中跟踪鼠标移出窗体控件事件(类模块成员函数指针CHooker类应用)