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中运行一遍,然后根据错误提示中的“记录”号找到那附近的几行数据,一般就可以成功定位到错误数据了。
SSAS处理时“找不到属性键”的解决办法 (转载)的更多相关文章
- 使用Android studio创建的AIDL编译时找不到自定义类的解决办法
使用AS创建ADIL文件时AS会在main文件夹下给我们生成一个aidl文件夹和一个相同包名的包,通常我们会把所有和ADIL相关的类或文件放在这个包下,但是如果存在自定义的类时,程序编译时无法通过,提 ...
- Sql Server Analysis Service 处理时找到重复的属性键、找不到属性键错误(转载)
这是两个非常常见的SSAS处理异常,网上也能找到很多文章讲解决办法,但很少见关于异常原因的分析,先来看看第一个" OLAP 存储引擎中存在错误: 处理时找到重复的属性键",一个维度 ...
- 重装Oracle时出现SID已存在问题的解决办法
重装Oracle时出现SID已存在问题的解决办法 手机打开 注意安装oracle服务器的环境,不稳定导致数据库出现问题,后果很严重! 方法如下: 1.开始->设置->控制面板-&g ...
- VMware下ubuntu与win8共享文件时/mnt/hgfs目录为空的解决办法
VMware下ubuntu(guest)与win8共享文件时/mnt/hgfs目录为空的解决办法 环境:VMware-player-5.0.2-1031769 + ubuntu13.04 1.安装vm ...
- vs调试windows mobile程序时布署时间太长的解决办法
vs调试windows mobile程序时布署时间太长的解决办法 1.VS平台上,选工具-选项-项目和解决方案-MS BUILD项目生成输出详细信息中选择“诊断”,目的是在调试窗口中看出哪个过程编译的 ...
- 向SDE图层中添加大量数据时,出现ORA-00604以及ORA-01000的解决办法
转自原文 向SDE图层中添加大量数据时,出现ORA-00604以及ORA-01000的解决办法 写了一个小程序,从一个列表中读取坐标串,每个坐标串生成一个IPolygon,然后将这些Polygon添加 ...
- installshield制作的安装包卸载时提示重启动的原因以及解决办法
原文:installshield制作的安装包卸载时提示重启动的原因以及解决办法 有时候卸载installshield制作的安装包程序,卸载完会提示是否重启电脑以完成所有卸载,产生这个提示的常见原因有如 ...
- 执行Git命令时出现各种 SSL certificate problem 的解决办法
执行Git命令时出现各种 SSL certificate problem 的解决办法 来源 https://www.cnblogs.com/chenzc/p/5842932.html 比如我在win ...
- FW 执行Git命令时出现各种 SSL certificate problem 的解决办法
比如我在windows下用Git clone gitURL 就提示 SSL certificate problem: self signed certificate 这种问题,在windows下出现 ...
随机推荐
- Linux 系统目录结构
登录系统后,在当前命令窗口下输入命令: ls / 你会看到如下图所示: 树状目录结构: 以下是对这些目录的解释: /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boot ...
- css样式设计
1.行内元素(图片.文本)水平居中 通过给父元素设置 text-align:center html代码: <body> <div class="txtCenter" ...
- spring随手笔记1:constructor-arg
<bean id="Hello" class="com.ltf.captha.serviceImpl.HelloWorldServiceImpl"> ...
- iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(二)
一.实现效果 二.实现代码 1.数据模型部分 YYQQGroupModel.h文件 // // YYQQGroupModel.h // 02-QQ好友列表(基本数据的加载) / ...
- oracle 11g ORA-12541: TNS: 无监听程序 (DBD ERROR: OCIServerAttach)
From :http://www.cnblogs.com/wangyt223/archive/2012/12/11/2812931.html em无法浏览,同时监听起不来.同时他的监听服务还是正常的, ...
- error: C++ preprocessor "/lib/cpp" fails sanity check
在安装protobuf,知悉./Configure时候报错“error: C++ preprocessor "/lib/cpp" fails sanity check” 下面是转载 ...
- ViewHolder简洁写法
ViewHolder holder = null; if(convertView == null){ convertView = mInflater.i ...
- IIS 工作原理之非托管代码旅程(一)
IIS6改变 IIS6可以为每个不同的虚拟目录创建不同的程序池,这样缩小了IIS的Application Pool的颗粒度,不同的虚拟目录之间是互不影响的. IIS6(和IIS7经典模式)与IIS7集 ...
- C++虚函数的实现机制示例
C++虚函数的实现机制是通过一个vtable表,指向子类的虚函数地址. 另外,如果不是虚函数,则不能实现用父类引用调用子类方法. #include <windows.h> #include ...
- 超级链接a中javascript:void(0)弹出另外一个框问题
转字:http://my.oschina.net/castusz/blog/68186 结果在IE.Firefox.Chrome都是先执行的onclick事件,在项目中我们尽量不要同时使用这两种方式. ...