聚集存储多维数据集重构

Essbase ASO 多维数据集重构可能由一些大纲更改(包括对层次结构的更改)强制执行。了解层次结构的类型。

层次结构是顶级成员及其后代。

  • 动态层次仅包含一个存储级别。在 ASOsamp.Basic 中,“帐户”维是动态层次。

  • 属性维是一个层次。第 1 代成员是层次结构的顶层成员。

  • 如果标准维未标记为启用多个层次,则它是一个层次。第 1 代成员是层次结构的顶层成员。

  • 如果将标准维标记为启用了多个层次,则它包含多个层次,并且第 2 代成员是层次的顶级成员。例如,ASOsamp.Basic 中的“产品”维包含两个层次。顶级会员是第 2 代会员 All Merchandise 和 High End Merchandise。


    此图像显示产品维的层次结构,如图像前面的文本中所述。

更改大纲会影响哪些内容:

  • 在重组之前是否必须清除数据

  • 重组所需的时间和存储空间

聚合存储多维数据集重构的级别

编辑聚合存储大纲时,请预测重组成本。在某些大纲更改后,将启动完整的 Essbase ASO 多维数据集重构。其他变化只会导致轻微重组。完全重组可能需要清除数据或视图,并且比轻重组具有更高的影响。

为了最大限度地减少重构所需的时间和存储,如果大纲频繁更改,请分析大纲和大纲更改的类型。

添加、删除和移动维的重构成本最高:您必须重新加载输入数据、选择聚合视图并运行聚合。

下表列出了聚合存储多维数据集的重构级别,从最高到最低(关于时间、存储和数据):

表 39-1 聚合存储重构级别

用户大纲更改 Essbase- 重构级别 绩效影响

添加、删除或移动标准维

清除数据并聚合视图,并执行完整的大纲重构

很高

用户必须重新加载输入(级别 0)数据,选择聚合视图,然后重新运行聚合。

  • 添加、删除或移动层次。

  • 更改层次结构中存储的级别数。

    请参见:

  • 将存储层次的顶层成员从仅标签更改为已存储或从已存储更改为仅标签。

  • 将动态层次更改为存储的层次或存储的层次更改为动态层次。

  • 更改主要或替代层次结构,使其匹配或不再匹配其主要或替代层次结构。

    必须在所有替代层次结构中直接或间接表示主要层次结构的所有 0 级成员(例如,作为其子代之和的父代可以表示其子代)。主要层次结构的顶层必须等同于每个替代层次结构的顶层。请参阅示例:替代层次结构中的更改

清除聚合视图并执行完整的大纲重构

很高

存储要求是数据库文件(.dat 文件)大小的 3 倍。

用户必须选择聚合视图并重新运行聚合。

执行未包括在其他类别中的更改;例如,删除或移动成员,或添加不是其同级中的最后一个成员

执行完整大纲重构

High

存储要求是数据库文件(.dat 文件)大小的 3 倍。

对备用层次或属性维执行轻重构更改(如下所述)

重建基于属性维或备用层次的所有聚合视图

最低价

存储要求是受影响视图大小的 3 倍。仅当您使用查询跟踪来根据使用情况选择视图时,此类聚合视图通常才存在。请参见 Select Views Based on Usage

在没有存储的 0 级成员(例如,所有 0 级成员都共享或具有公式)的非属性维上,添加子分支或子分支,而无需更改层次中的级别数,也无需跨越 2 个边界的幂。

执行轻型轮廓重构

注意:

如果层次中的级别数发生更改,则 Essbase 会清除所有聚合视图并执行完整的大纲重构。性能影响非常高。

如果层次中的级别数未更改,但添加子分支或子分支跨越 2 个边界的权力,则 Essbase 将执行完整的大纲重构。性能影响很大。

很低

在具有存储级别 0 成员的非属性维上:

  • 添加一个子代作为父代的最后一个子代,而不跨越 2 个边界(1、2、4、8、16 等)的力量。例如,如果父代成员有三个子代,则可以将第四个子代添加为父代的最后一个子代。

  • 添加子分支作为现有父项的最后一个子分支,而不跨越 2 个边界的幂,也不更改层次中的级别数。

示例:

  • 重命名成员

  • 更改公式

  • 更改别名

  • 更改动态层次合并运算符(例如,从 + 更改为 -)

执行轻型轮廓重构。

很低

