SSAS链接2事实表 - 如何?

时间:2017-03-22 02:41:15

标签: ssas dimensions ssas-2012

我有一个SSAS,里面有许多事实表 - 每个都使用" Regular"尺寸(在“尺寸使用”选项卡中)。这在隔离方面工作得很好,现在我需要从立方体中获得更多的广度。

我有一个FactServiceRequest表,其中包含所有SR详细信息,链接到常规DimLocation。类似地,我有一个FactDog表,其中有一个Dog详细信息列表,再次使用相同的DimLocation(即狗注册的地址)。

所以我有2个度量组列和1个(Dim)行,两者都使用Location Alternate Key

我原本以为我能够选择狗,他们注册的地址,然后选择与该地址和狗有关的事件。然而,我正在返回几乎指数的结果 - 每件事都等等。

有人可以帮忙吗?我想这将归结为事实与dims的结合,但我不确定要向哪个方向前进。

1 个答案:

答案 0 :(得分:0)

这是一个棘手的问题,有一些可能的答案。

归结为事实(如果你能原谅这个词用法!),狗既是一个维度又是一个事实:

  1. 狗是事实,因为它存在。我猜你在MeasureGroup Dog中的测量是一个简单的计数(按位置切片得到“这个位置有多少只狗”?)
  2. Dog也是一个维度,用于处理ServiceRequest事实。
  3. 一种可能的方法是折叠(非规范化)数据库中的服务请求,该服务请求充当多维数据集源,以便每个SR行包含所有Dog详细信息。这意味着会有很多重复,这有两个缺点:

    • 它占用更多空间,并且引入了不能正确更新Dog详细信息的所有副本的风险(您的ETL将被额外精心构建)。
    • 任何其他与狗有关的措施,而不是SR(例如,狗的年龄),将变得难以聚合。

    但在这种方法中,您只有一个度量组。

    我在一些项目中采用的不同方法是保留事实表(狗为1,SR为1)。但是,您可以在Dog表中创建两个一个Dimension 一个度量组。在多维数据集维度用法中,您可以通过“事实”类型关系将“MeasureGroup Dogs”与“Dimension Dogs”关联起来(对话框中的简短描述有用地说“维度表是事实表”)。

    然后,通过“多对多”类型关系,Dog维度可以通过ServiceRequest事实表/度量组与基于ServiceRequest表的维度(例如,Type of ServiceRequest,Service of ServiceRequest)相关联。