パーティションのメンバーのマップ

パーティション・ソースとパーティション・ターゲットのメンバー数が同じで、同じメンバー名を使用している場合は、Essbaseによって自動的にメンバーがマップされます。ユーザーが行う必要があるのは、パーティションの検証、保存およびテストのみです。Essbaseによって自動的にマップされない場合は、手動でマップする必要があります。

パーティションを作成するには、Essbaseですべての共有ソース・データ・メンバーをターゲット・メンバーにマッピングできる必要があります。Oracleでは、特にパーティションが属性に基づいている場合に、パーティションのメンテナンス要件を減らすために、ソース・メンバー名とターゲット・メンバー名を同じにすることをお薦めします。

次のいずれかの方法で、ソース・メンバーをターゲット・メンバーにマップします。

  • メンバー名を手動で入力するか、選択します。(重複するメンバー名を入力する場合は、"[State].[New York]"のように、修飾メンバー名を入力し二重引用符で囲みます。

  • 領域固有マッピングを作成します。

このセクションのトピック:

異なる名前のメンバーのマッピング

Essbaseパーティションのソース・アウトラインとターゲット・アウトラインに異なるメンバーが含まれている場合、または各アウトラインでメンバーの名前が異なる場合は、ソース・メンバーをターゲット・メンバーにマップする必要があります。

次の例では、最初の2つのメンバー名は同じですが、3番目のメンバー名は異なります。

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

Yearディメンションのメンバー1997をデータ・ターゲットのVoidにマップできます。まず、ターゲットと共有するソースの領域を定義します。

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

次に、ソース・メンバーをターゲット内のVoidにマップします。

Source       Target
1997         Void

Voidは自動的に表示されます。Voidを手動で入力すると、エラーが発生する場合があります。

領域定義に追加のディメンションのメンバーが1つも含まれていない場合、パーティションを検証しようとするとエラー・メッセージが表示されます。

ノート:

追加のディメンションのメンバーをマップすると、結果のパーティションにはマップされたメンバーのデータのみが反映されます。前述の例では、Yearディメンションには1999、1998および1997の3つのメンバーが含まれています。ソースのメンバー1997をターゲットにマップすると、パーティション結果には1997のProductおよびMarketのデータのみが反映されています。1998と1999のProductとMarketのデータは抽出されません。

次の例は、ターゲットにソースよりも多くのディメンションが含まれている場合を示しています。

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

このような場合は、最初にソースとターゲットの共有領域を定義します。

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

次に、メンバーEastをデータソースのMarketディメンションからVoidにマップします。

Source       Target
Void         East

ターゲットのMarketディメンションのメンバーEastがターゲット領域の定義に含まれていない場合、パーティションを検証しようとするとエラー・メッセージが表示されます。

共有メンバーのマップ

共有メンバーを使用して複製または透過パーティションを作成する場合は、マッピングでプロトタイプ・メンバー名を使用します。

Essbaseによってソースからのプロトタイプ・メンバーがマップされています。

メンバーに関連付けられた属性のマップ

Essbaseパーティションが有効であることを確認するには、属性ディメンションとメンバーをソース・データからターゲット・データに正確にマップする必要があります。

ノート:

レプリケートされたパーティションの属性ディメンションのメンバーはマップできません。ただし、透過パーティションの属性をマップできます。「Essbaseパーティションの属性」を参照してください。

次の例では、ソース・アウトラインに、メンバー100 (Cola)を持つProductディメンションが含まれています。子100-10と100-20はCaffeinated属性ディメンションのメンバーTRUEに、子100-30はCaffeinated属性ディメンションのメンバーFALSEに関連付けられています。

ターゲット・アウトラインのProductディメンションには、メンバー200 (Cola)が含まれています。子200-10と200-20はWith_Caffeine属性ディメンションのメンバーYesに、子200-30はWith_Caffeine属性ディメンションのメンバーNoに関連付けられています。

最初に、ソースからターゲットに共有する領域を定義します。

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ではデータソースの複数のメンバーをデータ・ターゲットの単一のメンバーにどのようにマップするかを判断できないため、データのサブセットに1つのマッピング・ルールを適用できるようになるまでデータを分割する方法を論理的に決定する必要があります。次に、領域固有マッピングのコンテキストでそのルールを使用して、メンバーをマップします。

例10-1例1: 詳細領域固有マッピング

データソースとデータ・ターゲットには、次のディメンションおよびメンバーが含まれています。

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

データソースにはScenarioディメンションがありません。かわりに、過去のデータは実績データ、将来のデータは予測データまたは予算データとみなされます。

データソースの1998はデータ・ターゲットの1998, Actualに、データソースの1999はデータ・ターゲットの1999, Budgetに対応することがわかっています。したがって、たとえばデータソースのCola, East, 1998のデータ値が15の場合、データ・ターゲットのCola, East, 1998, Actualのデータ値は15になります。

マッピングはメンバーの組合せではなくメンバーに対して機能するため、単に1998を1998, Actualにマップすることはできません。領域(1998と1998, Actual)を定義し、この領域の領域固有マッピング・ルールを作成します。

また、データソースにはActualメンバーとBudgetメンバーがないため、これらのメンバーをデータ・ターゲットのVoidにマップする必要があります。

例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にマップする必要があります。