映射分区中的成员

如果分区源和目标包含相同数量的成员并使用相同的成员名称,则 Essbase 会自动映射这些成员。您只需要验证、保存和测试分区。如果 Essbase 无法自动映射,则必须手动映射。

要创建分区, Essbase 必须能够将所有共享源数据成员映射到目标成员。Oracle 建议源成员名称和目标成员名称相同,以减少对分区的维护要求,尤其是在分区基于属性时。

通过以下方式之一将源成员映射到目标成员:

  • 手动输入或选择成员名称。(键入重复的成员名称时,请键入限定成员名称并将其括在双引号中;例如,"[State].[New York]"

  • 创建特定于区域的映射。

本节主题:

映射具有不同名称的成员

如果 Essbase 分区的源大纲和目标大纲包含不同的成员,或者如果成员在每个大纲中具有不同的名称,则必须将源成员映射到目标成员。

在以下示例中,前两个成员名称相同,但第三个成员名称不同:

Source       Target
Product      Product
   Cola         Cola
Year         Year
   1998         1998
Market       Market
   East         East_Region

因为您知道数据源中的 East 与数据目标中的 East_Region 对应,所以请将 East 映射到 East_Region。然后,数据目标中对 East_Region 的所有引用都指向数据源中的 East。例如,如果数据源中 Cola,1998,East 的数据值为 15,数据目标中 Cola,1998,East_Region 的数据值为 15。

具有额外维的映射多维数据集

Essbase 分区的源和目标中的维数可能会有所不同。为了避免在这种情况下出现验证错误,您需要将另一半的额外成员映射到另一半的“无效”。

以下示例说明了源大纲中的维数多于目标大纲中的维数的情况:

Source       Target
Product      Product
   Cola         Cola
Market       Market
   East         East
Year
   1999
   1998
   1997

您可以在数据目标中将“年份”维的成员 1997 映射到“无效”。首先,定义要与目标共享的源区域:

Source                        Target
@DESCENDANTS(Market), 1997    @DESCENDANTS(Market)

然后,将源成员映射到目标中的 Void:

Source       Target
1997         Void

自动显示 "Void";手动输入 "Void" 可能会导致错误。

如果您未在区域定义中包括额外维中的至少一个成员,则在尝试验证分区时将收到错误消息。

注意:

从额外维映射成员时,分区结果仅反映映射成员的数据。在上例中,“年”维包含三个成员:1999、1998 和 1997。如果将成员 1997 从源映射到目标,则分区结果仅反映 1997 年的产品和市场数据。不会提取 1998 年和 1999 年的产品和市场数据。

以下示例说明目标包含的维数多于源的案例:

Source       Target
Product      Product
   Cola         Cola
             Market
                East
Year         Year
   1997         1997

在这种情况下,首先定义源和目标的共享区域:

Source                   Target
@IDESCENDANTS(Product)   @IDESCENDANTS(Product), East

然后,您可以在数据源中将成员 East 从目标的“市场”维映射到 Void:

Source       Target
Void         East

如果目标市场维中的成员 East 未包括在目标区域定义中,则在尝试验证分区时,您将收到错误消息。

映射共享成员

使用共享成员创建复制的或透明的分区时,请在映射中使用原型成员名称。

Essbase 从源映射原型成员。

映射与成员关联的属性

要确保 Essbase 分区有效,必须准确地将属性维和成员从源数据映射到目标数据。

注意:

无法在复制的分区中映射属性维的成员。但是,您可以在透明分区中映射属性。请参阅 Essbase 分区中的属性

在以下示例中,源的大纲包含具有成员 100 (Cola) 的“产品”维。子项 100-10 和 100-20 与“含咖啡因”属性维的成员 TRUE 关联,子项 100-30 与“含咖啡因”属性维的成员 FALSE 关联。

目标大纲具有成员为 200 (Cola) 的“产品”维。子代 200-10 和 200-20 与 With_Caffeine 属性维的成员“是”关联,子代 200-30 与 With_Caffeine 属性维的“否”关联。

首先定义要从源共享到目标的区域:

Source               Target
@DESCENDANTS(100)    @DESCENDANTS(200)
@DESCENDANTS(East)   @DESCENDANTS(East)

然后映射属性:

Source               Target
100–10               200–10
100–20               200–20
100–30               200–30
Caffeinated          With Caffeine
Caffeinated_True     With_Caffeine_True
Caffeinated_False    With_Caffeine_False

如果将属性 Caffeinated_True 映射到属性 With_Caffeine_No,则在验证期间会收到错误消息。您必须将源中的含咖啡因的可乐与目标中的含咖啡因的可乐相关联。

属性维或属性成员可以存在于源大纲中,但不能存在于目标大纲中的目标大纲 OR 中,而不能存在于源大纲中。例如:

Source         Target
Caffeinated
   True
   False

在这种情况下,您有以下选择:

  • 在目标大纲中创建 Caffeinated 属性维及其成员,并将其与 Product 维关联。然后,您可以将属性从源映射到目标。

  • 将源中的 "Caffeinated" 属性维映射到目标中的 "Void"。

创建高级特定于区域的映射

如果可以使用标准成员映射将分区源中的所有成员映射到目标中的对应成员,则无需执行特定于区域的高级映射。

如果需要控制 Essbase 如何在更细粒度级别映射成员,则可能需要使用特定于区域的映射,该映射仅将一个区域中的成员映射到特定区域映射的上下文中的另一个区域中的成员。

使用区域到区域的映射可执行以下操作:

  • 根据数据的来源进行不同的映射。

  • 将数据源中的多个成员映射到数据目标中的单个成员。

由于 Essbase 无法确定如何将数据源中的多个成员映射到数据目标中的单个成员,因此必须从逻辑上确定如何划分数据,直到可以将一个映射规则应用于该数据子集。然后,在特定于区域的映射上下文中使用该规则来映射成员。

示例 10-1 示例 1:高级特定于区域的映射

数据源和数据目标包含以下维和成员:

Source       Target
Product      Product
   Cola         Cola
Market       Market
   East         East
Year         Year
   1998         1998
   1999         1999
             Scenario
                Actual
                Budget

数据源没有方案维。相反,它假设过去的数据是实际数据,未来数据是预测或预算数据。

您知道,数据源中的 1998 应对应于 1998 年,数据目标中的 Actual 和数据源中的 1999 年应对应于数据目标中的 1999 年,预算。例如,如果数据源中 1998 年 Cola,East 的数据值为 15,则 1998 年 Cola,East 的数据值为 15,Actual 的数据目标应为 15。

因为映射对成员有效,而不是对成员组合有效,所以不能简单地将 1998 映射到 1998(实际)。定义区域(1998 年和 1998 年,实际),然后为该区域创建特定于区域的映射规则。

由于数据源没有“实际”和“预算”成员,因此还必须在数据目标中将这些成员映射到“无效”。

示例 10-2 示例 2:高级特定于区域的映射

如果数据源和数据目标的结构非常不同,但包含相同类型的信息,则还可以使用特定于区域的高级映射。

例如,如果数据源和数据目标包含以下维和成员,则此策略有效:

Source       Target
Market       Customer_Planning
   NY             NY_Actual
   CA            NY_Budget
                 CA_Actual
                 CA_Budget
Scenario
   Actual
   Budget

您知道数据源中的 NY 和 Actual 应与数据目标中的 NY_Actual 对应,而数据源中的 NY 和 Budget 应与数据目标中的 NY_Budget 对应。因此,例如,如果数据源中 NY,Budget 的数据值为 28,则数据目标中 NY_Budget 的数据值应为 28。

因为映射对成员有效,而不是对成员组合有效,所以不能简单地将 NY、Actual 映射到 NY_Actual。定义区域(NY、Actual 和 NY_Actual),然后为该区域创建特定于区域的映射规则。

由于数据目标没有 NY 和 CA 成员,因此您还必须在数据目标中将这些成员映射到 Void,以便在从数据源转到数据目标时完成维数。