管理具有缓慢变化维度的 PerformancePoint 过滤器

Managing PerformancePoint Filters With Slowly Changing Dimensions

一些背景信息:

我有一个维度 table,它使用 SCD2 来跟踪我们公司的用户变化(团队变化、职位变化等),请参见下面的示例:

我已经构建了一个 Analysis Services 多维数据集并为维度创建了所有必要的层次结构,并且在浏览和向下钻取事实 table 时效果很好。

我遇到的问题是 PerformancePoint 仪表板上的过滤器。当我将用户维度 table 与它的多个用户实例一起使用时,它会在列表中显示重复项。我可以理解为什么在维度上引用代理 ID。但是,如果我选择 A 团队的第一个实例,我将看到他们在特定时期内的所有销售额,如果我选择第二个实例,我将看到他们在不同时期内的所有销售额。

处理此类行为的最佳方法是什么?理想情况下,我希望看到按字母顺序排列的不同团队列表,当我选择团队名称时,它会显示他们随时间推移的所有数据。

我考虑过使用 MDX 查询过滤器,但我想看看是否还有什么我没有考虑过的。

我知道这不是一个简单快速的问题,但我们将不胜感激!

在多维数据集上浏览了我的用户维度 table 后,答案很简单。

  1. 在我的用户维度下,我在我的属性列表中添加了 2 个重复的属性("Team Filter" 是 "Team" 的副本,"User Filter" 是 "User Name" 的副本)这些将仅用于过滤仪表板。

  1. 然后,在每个重复项的属性下,我将 AttributeHierarchyOptimizedState 设置为 "Not Optimized",我还将它们的 AttributeHierarchyVisible 设置为 false,因为我在中间显示了层次结构 window 中的两个重复属性.

  1. 将您的 Cube 部署到服务器并进入 PerformancePoint。创建一个新的 MDX 过滤器(此图显示完成的过滤器)

  1. 这是我使用的代码,它只显示有事实依据的维度成员(大大减少了列表),并且通过在维度上使用所有成员,它还让我可以选择显示 "All" 在列表的顶部。

  1. 部署新过滤器,现在您可以看到不同的用户和团队列表,完美运行并选择每个实例(无论 SCD2 行如何)