【发布时间】:2014-11-03 20:59:46
【问题描述】:
我有一个多维数据集,其中包含一个包含一个月数据的事实表。事实表有 15 亿行。 事实表包含以下列 { DateKey,UserKey,ActionKey, ClientKey, ActionCount } 。 事实表包含每个用户每个客户每天每个操作的一行,其中没有完成的活动。
现在我想在我的多维数据集中计算以下度量,如下所示
每位用户的平均参与天数 AVG([Users].[User Key].[User Key], [Measures].[DATE COUNT])
用户参与 >= 14 天 SUM([Users].[User Key].[User Key], IIF([Measures].[DATE COUNT] >= 14, 1, 0))
每位用户的平均请求数 IIF([Measures].[USER COUNT] = 0, 0 ,[Measures].[Activity COUNT]/[Measures].[USER COUNT])
为此,我创建了两个不同的计数度量 DATE COUNT 和 USER COUNT,它们是事实表的 DateKey 和 UserKey 列上的不同聚合。我想知道对度量值组进行分区(其中有 3 个不同的度量值进入它自己的度量值组)。
分割多维数据集的最佳策略是什么?我已经阅读了analysis service distinct count 指南,它提到通过不重叠的用户 ID 对多维数据集进行分区是单用户查询的最佳策略,而用户 X 时间是单用户时间集查询的最佳策略。
我想知道是否应该按多维数据集将每个分区划分为 75 个分区(每个分区 15 亿行/2000 万行),每个分区将具有不重叠和连续的用户 ID,还是应该将其划分为 31 个分区每天有重叠的用户 ID,但每个分区中有不同的天数或 31 * 3 = 93 个分区,我将多维数据集分解为每天,然后每天进一步划分为 3 个相等的部分,每天内用户 ID 不重叠(但用户将在天之间重叠)或通过 ActionKey 划分为 45 个大小不等的分区,因为大多数时候度量是由 Action 切片的?
我有点困惑,因为这篇论文只讨论了对单个不同计数度量的优化,因为我需要对我的度量的用户和日期进行不同的计数。
有什么建议吗?
【问题讨论】: