如何报告稀疏事实表的稀疏区域
Posted
技术标签:
【中文标题】如何报告稀疏事实表的稀疏区域【英文标题】:How to report on sparse areas of sparse fact table 【发布时间】:2011-10-09 21:51:58 【问题描述】:源系统通过报告缺勤事件来跟踪学区的学生出勤情况。可以通过检查三个数据集来确定任何特定日期的出勤率:校历、学生注册和缺勤。
在任何给定的上课日,在校学生的出勤人数通常远大于缺勤人数,因此这种方法显着减少了为跟踪出勤而存储的记录数量。
我正在尝试确定在维度模型中表示日常出勤率的正确方法。最明显的方法是创建一个无事实表,其中包含每个学生每上学日的粮食,以及具有出勤和缺勤原因的值的出勤维度。使用 OLAP 非常简单,但缺点是事实表的大小。
例如,对于 30,000 名学生和 188 个上学日,意味着每年大约有 50 万条记录(如果这似乎不足以成为问题,那么请考虑一个必须报告每个期间的出勤率的示例而不是每天)。将此与仅记录缺勤的事实表进行对比,并且数量要小得多。但是,如果我这样做,那么我不确定如何构建聚合每日出勤事实的多维数据集。
使用的特定 OLAP 技术是 SQL Server Analysis Services 2008 R2。有什么想法吗?
【问题讨论】:
1) 你是什么意思“每个学生每个上学日都很棒”; 2)定义周期? “great”是一个错字——我的意思是“grain”。我已经更正了。课时和上学时间一样——第一节课是当天的第一节课,第二节课是第二节课,以此类推。 【参考方案1】:如果您使用两个事实表:一个用于当前期间(例如上个月),另一个用于历史数据(仅记录缺勤) - 我想用户(例如教师)不需要有关某个特定学生的出勤信息5 个月前当天的第二节课,但他们可能需要最后一周/一个月的这些信息。
【讨论】:
以上是关于如何报告稀疏事实表的稀疏区域的主要内容,如果未能解决你的问题,请参考以下文章