ssas - 维度的 ProcessUpdate 触发处理多维数据集中所有度量值组的所有分区
问题描述
我在多维数据集中有帐户和客户维度,它们连接到相同的度量值组(多维数据集中大约有 15 - 20 个度量值组)。
当我运行 XMLA 命令来处理更新这两个维度时,如下所示:
<Batch>
<Parallel>
<Process>
<Object>
<DatabaseID>My Database</DatabaseID>
<DimensionID>Dim Customer</DimensionID>
</Object>
<Type>ProcessUpdate</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Parallel>
</Batch>
对于 Account 维度,它会在几分钟内完成,因为它不会触发对所有度量值组的所有分区的处理。但是在客户维度的情况下,它会触发对所有度量组的所有分区的处理,因此该维度的过程更新持续时间比整个多维数据集的完整处理时间更长。
我不确定在一个维度而不是另一个维度的情况下维度将触发所有这些处理的原因是什么。对于这两个维度,“处理受影响的对象”设置为“不处理”。我应该在哪里看,检查什么,我能以某种方式阻止这种重新处理的发生吗?
谢谢!
解决方案
ProcessUpdate的文档指出
强制重新读取数据和更新维度属性。将删除相关分区上的灵活聚合和索引。
它可能导致聚合被丢弃。
具体来说,有一个关于不同处理选项的MSDN 博客,其中详细说明了何时可以删除聚合
根据维度表中更改的性质,ProcessUpdate 可能会影响依赖分区。如果只添加了新成员,则分区不受影响。但是,如果成员被删除或成员关系发生变化(例如,客户从雷德蒙德搬到西雅图),那么分区上的一些聚合数据和位图索引将被删除。
BI 世界的关键人物之一 Chris Webb 也在博客中谈到了这一点,具体来说,他有以下话要说:
清除索引/聚合的行为也在 Profiler 中显示为“分区处理操作”
推荐阅读
- javascript - Leaflet Control Geocoder - 搜索框错误
- jira - 如何通过 REST API 获取 Confluence 的许可信息?
- session - XCTest 断言失败:请求自动化会话失败
- javascript - i18next 后端加载资源取决于检测到的语言 js
- java - 如何解决 org.glassfish.jersey.server.ContainerException: java.lang.NoSuchMethodError: org.jvnet.mimepull.MIMEMessage.close()V
- node.js - 从“快递”进口快递;SyntaxError:意外的标识符
- javascript - 如何使用 jQuery 在多选下拉列表中设置值?
- python - 彭博 API 安装
- cluster-analysis - BIRCH 聚类后 Cluster Size 太大
- angular - 无法使用 Angular cli 在 Angular 中注册服务人员