比较混合模式、块存储和聚合存储

如果未启用混合模式,块存储算法在用于大型稀疏维时对动态计算成员存在限制。混合模式(和聚合存储)针对动态相关性分析进行了更多优化。了解主要差异可帮助您选择最适合 Essbase 应用程序的查询处理器类型。

如果未启用混合模式,则必须在块存储数据库中存储大型稀疏维;将它们设为动态将会导致查询或计算时出现太多块 I/O,从而影响性能。存储非常大的稀疏维会导致批聚合时间过长,以及随稀疏维的数量和大小增长而相应增大的数据库过大。但即便存在这些缺点,块存储依然凭借强大的功能而被广泛应用。

聚合存储专门用来支持包含更多、更大的维的大型数据库。与块存储不同,它不需要预先聚合大型稀疏维以实现良好的查询性能。键位于聚合存储数据库内核中,这有助于跨大量维数快速进行动态聚合。

尽管聚合存储具备所有这些优势,但仍有许多情况更适合使用块存储,例如,需要能够以任何粒度加载数据,频繁运行复杂的批分配,或者为全球财务实施货币转换。在这种情况以及许多其他情况下,混合模式可能是不错的解决方案。混合模式结合了块存储和聚合存储各自的最佳特性。在混合模式下,Essbase 可以:

  • 发挥全过程计算的灵活性,即使在依靠动态稀疏维进行计算时。

  • 在访问动态稀疏成员时使用混合引擎进行查询。对于无法通过这种方式进行处理的小部分查询,Essbase 将使用块存储计算流来满足请求。

  • 如果将稀疏成员标记为动态,则具有以下好处:

    • 不必进行预先聚合
    • 改进了重建性能

    • 改进了备份性能

    • 减少了对磁盘空间的需求

  • 由于混合模式涉及动态计算,因此您可以使用解析顺序来确定计算的顺序。

注:

混合计算无论是由查询还是计算脚本驱动,都在一个临时内存空间中执行,它会使用一个公式高速缓存和聚合存储高速缓存。

主要差异

了解以下主要差异可以帮助您选择最适合应用程序的查询处理器类型。

要求 聚合存储 (ASO) 块存储 (BSO) 混合模式

针对在许多稀疏维之间进行快速聚合进行了优化

针对尽量减少磁盘空间使用量以及缩短备份时间进行了优化

针对财务应用程序进行了优化

能够执行分配

能够执行批量计算

支持成员公式

是,表示为 MDX

是,表示为 Essbase 计算函数

是,表示为 Essbase 计算函数

针对成员公式中的向前引用进行了优化

能够定制计算/聚合的解析顺序

混合模式下的解析顺序

能够指定自下而上的查询执行,以提高小型输入数据集的相关性分析速度

QUERYBOTTOMUP 配置设置

@QUERYBOTTOMUP 计算函数

能够跟踪和调试查询执行

QUERYTRACE

QUERYTRACE

能够限制一个查询允许使用的内存

MAXFORMULACACHESIZE

MAXFORMULACACHESIZE

支持两遍计算

能够在任何级别加载数据

否。只能加载没有公式相关项的 0 级单元格

是 — 存储层

否 — 动态级别

能够使用缓冲区以增量方式加载数据

公式应用于稀疏维的求值结果与应用于密集维的求值结果可能有所不同。

不适用

是。在未启用混合模式的块存储上,可以迭代方式编写 Essbase 计算脚本,以解决稀疏块的相关项问题。如果将维类型从稀疏更改为密集或反之,相同的公式可能会得到不同的结果。

否。公式相关项的计算结果相同,与稀疏或密集无关。

混合模式下,Essbase 使用算法解决动态相关项问题。在某些情况下,在混合模式下通过计算脚本获得的数据与未启用混合的块存储模式下获得的数据可能不同。