我正在为SSAS设计一个事实表,这是我第一次尝试这个,因为这是一个原型系统,只是为了展示可以做什么并向某人展示决定是否他们追求的是什么。
我已经编制了一些数据,现在我正在尝试创建事实表。该多维数据集将查看推荐,我试图显示的是随时间变化的信息,显示一个月内推出的推荐数量,一个月内关闭的数量以及当月任何时间点打开的数量(即它们可能在上个月开放并在未来一个月内关闭。)
如何最好地设计这些措施是我陷入困境的地方。它应该是三个事实表还是我可以逃脱一个?如果我做三个事实表,我可以链接记录号和开放日期以获得在一个月内打开的号码,我可以链接记录号和关闭日期以创建在一个月内关闭的号码,但是我有一个不知道是什么时候在这个月的任何时候开放。对于这个表,我是否需要为每个推荐每天创建一行?这似乎有点密集,所以我认为这是错误的。
所以问题有两个:
任何想法都会受到最高的赞赏,因为我真的是这方面的初学者,所有我必须帮助我的是Google,因为我有一个很短的截止日期。
我的尺寸:
受众特征:记录编号;性别;种族;出生日期;
推荐:记录号码;开放日期;结束日期;
时间:日期;月; 25美分硬币;年;
我最初设计的事实表是:
数据:
记录号码; Opened_in_month; Closed_in_month; Open_in_month;
自创建多维数据集以来,我可以看到这些数字与我在测试数据中放置的数字不匹配,所以我知道我搞乱了事实表,这是我需要重新创建的表。 / p>
答案 0 :(得分:0)
我在SSAS中创建多维数据集的经验不多,但我可能会像这样创建一个视图
ReferallFacts:
Id | IsOpen | DateOpened | OpenedBy | DateClosed | ClosedBy | OpenForMinutes...
CalendarDimension:
ShortDate | Week | Month | Quarter | Year | FinancialWeek...
EmployeeDimension:
Id | FirstName | LastName | LineManager | Department...
DepartmentDimension:
Id | Name | ParentDepartment | Manager | Location...
在这种情况下,我并不真正看到需要多个事实表,因为您所描述的“按月”,“按天”所描述的内容都由日历维度处理。
Here是一个非常好的演员,而pcteach.me也有一些关于SSAS的好视频。
答案 1 :(得分:0)
您是否考虑过以事件为基础的方法,即转介开始或结束的事件?
首先,您需要确定事实表的粒度级别。如果您需要知道一个月中特定日期和时间的公开推荐人数,那么您的事实表必须是最低的粒度(个别推荐记录):
FactReferrals: ( DateId, TimeId, EventId, RecordNumber, ReferralEventValue )
这里,ReferralEventValue
在推荐打开时只是一个整数值,在推荐关闭时只是-1。 EventId是指仅包含两个成员的维度:Opened
和Closed
。
此方法允许您获取任何给定时间段内已关闭或已打开事件的数量。此外,通过从开始时间到某个时间点获取ReferralEventValue
的总和,您可以获得该特定时刻的确切开放推荐数量。要在SSAS中加速此总和,您可以设计聚合或创建一个单独的度量,它是ReferralEventValue的累计总和。
编辑:当然,如果您不需要个人推介粒度的数据,您可以在加载事实表之前总结每天甚至月份的ReferralEventValue。