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

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

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

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

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

  • 外部のデータ・ファイルからメンバーのマッピングをインポートします。

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

この項の内容:

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

データソースのアウトラインとデータ・ターゲットのアウトラインに含まれるメンバーが異なる場合や、各アウトラインのメンバーの名前が異なる場合は、データソースのメンバーをデータ・ターゲットのメンバーにマップする必要があります。次の例では、最初の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になります。

追加のディメンションを含むデータ・キューブのマッピング

データソースとデータ・ターゲットのディメンション数が異なる場合があります。次の例は、データソースのアウトラインにデータ・ターゲットのアウトラインよりも多くのディメンションがある場合を示しています。

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によってデータソースのプロトタイプ・メンバーがマップされます。

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

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

透過パーティションの属性をマップできます。パーティションにおける属性を参照してください。

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

データ・ターゲットのアウトラインには、メンバー200 (Cola)を持つProductディメンションが含まれています。子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にマップすると、検証中にエラー・メッセージが表示されます。データソースのカフェイン入りコーラをデータ・ターゲットのカフェイン入りコーラに関連付ける必要があります。

属性ディメンションまたは属性メンバーはデータソースのアウトラインに存在できますが、データ・ターゲットのアウトラインには存在できません。または、データ・ターゲットのアウトラインに存在できますが、データソースのアウトラインには存在できません。例:

Source         Target
Caffeinated
   True
   False

このような場合、次の選択肢があります。

  • データ・ターゲットのアウトラインにCaffeinated属性ディメンションとそのメンバーを作成してProductディメンションに関連付けます。次に、データソースからデータ・ターゲットに属性をマップします。

  • データソースのCaffeinated属性ディメンションをデータ・ターゲットのVoidにマップします。

詳細領域固有マッピングの作成

標準のメンバー・マッピングを使用して、データソースのすべてのメンバーをデータ・ターゲットの対応するメンバーにマップできる場合は、詳細領域固有マッピングを実行する必要はありません。

ただし、Essbaseでメンバーがどのようにマップされるかをより詳細なレベルで制御する必要がある場合は、領域固有マッピングを使用することが必要になることがあります。領域固有マッピングでは、特定の領域マップのコンテキストでのみ、領域のメンバーを別の領域のメンバーにマップできます。

領域間マッピングでは、次の処理を実行できます。

  • データの取得元に応じて、データを異なる方法でマップします。

  • データソースの複数のメンバーを、データ・ターゲットの単一のメンバーにマップします。

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

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

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