パーティションのメンバーのマップ
パーティション・ソースとターゲットのメンバー数が同じで、同じメンバー名を使用している場合は、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パーティションのソースとターゲットのディメンションの数が異なる場合があります。このような場合の検証エラーを回避するには、片方の半分の追加メンバーをもう片方の半分の"Void"にマップする必要があります。
次の例は、ソース・アウトラインにターゲット・アウトラインより多くのディメンションがある場合を示しています:
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に関連付けられています。
ターゲット・アウトラインには、メンバー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ではデータソースの複数のメンバーをデータ・ターゲットの単一のメンバーにどのようにマップするかを判断できないため、データのサブセットに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にマップする必要があります。