聚合存储多维数据集的压缩维

Essbase 聚合存储 (ASO) 多维数据集选择压缩维可能会显著影响性能。默认情况下,它是“Accounts(帐户)”维。理想的候选维是在优化数据压缩的同时保持检索性能。

更改压缩维将触发对立方的完全重构。压缩维必须是单个动态层次。如果该维具有不同的层次设置,例如多个层次,则会自动将其设置为单个动态层次。原始层次设置丢失(将其他维设置为压缩不会返回原始层次设置)。属性维不能成为压缩维,具有与属性关联的维也不能。

注意:

本主题中的信息适用于加载的数据库。请参阅将数据加载到聚合存储多维数据集

维护检索性能

由于压缩维是动态计算的,因此在选择压缩维时,必须考虑动态计算维的设计注意事项。动态维在检索时计算,因此数据检索时间比存储的层次长。

如果将具有大量 0 级成员的维标记为压缩,则较高级别的查询需要更长时间,因为它们需要检索多个 0 级成员。如果用户对一个大维执行许多上层检索,则它不是压缩维的合适候选对象。

查看压缩估计统计信息

您可以在 Essbase Web 界面MaxL 或 REST API 中查看详细的压缩和查询统计信息。这些估计值可帮助您选择要用作压缩维的最佳维。对于每个维,您可以查看存储的 0 级成员数,这会影响检索性能;影响压缩的平均包填充和平均值长度;以及 0 级大小。

要查看统计信息,请选择以下方法之一:

  • Essbase Web 界面。示例:


    当假设将不同的维用作压缩维时,ASO 多维数据集的估计压缩信息。这些估计值可帮助您选择要用作压缩维的最佳维。返回的统计信息包括“Dimension Name(维名称)”、“Is Compression(压缩)”(true/false)、“Stored Level0 Members(存储级别 0)”、“Average Bundle Fill(平均捆绑包填充)”、“Average Value Length(平均值长度)”和“Level0(MB)”。

  • query database MaxL 语句的聚合存储版本。示例:

    query database ASOSamp.Basic list aggregate_storage compression_info;
  • REST API 端点获取 ASO 压缩信息

请参见以下每个压缩和查询相关统计信息的说明。

已存储的 0 级成员

如果将具有大量存储的 0 级成员的维标记为压缩,则该维的性能不会很好。与任何动态计算的维一样,从压缩维进行高级别检索通常较慢。

平均包填充

Compression is more effective if values are grouped together in consecutive members on dimensions or hierarchies rather than spread throughout the outline with lots of #MISSING data between values. Essbase 通过存储组的位置和内容的有关信息(而不是分别存储每个成员的这些信息),来节省内存。平均包填充量是存储在组中的值的平均数量。它可以在 1 和 16 之间变动,16 最好。选择具有较高平均包填充量的压缩维意味着数据库压缩得更好。

在某些大纲内,您可以通过对压缩维中的数字进行排序以改善压缩,以便将频繁填充的成员分组在一起。将填充的成员分组在一起时,每个包可以容纳更多的值,因而将增加平均包填充数并改善压缩。

平均值长度

平均值长度是单元格中存储的值所需的平均存储大小(以字节为单位)。它可以在 2 个字节和 8 个字节之间变动,2 个字节最好。如果不使用压缩,在单元格中存储一个值将需要 8 个字节。如果使用压缩,可能需要的字节更少,具体取决于值长度。例如,10.050001 即使在压缩时也需要 8 个字节来存储,但是 10.05 可能仅需要 2 个字节(压缩时需要 4 个字节来存储)。具有较小平均值长度的维会使数据库压缩得更好。

将数据值舍入到不超过小数点后两位可以减小平均值长度,从而改善压缩。

预期的级别 0 大小

此字段指示压缩数据库的估计大小。较小的预期 0 级大小表示选择此维应该能获得更好的压缩效果。