selva Asked: 2015-06-17 23:30:13 +0800 CST2015-06-17 23:30:13 +0800 CST 2015-06-17 23:30:13 +0800 CST 更新 OLAP Cube 数据 772 我们在我们的项目中使用 OLAP,我们面临一个场景,我们需要每天使用实时数据更新多维数据集。 我需要一些关于更新多维数据集中数据的最佳方法的建议。 每当新数据到达并在该表中创建条目时,我们需要像触发器一样更新多维数据集中的当前值。 sql-server sql-server-2014 1 个回答 Voted Best Answer Tom V 2015-06-18T03:11:15+08:002015-06-18T03:11:15+08:00 很难为您提供有关最佳设置的具体指导,但无论如何都不存在写入 OLAP 多维数据集的触发器之类的东西。 不过,我可以给你一些起点。 您需要研究多维数据集的不同存储选项。 默认情况下,多维数据集使用MOLAP(多维 OLAP),您可以在其中按计划处理多维数据集 [1],所有数据和聚合都存储在 OLAP 数据库中。这具有延迟,因为关系数据仅在处理后在多维数据集中可见。 从开发人员的角度来看,这是迄今为止最简单的选择,但不能解决您的要求。 [1] 使用 MOLAP,有关主动缓存选项,请参见下文 还有一种ROLAP(关系 OLAP)存储模式,它将聚合存储在关系数据库的索引视图中。多维数据集中没有数据副本,但数据在多维数据集中立即可用。 这当然会影响 SSAS 多维数据集的查询性能。通常查询会返回较慢,处理时间会更长。 如果性能太慢,还有第三种选择,称为HOLAP(混合 OLAP),它将数据存储在关系数据库中,但聚合存储在 OLAP 数据库中。更新源数据时,将再次处理聚合。当从聚合中解析查询时,这提供了零延迟和相对不错的性能,但是当用户向下钻取或查询必须访问关系存储时,性能会降低。 主动缓存 您还应该查看确定聚合更新频率的主动缓存。这应该是处理对关系数据库的负载与 SSAS 查询的性能和多维数据集的延迟之间的平衡。 如果您使用主动缓存,多维数据集会侦听基础数据源中的更改并按照您选择的计划处理您的 MOLAP 分区。 查看这篇SQL Server Proactive Caching 简介,了解其工作原理
很难为您提供有关最佳设置的具体指导,但无论如何都不存在写入 OLAP 多维数据集的触发器之类的东西。
不过,我可以给你一些起点。
您需要研究多维数据集的不同存储选项。
默认情况下,多维数据集使用MOLAP(多维 OLAP),您可以在其中按计划处理多维数据集 [1],所有数据和聚合都存储在 OLAP 数据库中。这具有延迟,因为关系数据仅在处理后在多维数据集中可见。
从开发人员的角度来看,这是迄今为止最简单的选择,但不能解决您的要求。
[1] 使用 MOLAP,有关主动缓存选项,请参见下文
还有一种ROLAP(关系 OLAP)存储模式,它将聚合存储在关系数据库的索引视图中。多维数据集中没有数据副本,但数据在多维数据集中立即可用。
这当然会影响 SSAS 多维数据集的查询性能。通常查询会返回较慢,处理时间会更长。
如果性能太慢,还有第三种选择,称为HOLAP(混合 OLAP),它将数据存储在关系数据库中,但聚合存储在 OLAP 数据库中。更新源数据时,将再次处理聚合。当从聚合中解析查询时,这提供了零延迟和相对不错的性能,但是当用户向下钻取或查询必须访问关系存储时,性能会降低。
主动缓存
您还应该查看确定聚合更新频率的主动缓存。这应该是处理对关系数据库的负载与 SSAS 查询的性能和多维数据集的延迟之间的平衡。
如果您使用主动缓存,多维数据集会侦听基础数据源中的更改并按照您选择的计划处理您的 MOLAP 分区。
查看这篇SQL Server Proactive Caching 简介,了解其工作原理