1

我正在为 SSAS 设计一个事实表,这是我第一次尝试这样做,因为这是一个原型系统,只是为了展示可以做什么并向某人展示它们是否是什么后。

我已经编造了一些数据,现在正在尝试创建事实表。多维数据集将查看推荐,我试图显示的是随着时间的推移显示一个月内打开的推荐数量、一个月内关闭的数量以及该月任何时候打开的数量的信息(即他们本可以在上个月开业并在未来一个月关闭)。

如何最好地设计这些措施是我卡住的地方。它应该是三个事实表还是我可以逃脱一个?如果我做三个事实表,我可以链接记录号和打开日期以获取一个月内打开的数字,我可以链接记录号和关闭日期以创建一个月内关闭的数字,但我有一个不知道是什么时候描述它在这个月的任何时候开放。对于此表,我是否需要为每个推荐每天创建一行?这似乎有点密集,所以我立刻认为这是错误的。

所以问题是双重的:

  1. 我可以在一张桌子上做这三个措施吗?如果可以,最好的方法是什么?
  2. 在月份计数的任何时候打开的最佳方法是什么?

任何想法都将不胜感激,因为我确实是这方面的初学者,我需要帮助的只是谷歌,因为我的截止日期很短。

我拥有的尺寸:

人口统计:记录数;性别; 种族; 出生日期;

转介:记录号;开放日期;结束日期;

时间:日期;月; 四分之一; 年;

我最初设计的事实表是:

数据:

记录编号; Opened_in_month; Closed_in_month; 打开_in_month;

自从创建多维数据集以来,我可以看到数字与我在测试数据中输入的不匹配,所以我知道我搞砸了事实表,我需要重新创建那个表。

4

2 回答 2

0

您是否考虑过基于事件的方法,即推荐打开或关闭的事件?

首先,您需要确定事实表的粒度级别。如果您需要知道一个月中特定日期和时间的开放推荐数量,那么您的事实表必须处于最低粒度(单个推荐记录):

FactReferrals: ( DateId, TimeId, EventId, RecordNumber, ReferralEventValue )

在这里,ReferralEventValue当推荐人打开时,它只是一个整数值 1,当推荐人关闭时,它是 -1。EventId 指的是只有两个成员的维度:OpenedClosed

这种方法允许您获取任何给定时间段内关闭或打开的事件的数量。此外,通过ReferralEventValue从一开始到某个时间点的总和,您可以获得该特定时刻开放推荐的确切数量。为了加快 SSAS 中的总和,您可以设计聚合或创建单独的度量,即 ReferralEventValue 的累积总和。

编辑:当然,如果您不需要个人推荐粒度的数据,您可以在加载事实表之前每天甚至每月总结一下 ReferralEventValue。

于 2013-08-23T12:37:50.660 回答
0

我几乎没有在 SSAS 中创建多维数据集的经验,但我可能会创建一个像这样的视图

参考资料:

Id | IsOpen | DateOpened | OpenedBy | DateClosed | ClosedBy | OpenForMinutes...

日历维度:

ShortDate | Week | Month | Quarter | Year | FinancialWeek...

员工维度:

Id | FirstName | LastName | LineManager | Department...

部门维度:

Id | Name | ParentDepartment | Manager | Location...

在这种情况下,我真的认为不需要一个以上的事实表,因为您描述的“按月”、“按天”的所有内容都是由日历维度处理的。

是一个非常好的演练,而且pcteach.me也有一些关于 SSAS 的好视频。

于 2013-08-23T12:04:00.333 回答