复制的分区

Essbase 中的复制分区是存储在目标多维数据集中的部分源数据库(多维数据集)的副本。然后,一些用户可以访问源多维数据集中的数据,而其他用户则可以访问目标多维数据集中的数据。

例如,在 Samppart 和 Sampeast 示例应用程序中,The Beverage Company (TBC) 的 DBA 在 East 数据库和 Company 数据库之间创建了一个复制的分区,其中包含 Actual、Budget、Variance 和 Variance%。东部地区的用户现在将其预算数据存储在本地。由于他们不必从公司总部实时检索这些数据,因此响应速度更快,并且可以更好地控制停机时间和本地数据管理。

在复制分区流中对数据所做的更改从源多维数据集向目标多维数据集。对数据目标中复制的数据所做的更改不会回流到数据源。如果用户更改数据目标中的数据,则当 DBA 更新复制的分区时, Essbase 会覆盖其更改。

定义复制的分区后,DBA 可以选择一个设置,以防止更新目标多维数据集的复制部分中的数据。更新设置(允许或禁止更新)优先于安全筛选器提供的访问,并且批处理操作(如数据加载和计算)也遵循该设置。

使用复制的分区可实现以下任何目标:

  • 减少网络活动

  • 缩短查询响应时间

  • 减少计算时间

  • 更轻松地从系统故障中恢复

复制分区的规则

您必须能够映射源和目标大纲的共享复制区域,尽管共享区域不必相同。您必须告知 Essbase 源中的每个维和成员如何映射到目标中的每个维和成员。

非共享区域的源和目标大纲不必是可映射的。

由于用作复制分区目标的区域都不能来自透明分区源,因此无法在透明分区上创建复制的分区,如图中所示:

图 9-4 复制分区无效


此图说明了复制的分区目标如何不能包含来自透明分区源的数据。

复制分区的目标中的单元不能来自两个源;一个分区中的单元必须来自一个多维数据集。要从多个多维数据集复制单元格,请为每个数据源创建不同的分区。

目标多维数据集中的单元格可以是其他复制分区的源。例如,如果 Samppart.Company 数据库包含来自 Sampeast.East 数据库的复制分区,则可以将 Sampeast.East 中的单元格复制到第三个数据库,例如 Sampwest.West。

不能使用属性成员来定义复制的分区。例如,与市场维关联,“市场类型”属性维成员为“城市”、“郊区”和“农村”。无法在城市、郊区或农村定义分区,因为复制的分区包含动态数据,而不是存储的数据。因此,尝试在复制的分区中映射属性会导致错误消息。但是,可以使用 WITHATTR 命令复制属性数据。

复制分区的优点

由于数据存储在更靠近最终用户的位置,因此在目标多维数据集中,复制的分区可以减少网络活动,从而缩短检索时间。

所有用户都可以更轻松地访问数据。一些用户访问源多维数据集中的数据,另一些用户访问目标多维数据集。

失败不是灾难性的。由于数据位于多个位置,因此如果一个数据库出现故障,则只有连接到该数据库的用户无法访问该信息。数据仍然可用,可以从其他站点进行检索。

本地管理员可以控制停机时间。例如,由于东部区域的用户正在访问自己的复制数据,而不是“公司”数据库,因此管理员可以在不影响东部区域用户的情况下关闭“公司”数据库。

由于每个站点只保留相关数据,因此数据库可能会变小。例如,东部区域的用户只能复制东部预算信息,而不能访问包含所有区域的预算信息的较大的公司数据库。

复制分区的缺点

您需要更多的磁盘空间,因为数据存储在多个位置。

由于分区管理员必须定期手动刷新数据,因此用户可能看不到最新版本的数据。

复制分区的性能注意事项

要提高复制分区的性能,请遵循以下准则:

请勿复制在源多维数据集中动态计算的成员,因为 Essbase 必须探测大纲以查找动态计算的成员及其子代,以确定如何执行计算。

请勿复制源多维数据集中的派生数据。相反,复制每个维的最低实际级别,并在完成复制后在目标多维数据集上执行计算。

例如,要沿 Market 维复制数据库:

  • 将共享区域定义为您关注的市场维的最低级别成员,例如,东部、西部、南部和中部,以及其他维的 0 级成员。

  • 完成复制后,计算 Market 的值和目标其他维中的上层值。

    有时,您无法在目标多维数据集计算派生数据。在这种情况下,请将其从源多维数据集复制。如果数据符合以下任一标准,则不能在来源计算派生数据:

    • 要求计算复制区域之外的数据。

    • 需要计算脚本,您不能仅从中提取要在目标中计算的部分。

    • 正在复制到处理能力很小的计算机上,例如笔记本电脑。

要优化聚合存储 (ASO) 多维数据集的复制,该多维数据集是复制的目标,而块存储数据库是源多维数据集,并且两个大纲相同,请使用以下方法之一中的“复制假定大纲相同”方法。

  • 启用 REPLICATIONASSUMEIDENTICALOUTLINE 配置设置。语法如下:

    REPLICATIONASSUMEIDENTICALOUTLINE [appname [dbname]] TRUE | FALSE
  • 发出带有 replication_assume_identical_outline 语法的 alter database MaxL 语句。该语句只能发给 ASO 多维数据集,不适用于块存储复制。语法如下:

    alter database appname.dbname enable | disable replication_assume_identical_outline;

沿密集维进行分区比沿稀疏维进行分区要长。当 Essbase 复制沿密集维分区的数据时,它必须访问数据源中的每个块,然后在复制操作期间在数据目标中创建每个块。

无法将数据复制到在目标多维数据集动态计算的成员中。Essbase 不会加载或复制到动态计算成员中,因为在用户在运行时请求数据之前,这些成员不包含数据。Essbase 避免为复制目标上的动态密集成员和动态稀疏成员发送复制的数据,因为此数据未存储在目标上。

要仅复制已更改的数据值而不是整个分区,请参见 Populate or Update Replicated Partitions

复制的分区和端口使用情况

对于复制的分区,用户仅连接到目标多维数据集。在目标上更新数据时,将数据从源多维数据集复制到目标多维数据集的过程会使用一个端口,并且此连接基于在分区定义中声明的用户名(分区用户)。

注意:

由于复制的短期性质,复制的分区和端口很少出现问题。