• 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中运行一遍,然后根据错误提示中的“记录”号找到那附近的几行数据,一般就可以成功定位到错误数据了。

    原文链接

  • 相关阅读:
    [转载][QT][SQL]sql学习记录7_sqlite 日期 & 时间
    [转载][QT][SQL]sql学习记录6_sqlite Autoincrement(自动递增)
    [转载][QT][SQL]sql学习记录5_sqlite视图(View)
    [转载][QT][SQL]sql学习记录4_sqlite约束
    [转载][QT][SQL]sql学习记录3_sqlite之update delete like
    [转载][QT][SQL]sql学习记录2_sqlite数据类型
    [转载][QT][SQL]sq]学习记录1_模糊搜索
    [svn]显示日志很慢 点击文件查看更改记录也贼慢
    [QT]给QApplication安装事件过滤器 app.installEventFilter
    [QT]数据库SQLITE使用错误记录
  • 原文地址:https://www.cnblogs.com/OpenCoder/p/4740258.html
Copyright © 2020-2023  润新知