【发布时间】:2016-11-26 12:36:47
【问题描述】:
我们目前正在使用基于事实表的退化维度创建一个 OLAP 多维数据集,以链接到另一个一对多事实表。我们在 SQL Server 2012 上将源数据库设置为SQL Server 2012 (110),并将其兼容级别。我们也将这个退化维度上的stringstoragecompatibilitylevel 设置为1100。我们甚至将所有维度和多维数据集分区设置为使用1100。然而,我们仍然收到以下错误:
Processing Dimension Attribute 'Data Time Period ID' failed. 155130000 rows have been read.
Start time: 7/21/2016 9:31:08 AM; End time: 7/22/2016 10:08:00 AM; Duration: 24:36:52
Error Messages 1
File system error: A string store or binary store with a compatibility level of '1050'
is at the maximum file size of 4 gigabytes. To store additional strings, you can change
the StringStoresCompatibilityLevel property of the associated dimension or distinct count
measure to '1100' and reprocess. This option is only available on databases with a
compatibility level of '1100' or higher.
Physical file: \\?\I:\s2012\OLAP\Data\DATAwarehouse.0.db\DimfactDegenerate.0.dim\18.Data Time Period ID.asstore.
Logical file: .
Errors in the OLAP storage engine: An error occurred while the 'Data Time Period ID' attribute
of the 'DimfactDegenerate' dimension from the 'DATAwarehouse' database was being processed.
目标 OLAP 数据库、维度、多维数据集分区和源数据仓库都设置为使用1100。我已经通过编写数据库脚本并搜索兼容性级别来验证 OLAP 数据库/维度/分区都在 1100 上。我什至搜索了1050,但它没有显示在脚本中。
事实表中有大约 9 亿条记录。桥表包含 18 亿条记录。基于事实表的退化维度中使用的 2 列的总大小约为 15 GB(仅基于这些列的平面文件输出 - 非常接近信封)。添加退化维度的所有行都是唯一的。通过阅读关于兼容性级别应该如何“通过”我们感到满意:
- 数据库源位于 SQL Server 2012 上,并设置了兼容级别。
- 目标 OLAP 数据库正在使用
1100兼容性 - Cube 分区使用
1100兼容性 - 尺寸使用
1100兼容性 - 记录不到 650 亿条
- 所有记录都是唯一的
我还需要哪些其他选项或设计更改来解决这个看似不可能的错误?
【问题讨论】:
-
嗨,我现在正面临这个问题。能否请您告诉我,您是如何解决此问题的?
-
@Chandru,我相信我的最终“解决方案”只是从头开始重新创建 OLAP 项目,首先将所有内容设置为 1100。如果我在构建/处理之后设置了兼容性,则构建 XML 中的某些内容不会被更新。不是最好的解决方案,但这就是我解决它的方法。
-
感谢您的回复。好的,将尝试此解决方案。如果您知道任何其他不同的解决方案,请告诉我们。