在具有存储级别 0 成员的非属性维上:

  • 添加一个跨越 2 个边界的权力的子项作为父项的最后一个子项。例如,如果一个父代成员有三个子代,并且您添加了一个第四个和第五个子代,则第五个子代将跨越 2 个边界的权力。请参阅示例:添加子成员

  • 对于将子分支添加为现有父分支的最后一个子分支(跨越 2 个边界的权力)或更改层次中的层数(触发完整大纲重构)的情况,请参见示例:添加子分支

清除聚合视图并执行完整的大纲重构

很高

大纲更改示例

示例演示了各种 Essbase 聚合存储 (ASO) 大纲更改的重构成本:添加更改存储级别数或不更改存储级别数的成员、更改备用层次、添加子成员以及添加子分支。

本节包含 Levels of Aggregate Storage Cube Restructuring 中介绍的大纲更改的示例。

示例:层次结构中存储的级别数没有更改

在 ASOsamp.Basic 中,“度量”维标记为“帐户”。因此,作为动态层次,度量仅包括一个存储级别。


此图显示了具有一个存储级别(比率)的度量维的大纲。

添加子成员“全部与比率”不会更改“度量”维中存储的级别数。保存大纲将触发光线重构。


此图像显示将“全部作为子项添加到比率”的效果,如图像前面的文本中所述。

在 ASOsamp.Basic 中,收入级别是存储的层次维。


此图显示“收入级别”存储的层次维的大纲,其中包含两个级别。

添加子成员不会更改层次中的级别数(两个)。允许在末尾添加第七个或第八个子成员;但是,添加第九个子成员跨越 2 个边界的权限(请参见示例:添加子成员),需要进行完全重组。


此图显示添加到“收入级别”的子成员。在图像前面的文本中描述了添加子成员的效果。

示例:层次结构中存储的级别数更改

在 ASOsamp.Basic 的 Product 维中,将 Photo Printers 重命名为 Printers 并添加子成员将所有商品层次结构中的级别数从 4 增加到 5。保存大纲时, Essbase 会清除所有聚合视图并执行完全重构。


此图显示“所有商品”层次结构的大纲。在图像前面的文本中描述了添加子成员(增加存储级别的数量)的效果。

示例:替代层次结构中的更改

如果删除“按类别列出的饮料”下的共享成员橙色,并且未删除“饮料”下的原型成员,则替代层次结构“按类别列出的饮料”不再是“饮料”层次结构的副本。保存大纲时, Essbase 会清除所有聚合视图并执行完全重构。

如果删除共享和原型橙色成员,则替代层次结构“按类别列出的饮料”仍是“饮料”层次结构的副本。保存大纲时, Essbase 将执行完全重构,但不清除聚合视图。


此图显示“饮料”层次结构和“按类别列出的饮料”替代层次结构的大纲。图像前面的文本介绍了层次结构更改的效果。

示例:添加子成员

在 ASOsamp.Basic 中,在“All Merchandise(所有商品)”层次结构中的“Systems(系统)”下添加子代成员会将“Systems(系统)”下的子代数量增加到 3 个,并跨越 2 个边界。保存大纲时, Essbase 将执行完全重构。


此图显示“所有商品”层次结构的大纲。在图像前面的文本中描述了添加子成员的效果。

但是,在计算机和外设下添加一个子成员会使计算机和外设下的子代数量从三增加到四。添加第四个子代(必须在现有成员之后添加)不会跨越 2 或 4 的边界。子项必须在现有成员之后添加。保存大纲时, Essbase 将执行轻重构。


此图显示了 "Computers and Peripherals"(计算机和外围设备)的大纲,它位于 "All Merchandise"(所有商品)层次结构中。在图像前面的文本中描述了添加子成员的效果。

示例:添加子分支

在 ASOsamp.Basic 中,在“所有商品”层次结构的“计算机”和“外围设备”下添加子分支会将子项数增加到 4 个。添加此子代(必须在现有成员之后添加)不会超出 2 个边界的权限。这个名为“其他外围设备”的新成员有两个孩子。系统(是其他外围设备的兄弟姐妹)有两个孩子。对于同级的同级成员的子项,添加子分支将保持在 2 个边界的幂之内。保存大纲时, Essbase 将执行轻重构。


此图显示了计算机和外围设备的大纲,其中添加了子分支。在图像前面的文本中介绍了添加子分支和成员的效果。

添加具有三个子成员的子分支会跨越 2 个边界的权限,并且可能需要 Essbase 执行完全重构。但是,如果系统已经有三个成员,则 2 个边界的功率将是 4 个,最多可以向其他外围设备添加 4 个子项,而无需触发全面重组。