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