当我尝试处理我的 SSAS2012 Olap Cube 时,我得到了很多这样的错误
Errors in the OLAP storage engine:
A duplicate attribute key has been found when processing: Table: 'dbo_ART'
,Column: 'NAZIV'
,Value: 'ARMATURA ZA KERAMIĆKI VODOKOTLIĆ'.
The attribute is 'Art Naziv'.
Errors in the OLAP storage engine: The record was skipped because the attribute key is a duplicate.
Attribute: Art Naziv of Dimension: ART from Database: robot, Record: 2451.
当我调查此错误时,我发现在我的事务数据库表 ART 中存在两个完全不同的行,其值为 NAZIV ='ARMATURA ZA KERAMIĆKI VODOKOTLIĆ'和'Č' insead 放在那个地方是字母'C'。
如果我做
select naziv
from art
group by naziv
having count(*)>1
我没有得到任何重复的行。
因为一些事务数据库如何知道字母'Č','Ć','C'之间的区别。
但是 OLAP 多维数据集在处理 Dimension ART 时将所有这些字母读取为“C”并获取重复键。
我的事务数据库位于 SQL 2012 R2 标准服务器上,排序规则 =Croatian_CI_AS 服务器通常设置为 Latin1_General_CI_AI。我的 SSAS 2012 Enterprise 服务器将 Windows 排序规则设置为 Latin1_General 并且所有敏感都未选中。
我应该如何设置 SSAS 服务器的语言设置以避免此错误。那是“口音敏感”设置。或者我需要将我的 Windows 排序规则更改为其他内容?
您必须在查询或 SSAS 中更改排序规则设置。有几种不同的选项,所以重要的问题是您是否将 SSAS 用于其他数据库而不是克罗地亚语_CI_AS 数据库。
如果是这样,您可以使用 collate Latin1_General_CI_AS 填充所有查询,以确保您将 Latin1 排序规则中的数据放入多维数据集中。如果您仅对克罗地亚数据使用 SSAS,则将 SSAS 排序规则更改为相同。