• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
PowerCoder
博客园    首页    新随笔    联系   管理    订阅  订阅

SSAS处理时“找不到属性键”的解决办法 (转载)

在SSAS中,经常会遇到“Attribute key not found(找不到属性键)”的错误,这种错误通常是由于某个维度属性(Dimension Attribute)的数据没能从Sql Server导入到Analysis Services中(处理这个维度属性的过程倒是不会出错),而维度关键属性(Dimension Key Attribute)处理时又需要这些数据,因而引发了这个“找不到属性键”的错误。这么讲可能有些抽象,你可以看我以前写的文章全半角空格导致的Analysis Services处理错误,里头有具体的案例。

解决这种问题就需要定位到出问题的数据。而生产环境中数据量一般会比较大,我们不大可能检查所有数据来发现可疑数据,这个时候,SSAS给出的错误提示就很有帮助了。

通常遇到处理异常,SSAS会有两种错误信息提示,一种是

Errors in the OLAP storage engine: The attribute key cannot be found: Table: TableName, Column: ColumnName1, Value: Value1. Table: TableName, Column: ColumnName2, Value: Value2.

这个错误提示会给出数据源中出错的数据,是在哪个表的哪个字段哪个值出的问题。

还有一个是

Errors in the OLAP storage engine: The record was skipped because the attribute key was not found. Attribute: generated attribute X of Dimension: DimensionName from Database: DatabaseName, Cube: CubeName, Measure Group: MeasureGroupName, Partition: PartitionName, Record: RecordNumber.

这个错误信息给出的是Analysis数据库中出错的位置,是哪个AS数据库的哪个数据立方体的哪个维度的哪个维度属性出的问题,以及出错条目编号是多少。

如果出错数据比较好辨认的话,那么我们可以直接在源数据库中使用like操作符查询相关的条目即可。例如下面这个例子:

我们可以很快将出错数据锁定在一个较小的范围。但是如果错误信息像下面这样:

你可能就没那么好定位了,这个时候我们就需要第二个错误提示的帮助了。

为了在处理失败时显示第二个错误提示,我们需要修改维度的ErrorConfiguration属性。打开维度的属性面板,展开ErrorConfiguration中的KeyNotFound,BIDS中如果你新建一个维度,那么默认配置会像下面这样:

如果处理失败,是不会显示第二个错误提示的。我们需要将KeyNotFound设置为ReportAndContinue,或者直接把整个ErrorConfiguration从(custom)改成(default)。

这样我们就能得到第二个错误提示了,第二个错误提示中有一个“记录(Record)”的编号,那么这个编号代表什么含义呢?

我一开始直觉的认为是EmployeeKey的主键键值,后来发现不对,于是猜测是处理时执行的Sql查询返回的结果集的行编号,后来发现又错了。

在经过一番测试后发现,错误提示中的“记录”编号,确实是和Sql查询返回的条目的行编号有关,但却有一定的偏移,一般情况下这个偏移值为1,也就是说,假设SSAS告诉你“记录”7出错了,那么就是第6行的数据出错了。

但有时候这个偏移不一定是1,有可能是2。至于规律和原因我暂时没找到。所以你只需要把出问题的维度属性相关的Sql查询放到Sql Server中运行一遍,然后根据错误提示中的“记录”号找到那附近的几行数据,一般就可以成功定位到错误数据了。

 

原文链接

posted @ 2015-08-18 18:27  PowerCoder  阅读(2426)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3