Creating Multidimensional Base Views Over a Multidimensional Data Source¶
次の図に、多次元データベースのさまざまなエレメントと、それらが Virtual DataPort でどのように表現されるかを示します。
キューブからデータを取得する基本ビューを作成するには、[Multidimensional Data Source] ダイアログを開いて、対象のキューブの階層とメジャーを少なくとも 1 つ選択します。適切なエレメントを選択した後、[Import] をクリックします。キューブ () のエレメントグループごとに基本ビューが作成されます。各ビューには以下のフィールドがあります。
選択した各階層 () の各レベル () のフィールド
選択した各メジャー () のフィールド
選択した各属性 () のフィールド。属性は「ディメンションプロパティ」とも呼ばれます。
各ディメンション () の選択した各変数 () のフィールド。必須変数は [Create base view] ダイアログで選択済みになっていて、選択解除できません。
たとえば、 InfoCube
という名前のキューブがあるとします (「 多次元データソースのキューブのエレメント (2) 」を参照)。
このキューブの以下のエレメントを選択して、基本ビューを作成します。
IO_SREP hierarchy
階層 (Sales representative
ディメンション)。3 つのレベルがあります。Sales revenue
メジャー。Sales quantity
メジャー。
エレメントを選択すると、ダイアログが表示されるので、そこで Virtual DataPort が SAP BW からデータを取得する方法と必要なデータを構成します。これらのオプションは、前の手順で選択した階層で指定できます。
次の図にそれらの構成を示します。
注釈
このダイアログは、SAP ソースの場合にのみ表示されます。
[Leaf Members Only] チェックボックスがチェックされていない場合、この基本ビューのスキーマには 5 つのフィールドがあります。階層の各レベルに対応するフィールドが 1 つずつと、各メジャーに対応するフィールドが 1 つずつです (次の画像を参照)。このチェックボックスをチェックした場合としない場合の影響の詳細については、「 [Leaf Members Only] オプション 」を参照してください。
次の図に、このビューに対してクエリを実行した結果を示します。
srep_level01
、 srep_level02
、および srep_level03
の各フィールドの値には階層的な意味があることに注意してください。 srep_level01
レベルのエレメントは「East」「Midwest」などの地域であり、そこに「Atlanta」「New York」などの都市 (srep_level02
) が含まれます。都市には、「Samuel Jackson」「John Smith」などの販売員 (srep_level03
) がいます。
[Include Empty Rows] オプション¶
キューブのデータが疎である場合、基本ビューに対してクエリを実行した結果、空の行が多数返される可能性があります。値が存在しないメジャーのメンバーの組み合わせを取得しないように指定できます。これを行うには、[Multidimensional Data Source] ダイアログの [Include empty rows] チェックボックスのチェックをはずします。この設定は、基本ビューを作成する際に、[Create selected base views] ボタンをクリックする前に行います。
注釈
SAP アダプターの場合、このオプションは 2 番目の手順で構成できます。
[Leaf Members Only] オプション¶
SAP BW 基本ビューを作成する際に、[Leaf Members Only] チェックボックスをチェックした場合、基本ビューには、各階層の各レベルに対応するフィールドが 1 つずつ存在するのではなく、各階層のリーフレベルに対応するフィールドのみが 1 つずつ存在します。つまり、リーフ以外の階層のレベルは無視されます ([Leaf Label Only] もチェックされている場合のみ)。
注釈
SAP アダプターの場合、このオプションは階層ごとに構成できます。
たとえば、 InfoCube
という名前のキューブがあり (「 [Leaf Members Only] をチェックしている場合の SAP BW 基本ビューの作成 (1) 」を参照)、 IO_SREP hierarchy
階層 (Sales representative
ディメンション) と、 Sales revenue
および Sales quantity
の各メジャーを選択するとします。
[Leaf Members Only] チェックボックスをチェックした場合、基本ビューには、5 つのフィールドではなく、階層の Level 03
に対応するフィールドが 1 つと各メジャーに対応するフィールドが 1 つずつ、合計 3 つのフィールドが存在します。
[Leaf Members Only] オプションをチェックして基本ビューを作成すると、以下の利点があります。
リーフ以外のレベルの部分的な集計に対応する行は、結果から除外されます。この例では、Midwest 地域のすべての販売員の総売上、New York のすべての販売員の総売上などは、結果から除外されます。
この結果のほうがキューブ内のデータをより自然に「リレーショナルビュー」で表していると考えられます。なぜなら、除外された集計は余分だと思われるからです。つまり、集計はリーフレベルに対応する行から計算できます。これは特に、元データが本来リレーショナルである場合 (ODS オブジェクトなど) に当てはまります。
このオプションがチェックされている場合、Virtual DataPort は、[MDX Query] オプションを使用しなくても、より複雑な条件を SAP BW にプッシュダウンできます。
[Leaf Label Only] オプション¶
多次元基本ビューを作成する際に [Leaf Label Only] をチェックした場合、ビューのスキーマには、選択した階層のリーフレベルのみが含まれます。このオプションをチェックしなかった場合は、階層全体がビューに追加されます。その場合も、SAP に委任された MDX クエリでは、リーフレベルによる集計のみが実行されます。
注釈
このオプションは、アダプターが SAP BW (BAPI) または SAP BI (BAPI) である多次元データソースの場合にのみ使用可能で、階層ごとに構成可能です。
たとえば、 InfoCube
という名前のキューブがあり (「 [Leaf Members Only] をチェックしている場合の SAP BW 基本ビューの作成 (1) 」を参照)、 IO_SREP hierarchy
階層 (Sales representative
ディメンション) と、 Sales revenue
および Sales quantity
の各メジャーを選択するとします。
[Leaf Label Only] チェックボックスのチェックをはずした場合、基本ビューには、選択した階層の各レベルに対応するフィールドが 1 つずつ含まれます。
次の図に、このビューに対してクエリを実行した結果を示します。
この結果に含まれる集計は srep_level03
フィールドのみの集計ですが、返されるデータにはその値の祖先も存在することに注意してください。
[Technical Keys] オプション¶
多次元基本ビューを作成する際に [Technical keys] チェックボックスをチェックした場合、メンバーは、そのテクニカルキーを使用して表されます。このオプションをチェックしなかった場合は、メンバーのキャプションが使用されます。[Member captions] チェックボックスもチェックした場合、新しい基本ビューには、選択した各階層に対応するフィールドが 1 つずつ追加されます。追加されたフィールドの名前は、「<level name>_tech_key」のようになります。キャプションは通常、業務上わかりやすい値にしますが、あいまいであってもかまいません (重複するキャプションを存在させることができます)。
注釈
このオプションは、アダプターが SAP BW (BAPI) および SAP BI (BAPI) である多次元データソースの場合のみ使用可能で、階層ごとに構成可能です。
たとえば、 InfoCube
という名前のキューブがあり (「 [Leaf Members Only] をチェックしている場合の SAP BW 基本ビューの作成 (1) 」を参照)、 IO_SREP hierarchy
階層 (Sales representative
ディメンション) と、 Sales revenue
および Sales quantity
の各メジャーを選択するとします。
[Technical keys] チェックボックスをチェックした場合、基本ビューには、テクニカルキーに対応するフィールドが 1 つ追加されます。
次の図に、このビューに対してクエリを実行した結果を示します。
srep_level03
フィールドの値はキャプションで、 srep_level03_tech_key
フィールドの値はテクニカルキーです。
[Member Leaves] オプション¶
多次元基本ビューを作成する際に [Member Leaves] チェックボックスをチェックした場合、新しい基本ビューのスキーマには、選択した各階層に対応するフィールドが 1 つずつ追加されます。このフィールドには、行のリーフレベルの値が格納されます。これは、「不規則なディメンション」を扱う場合に便利です。不規則なディメンションでは、ディメンションの各値の深さが異なる可能性があります。この場合、不規則なディメンション上に作成された基本ビューに対してクエリを実行する際に、ビューのどのフィールドに各リーフ値が格納されているかがわからないと考えられます。このため、ディメンションのリーフ値でフィルタするクエリを実行しにくくなります。このオプションを使用すると、この追加フィールドを使用してディメンションのリーフ値でフィルタできるようになります。この追加フィールドの名前は、「<dimension name>_member_leaf」のようになります。このオプションをチェックできるのは、[Leaf Members Only] をチェックしていない場合のみです。
注釈
このオプションは、アダプターが SAP BW (BAPI) および SAP BI (BAPI) である多次元データソースの場合のみ使用可能で、階層ごとに構成可能です。
たとえば、 InfoCube
という名前のキューブがあり (「 [Leaf Members Only] をチェックしている場合の SAP BW 基本ビューの作成 (1) 」を参照)、 IO_SREP hierarchy
階層 (Sales representative
ディメンション) と、 Sales revenue
および Sales quantity
の各メジャーを選択するとします。
[Member leaves] チェックボックスをチェックした場合、基本ビューには、階層のメンバーリーフに対応するフィールドが 1 つ追加されます。
次の図に、このビューに対してクエリを実行した結果を示します。
srep_member_leaf
フィールドの値には、各行の階層のリーフ値が含まれることに注意してください。
[Include Member Keys] オプション¶
多次元基本ビューを作成する際に [Include member keys] チェックボックスをチェックした場合、新しいビューのスキーマには、各階層のリーフレベルに対応するフィールドが 1 つずつ追加されます。各行のこの追加フィールドの値は、各メンバーのテクニカル名になります。
注釈
このオプションは、アダプターが SAP BW (BAPI) および SAP BI (BAPI) である多次元データソースの場合のみ使用可能で、階層ごとに構成可能です。
たとえば、 InfoCube
という名前のキューブがあり (「 [Include Member Keys] をチェックしている場合の SAP BW (BAPI) 基本ビューの作成 (1) 」を参照)、 IO_SREP hierarchy
階層 (Sales representative
ディメンション) と、 Sales revenue
および Sales quantity
の各メジャーを選択するとします。
[Include member keys] チェックボックスと [Leaf Members Only] チェックボックスをチェックした場合、基本ビューには、階層の「Level 03」に対応するフィールドが 1 つ (srep_level03
)、各メジャーに対応するフィールドが 1 つずつ (sales_quantity
と sales_evenue
)、およびメンバーのテクニカル名が含まれるフィールドが 1 つ (srep_key
) の合計 4 つのフィールドが含まれます。
[Include Member Keys] チェックボックスをチェックして基本ビューを作成することの利点は、ビジネス名だけでなく、ディメンションのメンバーのテクニカル名でもフィルタできるようになることです。「 [Include Member Keys] をチェックしている場合の SAP BW (BAPI) 基本ビューの作成 (2) 」で作成されたビューでは、以下を使用してフィルタできます。
ビジネス名:
WHERE
条件とsrep_level03
フィールドを追加します。テクニカル名 (レベルと同じ名前の末尾に「_key」を付加した属性):
WHERE
条件とsrep_key
フィールドを追加します。
ビジネス名でフィルタした場合、テクニカル名でフィルタした場合とは異なる結果が返される可能性があることを考慮してください。なぜなら、ディメンションには、同じビジネス名を持つメンバーが複数存在する可能性がありますが、テクニカル名は常に一意であるからです。
SAP 変数¶
SAP では、変数は BEx クエリのパラメータであり、クエリを実行すると値が入力されます。
変数はさまざまな値を表すことができます。現在、クエリを実行すると、変数が以下のタイプを表す場合、Virtual DataPort では変数を SAP に委任します。
単一値: 変数はただ 1 つの値を表します。
複数の単一値: 変数は複数の単一値を表します。
区間: 変数は、特定の「from」値と特定の「to」値、つまり区間を表します。
選択オプション: 変数は、単一値や区間の任意の組み合わせを表します。
SAP メタデータキャッシュ¶
Virtual DataPort は、多次元基本ビューに対するクエリを高速化するために、SAP のメタデータをキャッシュします。
SAP 基本ビューに対して初めてクエリを実行したときに、Virtual DataPort は、ビューを作成する際に選択された階層のすべてのメンバーの値 (「キャプション」) とテクニカル名をキャッシュします。
その後、このビューに対してメンバーのキャプションでフィルタするクエリを実行すると、サーバーは、クエリで指定された値と一致するキャプションを持つメンバーを SAP メタデータキャッシュで検索します。その後、このテクニカル名を使用して、SAP に送信する MDX クエリを構築します。テクニカル名でフィルタするクエリには、メンバーのキャプションでフィルタするクエリより、SAP の処理効率が優れているという利点があります。
メンバーのテクニカル名でフィルタした場合、そのキャプションでフィルタした場合と同じ結果にならない可能性があることに注意してください。なぜなら、テクニカル名は一意ですが、キャプションは一意ではなく、同じキャプションを持つメンバーが複数存在する可能性があるからです。
注釈
データソースが SAP に存在しない SAP メンバーの内部名を SAP メタデータキャッシュで検索すると、エラー [Element '<member_searched>' not found at metadata cache] が返されます。
SAP に存在しないメンバーの値を使用して MDX クエリを生成できないため、データソースはエラーを返します。
このキャッシュには、デフォルトで Members BAPI へのページングされた呼び出しが読み込まれます。この動作を無効にして 1 回のリクエストでキャッシュに読み込むようにするには、以下のコマンドを実行します。
SET 'com.denodo.vdb.engine.wrapper.raw.sapbwbapi.retriever.paginationEnabled' = 'false';
このコマンドの実行後、変更を適用するために Virtual DataPort を再起動する必要はありません。デフォルトの動作に戻すには、以下のコマンドを実行します。
SET 'com.denodo.vdb.engine.wrapper.raw.sapbwbapi.retriever.paginationEnabled' = 'true';
このキャッシュでは、オンデマンドリクエストで単一メンバーの値とテクニカル名を取得できます。この機能はデフォルトで無効になっています。有効にするには、以下を実行する必要があります。
SET 'com.denodo.vdb.engine.wrapper.raw.sapbwbapi.retriever.onDemandEnabled' = 'true';
このコマンドの実行後、変更を適用するために Virtual DataPort を再起動する必要はありません。デフォルトの動作に戻すには、以下のコマンドを実行します。
SET 'com.denodo.vdb.engine.wrapper.raw.sapbwbapi.retriever.onDemandEnabled' = 'false';
オンデマンドリクエストでの単一メンバーの値とテクニカル名の取得は、制限に達したためにデフォルトのキャッシュで読み込まれなかったメンバーが存在するシナリオを想定しています。ほとんどの場合、このオプションは必要ありません。
Virtual DataPort サーバーを再起動すると、このキャッシュは自動的に消去されます。Virtual DataPort サーバーを再起動しなくても、いつでもこのキャッシュの内容を消去できます。これを行うには、データソースを開いて、[Clear metadata cache] ボタンをクリックします。または、VQL コマンドを実行してキャッシュを無効にすることもできます (この最後のオプションの詳細については、『VQL ガイド』の「 SAP BAPI データソースのメタデータキャッシュの無効化 」を参照)。