【问题标题】:Non-Date Roleplaying Dimensions in SSASSSAS 中的非日期角色扮演维度
【发布时间】:2019-01-07 20:56:51
【问题描述】:

我是 SSAS 新手,正在建立概念验证。我喜欢角色扮演维度的想法,但我无法获得一种不基于日期的设置。这是用例:

在我们的 ERP 系统中,我们有一个称为“时间条目”的事实表,其中包含:

  • 用户 ID
  • Biller_ID
  • Approver_ID
  • 工作时间

我还有一个“资源”表,我将这些表作为外键关联起来:

  • Resource_ID
  • 部门名称

当我创建我的数据源视图时,我创建了以下关系:

  • User_ID -> Resource_ID
  • Biller_ID -> Resource_ID
  • Approver_ID -> Resource_ID

我的“资源”维度可以成功部署和处理,具有以下属性:

  • Resource_ID
  • 部门名称

我的“工作条目”多维数据集有一个度量,“工作时间”。当我添加“资源”维度时,它会创建三个角色扮演维度:

  • 用户
  • 审批人资源
  • 帐单资源

当我去处理时,我收到以下错误:

OLAP 存储引擎中的错误:处理时找不到属性键:表:'时间条目',列:'user_id',值:'某个数字',属性是'资源 ID'。

到目前为止,我关注的唯一一个让我成功排除故障的帖子是这个:

https://www.sqlservercentral.com/Forums/1219713/Errors-in-the-OLAP-storage-engine-The-attribute-key-cannot-be-found-when-processing-Even-though-key-Exist-in-Dim-Table

TL;DR -

  • 我已经删除了数据库中的 factable 和 dim 表之间的关系。
  • 我刷新了dataSourceViews,表之间没有关系
  • 我删除了立方体设计中的尺寸
  • 我在立方体设计中重新创建了尺寸
  • 然后我在 dataSourceViews 中建立事实表中的外键和暗表中的主键之间的关系
  • 我重新处理了立方体

这样做的问题是,因为我们在创建关系之前添加了维度,所以我们没有角色扮演维度。

我觉得我在这里遗漏了一些简单的东西,但我无法弄清楚。谁能告诉我为什么我的角色扮演维度不起作用?

【问题讨论】:

    标签: ssas dimension


    【解决方案1】:

    维度的角色扮演功能不依赖于其类型。您的维度可用于角色扮演场景,如日期维度。
    关于您的问题 - SSAS 引擎有时可能会构建提取维度数据的奇怪查询,尤其是当您的维度基于多个表中的数据时。要检查和调查它:

    • 修复错误消息中的 user_id
    • 对相应维度进行处理更新或处理满,并从处理窗口窗体中获取用于处理user_id属性的SQL查询。正在处理user_id 属性日志条目。
    • 复制 SQL 查询并运行它。检查它是否从上面的错误信息中返回 id。
    • 如果缺少值 - 调查查询

    根据我的经验,当在两个具有某种关系的表上构建错误的维度时,就会发生这种情况。 SSAS 引擎已经构建了具有严格内连接的查询,并且它必须具有较少限制的左外连接。
    您可以使用 SSDT 来修复它,其中 DSV 属性为非空,但我发现直接在 DSV 中编写具有正确连接的 SQL 查询更简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 2020-01-25
      • 1970-01-01
      相关资源
      最近更新 更多