首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过两个中间维度构造具有从事实表到维度的路径的多维数据集

通过两个中间维度构造具有从事实表到维度的路径的多维数据集
EN

Stack Overflow用户
提问于 2015-01-09 06:42:00
回答 1查看 234关注 0票数 3

我不知道如何在SSAS中为复杂的情况配置多维数据集,我可以简化如下:

  1. 事实表存储有关销售的数据。
  2. 一个名为“促销”的维度记录产生销售的营销活动的详细信息
  3. 一个叫做客户的维度记录了我们卖给他的人的详细信息。
  4. 我们还有一个表格,里面有关于一个组织的数据
  5. 在某些情况下,但并非所有情况下,促销活动都是针对一个组织进行的。从推广到组织有一个可选的一对一关系.
  6. 在某些情况下,但不是所有情况下,客户都与组织相关联。有一个可选的多对一关系从客户到组织.
  7. 我们希望能够分析组织的销售情况。例如,如果我按组织报告销售数量,则每个组织的数量都应包括针对该组织的促销活动()和对与该组织有关联的客户的销售。

请注意,使用此数据结构,每个销售可能与0、1或2个组织相关联,具体取决于促销部门和客户。因此,如果我按组织报告销售数量,总销售额不一定等于销售总数。

你会如何构造这个立方体?我不认为简单地建立一个来自Sales->促销->Organisation和另一个来自Sales->Customer->Organisation的引用关系是行不通的,因为SSAS不知道使用哪条路径(当然也不知道它应该在这两条路径之间聚集在一起)。我是否创建了两个组织维度?我是否将组织与其他维度断开,并定义了组织与销售之间的某种直接联系?我是否废除了组织维度,并将组织细节作为促销和客户的属性?

EN

回答 1

Stack Overflow用户

发布于 2015-01-13 08:50:18

您是正确的,因为SSAS将无法处理通过一个路径上的提升和另一个路径上的客户引用组织维度。当您试图构建多维数据集时,这将给您一个错误。

由于每一次销售都可以与0,1或2个组织相关,我建议在组织维度和销售事实之间建立一个桥接表(多到多)。这假设您在每个Sale-事务上都有一个唯一的ID,这样您就可以在Sale-事实(不需要在多维数据集中可见)上创建一个事实维度。

在ETL流中构造桥接器表。它应该只包含两个列,这些列将组织ID与销售ID联系起来。任何销售ID都不应超过两个组织ID。您的最终模型应该如下所示:

代码语言:javascript
复制
 DimCustomer <---.
                 |
              FactSale <---- BridgeSaleOrganisation ----> DimOrganisation
                 |
DimPromotion <---´

在SSAS的维度使用中,您使用FactSale作为中间表,在DimOrganisation和BrdigeSaleOrganisation之间建立了多到多的关系。一旦这是到位,过滤销售由组织维度,将给予您所有的销售属于该组织通过桥牌表,无论他们是通过促销或客户。

更多的例子,许多许多建模,看看这篇优秀的论文由“古鲁”,马可拉索和阿尔贝托法拉利。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27855175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档