我是SSAS的新手,正在建立概念证明。我喜欢“角色扮演”维度的想法,但是我无法获得一种不基于日期的设置。这是用例:
在我们的ERP系统中,我们有一个事实表,我们将其称为“时间条目”,该表具有:
我还有一个“资源”表,我将这些表与外键相关:
创建数据源视图时,我会在以下两者之间建立关系:
我的“资源”维度可以成功部署和处理,并且具有以下属性:
我的“工作条目”多维数据集有一个度量,“工作小时数”。当我添加“资源”维度时,它将创建三个角色扮演维度:
进行处理时,我收到以下错误:
OLAP存储引擎中的错误:处理时找不到属性键:表:“时间条目”,列:“ user_id”,值:“一些数字”,属性为“资源ID”。
到目前为止,我关注的唯一一则允许我成功解决问题的帖子就是:
TL; DR-
问题在于,因为在创建关系之前已将维度添加回去,所以我们没有角色扮演维度。
我觉得这里缺少一些简单的东西,但是我不太清楚。谁能告诉我为什么我的角色扮演维度不起作用?
答案 0 :(得分:0)
维度的角色扮演功能不取决于其类型。您的维度可以用于诸如Date维度之类的角色扮演场景。
关于您的问题-SSAS引擎有时可能会构建奇怪的查询来提取维数据,尤其是当维基于来自多个表的数据时。要检查和调查它:
user_id
值user_id
属性的SQL查询。它正在处理user_id
属性日志条目。以我的经验-当在具有某种关系的两个表上建立错误的维度时,就会发生这种情况。 SSAS引擎已建立具有严格内部联接的查询,并且必须限制较少的外部联接。
您可以通过在SSDT上播放DSV属性为非空值来解决此问题,但我发现直接在DSV中编写具有正确联接的SQL查询更为简单。