多次元データベースソース

Virtual DataPort は、以下に示す多次元データベースからデータを取得できます。

  • SAP BW 3 と SAP BI 7

  • Azure Analysis Services

  • Microsoft SQL Server Analysis Services (SSAS)

  • Mondrian

  • Oracle Essbase

Virtual DataPort には、SAP 向けに SAP JCo コネクターを使用する BAPI アダプターが 2 つ用意されています。可能な場合は必ず、SAP BW 3.x ではなく、SAP BI 7.x のアダプターを使用してください。SAP BW 3.x が提供する BAPI は、100 万個を超えるセルを返すことができません。SAP BI 7.x では、この制限のない新しい BAPI が提供されています。

多次元データソースを作成する前に、以下の操作を実施します。

  • SAP (SAP BW 3.x (BAPI) または SAP BI 7.x (BAPI)) に接続する場合、『インストールガイド』の以下の節の手順に従います。

    1. SAP Java Connector のインストール

    2. SAP BW で多次元データソースを使用する権限の付与

  • Essbase アダプター (Essbase 9 または Essbase 11) を使用する場合は、「 Oracle Essbase に接続する多次元データソース 」を参照して、Essbase でサポートされているコネクションモードのリストを確認してください。インストールする必要があるドライバーは、使用するコネクションモードによって異なるので、使用するモードを把握している必要があります。コネクションモードを確認した後、『インストールガイド』の「 Installing the Connector for Oracle Essbase 」の手順に従ってインストールします。

  • Microsoft SQL Server Analysis Services を使用する場合は、その XMLA (XML for Analysis) インターフェイスを有効にする必要があります。

  • 他のアダプターを使用する場合は、該当のコネクターが Denodo Platform にインストール済みなので、コネクターを別途インストールする必要はありません。

多次元データベースからデータを取得するデータソースを新たに作成するには、[Server Explorer] でいずれかのデータベースを右クリックして、[File] > [New] > [Data source] > [Multidimensional DB] の順にクリックします。

Creating a data source to a multidimensional database

多次元データベースに対するデータソースの作成

以下のデータが必要です。

  • Name: 新しいデータソースの名前。

  • Database adapter: ソースに接続するために使用するアダプターを選択します。以下に示す詳細情報のうち、実際に指定する必要があるものは、選択するアダプターによって異なります。

    データソースを作成するときは任意のアダプターを選択できます。データソースを作成した後でアダプターを変更することはできません。

  • SAP BW 3.x (BAPI) または SAP BI 7.x (BAPI) を使用する場合:

    • System name: データベースのインスタンスの名前。

    • Client ID: クライアントの ID。

    • SAP router: SAP ルート文字列は、2 つのホストの間に必要なコネクションのステーションを記述します。ルート文字列の構文は以下のとおりです。

      (/H/host/S/service/W/pass)*

      つまり、 /H/host/S/service/W/pass 形式のサブ文字列を任意の数だけ記述します。

      このルートには、各 SAP ルーターとターゲットサーバーとの間のコネクションを表すサブ文字列が記述されています。各サブ文字列には、このルートで SAP ルーターがコネクションをセットアップするために必要な情報として、ホスト名とポート名のほか、指定されていればパスワードがあります。

      • /H/: ホスト名を示します。

      • /S/ (オプション): サービス (ポート) を示します。デフォルト値は 3299 です。

      • /W/ (オプション): ルート上の前後の SAP ルーターとの間のコネクションのパスワードを示します。デフォルト値は "" (パスワードなし) です。

    • Language (オプション): SAP サーバーとの間で確立するコネクションの言語。

    • Connection type:

      • コネクションタイプが [Direct] の場合、以下の値を入力します。

        • Host: SAP が動作しているホスト。

        • System Number: 同じホスト上で動作している複数の SAP インスタンスを区別する 2 桁の数字。

      • コネクションタイプが [Logon load balanced] の場合、以下の値を入力します。

        • Message Host: 適切なアプリケーションサーバーを選択するためのデータを提供する SAP サーバーのホスト。

        • Message Service (オプション): SAP メッセージサーバーがコネクションをリッスンするポート。

        • SID: SAP システムのシステム ID。

        • Logon group (オプション): SAP アプリケーションサーバーのグループの

          名前。

    • Pass-through session credentials: 選択した場合は、クライアントがこのデータソースを使用するビューにクエリを実行すると、Virtual DataPort は、データソースの [Login] フィールドと [Password] フィールドの値ではなく、このクライアントの資格情報を使用して SAP に接続します。データソースの [Login] フィールドと [Password] フィールドの値は、このデータソースを開き、管理ツールを SAP に接続して SAP エレメント (キューブ、ディメンションなど) に関する情報を表示するときにのみ使用されます。

      このオプションを指定してデータソースを作成し、Virtual DataPort との接続に使用した資格情報とは別の資格情報でそのデータソースのビューにクエリを実行する場合は、 USERNAMEUSERPASSWORD の両パラメーターをクエリの CONTEXT に追加します。この 2 つのパラメーターは、[Pass-through session credentials] オプションをチェックしてデータソースが作成されている場合にのみ考慮されます。たとえば、SAP BAPI アダプターを使用するデータソースから作成された cube1 基本ビューに対して以下のクエリを実行するとします。

      SELECT *
      FROM cube1
      CONTEXT(USERNAME = 'admin', PASSWORD = 'd4GvpKA5BiwoGUFrnH92DNq5TTNKWw58I86PVH2tQIs/q1RH9CkCoJj57NnQUlmvgvvVnBvlaH8NFSDM0x5fWCJiAvyia70oxiUWbToKkHl3ztgH1hZLcQiqkpXT/oYd' ENCRYPTED)
      

      Virtual DataPort は、ユーザー名「admin」、パスワード「password」を使用して SAP に接続します。Virtual DataPort サーバーとの接続でユーザーが使用した資格情報は無視されます。

      トークン ENCRYPTED を追加して、暗号化したパスワードを入力することは必須です。パスワードを暗号化するには、 ENCRYPT_PASSWORD ステートメントを使用します。以下に例を示します。

      ENCRYPT_PASSWORD 'my_secret_password';
      

      データソースがこのオプションを指定して作成されている場合、Virtual DataPort サーバーでは、ユーザーとパスワードのペアごとにコネクションプールが作成されます。当初は、過剰な数のコネクションが作成されないように、これらのプールに存在するコネクションは 1 つのみです。プールごとの最大コネクション数は、コネクションプールの [Maximum number of active connections] フィールドの値です。

      警告

      パススルー資格情報が有効なデータソースを使用するビューに対してキャッシュを有効にする場合は注意が必要です。このような場合に発生することが考えられる問題については、付録「 データソースをパススルー資格情報を使用して構成する場合の検討事項 」を参照してください。

    • [Advanced] タブでは、Virtual DataPort サーバーと SAP との間でセキュアネットワークコミュニケーション (SNC) を有効化できます。SNC は、SAP のデフォルトのセキュリティオプションより強力な認証と暗号化メカニズムを提供します。SNC を有効にするには以下の手順に従います。

      1. [Enable SNC] を選択します。

      2. SAP 暗号ライブラリへのパスを入力します。Virtual DataPort サーバーが Windows 上で動作している場合、このパスは sapcrypto.dll ファイルへのパスです。Linux 上で動作している場合は、 libsapcrypto.so へのパスです。このライブラリは、SAP の Web サイトからダウンロードできます。

      3. [Partner name] に、SAP サーバーの識別名を入力します。

      4. [Security level] を選択します。SAP には 3 つの構成レベルがあるほか、以下の各オプションが用意されています。

        1. Use the value from snc/data_protection/use: SAP サーバーで設定されているデフォルトのセキュリティレベルを使用します。

        2. Use the value from snc/data_protection/max: SAP サーバーに用意されている最高のセキュリティレベルを使用します。

    • [Advanced] タブで [Read block size] を設定できます。BAPI アダプターは、データをブロック単位で取得します。これは、その際の最大ブロックサイズです。

  • Mondrian 3.xMicrosoft SQL Server Analysis 、または 汎用アダプター を使用する場合:

    • XMLA URI: データベースにアクセスするための XMLA URI。以下に例を示します。

      • Mondrian の場合: https://acme:8080/mondrian/xmla;Catalog=FoodMart

      • Microsoft SQL Server Analysis の場合: http://acme.denodo.com/olap/msmdpump.dll

  • Azure Analysis Services を使用する場合:

    • URI: https による URI。例: https://westeurope.asazure.windows.net

    • XMLA URI: XMLA エンドポイント。デフォルトでは、 URI/webapi/xml です。

    • Server name: Azure Analysis Services サーバーの名前。

    • Client ID: Denodo 向けとして Azure に登録されているアプリケーションのクライアント ID。

    • Tenant ID: Denodo 向けとして Azure に登録されているアプリケーションのテナント ID。

    • Client ID: Denodo 向けとして Azure に登録されているアプリケーションの、期限切れしていないクライアントシークレット。

    注釈

    適切な権限を持つロールのメンバーであるユーザーを Azure Analysis Services に作成する必要があります。

  • Essbase 9 または Essbase 11 を使用する場合:

    • URI: Essbase サーバーの URI。例: https://essbase-server.acme.com:13080/aps/JAPI

    • LoginPassword: データベースにアクセスするための資格情報。

Virtual DataPort では、アダプターが以下のいずれかである場合、コネクションプールを使用してデータベースへのコネクションが管理されます。

  • 汎用アダプター

  • Microsoft SQL Server Analysis

  • Mondrian 3.x

  • SAP BW 3.x (BAPI)

  • SAP BI 7.x (BAPI)

コネクションプールの使用をサポートしているアダプターでは、[Connection pool configuration] をクリックしてコネクションプールを構成します。使用可能なパラメーターは、選択したアダプターによって異なります。

  • SAP BW 3.x (BAPI) または SAP BI 7.x (BAPI) を使用する場合 :

    • Maximum number of active connections: プールに置くことができるアクティブなコネクションの最大数。

    • Maximum number of idle connections: プールにアイドル状態で置くことができるコネクションの最大数。

    • Maximum waiting time (milliseconds): プールからコネクションが取得されるまでスレッドが待機する最大時間。この制限に到達すると、そのコネクションを要求したクエリは失敗します。

    • Minimum time between evictions (milliseconds): プールでアイドル状態になっているコネクションが閉じられてプールから削除されるまでの最小時間。

    • Minimum time before eviction (milliseconds): Virtual DataPort サーバーは、プールでアイドル状態にあるコネクションを定期的に確認し、それを閉じます。このパラメーターは、この確認が実施される最小間隔を示します。

  • Mondrian 3.x、Microsoft SQL Server Analysis、または 汎用アダプターを使用する場合:

    • Initial size: プールの初期コネクションの数。

    • Maximum number of active connections: プールに置くことができるアクティブなコネクションの最大数。

[Metadata] タブでは、データソースの格納先フォルダーと説明を設定できます。

データソースを編集する際、 image1 ボタンをクリックすると、その所有者も変更できます。

[Save] をクリックして、データソースを作成します。

データソースを作成した後、そのデータソースから基本ビューを作成する必要があります。それにより、その基本ビューのデータへのクエリや、そのデータと他のビューのデータとの組み合わせなどができるようになります。

多次元データベースソースから基本ビューを作成する方法として以下の 2 つがあります。

多次元データソースから基本ビューをグラフィカルに作成する方法

グラフィカルに多次元基本ビューを作成するには、データソースを開いて [Create base view] をクリックし、少なくともディメンションの階層 1 つとメジャー 1 つを選択します。

Creating an SAP multidimensional base view

SAP の多次元基本ビューの作成

ツリーの各ノードには、エレメントのビジネス名が表示されるほか、括弧内にそのテクニカル名が表示されます。

エレメントをビジネス名またはテクニカル名で検索するには、ダイアログ上部にあるボックスにその名前を入力します。

このダイアログを開くと、管理ツールでは、データベースのキューブの名前のみが取得され、キューブを展開すると、そのキューブのエレメントが取得されます。したがって、エレメントの名前を検索ボックスに入力した場合、管理ツールによる検索では、すでに展開しているスキーマとキューブのみが対象になります。

キューブとそのエレメントは、ユーザーから要求されたときにロードされます。それらをすべて一度に取得するには長時間を要するからです。

注釈

SAP BW または SAP BI のソースから基本ビューを作成するプロセスは、以下の 3 つの手順で構成されています。

  1. インポートするキューブまたはクエリを選択します。

  2. 階層、メジャー、属性、および変数を選択します。

  3. アクセスオプション ([Include empty rows]、[Include leaf levels] など) を構成します。

適切なエレメントを選択した後、[Import] をクリックします。1 つのキューブ (image3) にあるエレメントのグループごとに基本ビューが作成されます。たとえば、キューブ「cubeA」の階層とメジャーおよび別のキューブ「cubeB」の階層とメジャーを選択した場合、2 つの基本ビューが作成されます。リレーショナル構造 (基本ビュー) への多次元データベース構造のマッピングの詳細については、付録「 多次元データからリレーショナルモデルへのマッピング 」を参照してください。

重要

複数のディメンションから階層を選択すると、それらのディメンションが交差結合され、選択したすべての階層のデカルト積が生成されます。そのため、多数の階層を選択すると、多次元データベースでは処理できないクエリや実行に長時間を要するクエリが生成されることがあるので、注意が必要です。

[Include empty rows] チェックボックスがチェックされていない場合、基本ビューにクエリを実行すると、値がないメジャーを持つメンバーの組み合わせは Virtual DataPort サーバーから返されません。詳細については、付録「 [Include Empty Rows] オプション 」を参照してください。

[Include leaf levels of hierarchies only] チェックボックスをチェックしている場合、基本ビューには各階層のリーフのフィールドが 1 つのみ表示され、階層のレベルごとに 1 つのフィールドが表示されるビューにはなりません。つまり、リーフ以外の階層レベルは無視されます。SAP BW (BAPI) と SAP BI (BAPI) のソースでは、このオプションを使用できません。

[Leaf Members Only] チェックボックスをチェックしている場合、基本ビューには、階層のリーフレベル単位で集計されたデータのみが表示されます。このオプションには、[Leaf Label Only] チェックボックスとの関連性があります。詳細については、付録「 [Leaf Members Only] オプション 」を参照してください。このオプションは、SAP BW (BAPI) と SAP BI (BAPI) のソースでのみ使用でき、階層ごとに構成可能です。

[Leaf Label Only] チェックボックスをチェックしている場合、基本ビューには各階層のリーフのフィールドが 1 つのみ表示され、階層のレベルごとに 1 つのフィールドが表示されるビューにはなりません。つまり、リーフ以外の階層レベルは無視されます。詳細については、付録「 [Leaf Label Only] オプション 」を参照してください。このオプションは、SAP BW (BAPI) と SAP BI (BAPI) のソースでのみ使用でき、階層ごとに構成可能です。

[Member captions] チェックボックスをチェックしている場合、各メンバーは、そのキャプションを使用して表現されます。キャプションには、業務上でわかりやすい値を使用することが普通ですが、一意ではないことがあります (重複するキャプションを使用できます)。このオプションは、SAP BW (BAPI) と SAP BI (BAPI) のソースでのみ使用でき、階層ごとに構成可能です。

[Technical keys] チェックボックスをチェックしている場合、各メンバーは、そのテクニカルキーを使用して表現されます。このオプションをチェックしていない場合は、メンバーのキャプションが使用されます。[Member captions] チェックボックスもチェックしていると、新しい基本ビューには、選択した階層ごとにフィールドが 1 つ追加されます。このフィールドの名前は「<level name>_tech_key」のようになります。キャプションには、業務上でわかりやすい値を使用することが普通ですが、一意ではないことがあります (重複するキャプションを使用できます)。このオプションは、SAP BW (BAPI) と SAP BI (BAPI) のソースでのみ使用でき、階層ごとに構成可能です。

[Member leaves] をチェックしている場合、新しい基本ビューのスキーマには、選択した階層ごとにフィールドが 1 つ追加されます。このフィールドには、行のリーフレベルの値が保持されます。これは、「不規則なディメンション」を扱う場合に便利です。不規則なディメンションでは、ディメンションの値がそれぞれ異なる深さの階層を持つことができます。つまり、不規則なディメンションを対象として作成した基本ビューにクエリを実行すると、各リーフ値がビューのどのフィールドに保持されているかがわからないことが考えられます。その結果、ディメンションのリーフ値でフィルター処理するクエリの実行が困難になります。このオプションで追加されたフィールドを使用すると、ディメンションのリーフ値によるフィルター処理が可能になります。このフィールドの名前は「<dimension name>_member_leaf」のようになります。このオプションは、[Include leaf levels of hierarchies only] をチェックしていない場合にのみ使用できます。また、SAP BW (BAPI) と SAP BI (BAPI) のソースでのみ使用でき、階層ごとに構成可能です。詳細については、付録「 [Leaf Members Only] オプション 」を参照してください。

[Member keys] をチェックしている場合、新しいビューのスキーマには、各階層のリーフレベルにフィールドが 1 つ追加されます。各行で、この追加されたフィールドの値は、各メンバーのテクニカル名になります。このオプションは、SAP BW (BAPI) と SAP BI (BAPI) のソースでのみ使用でき、階層ごとに構成可能です。

[Include member comments] をチェックしている場合、新しいビューのスキーマには、選択した階層ごとに、階層のコメントを表すフィールドが 1 つ追加されます。デフォルトでは、これらのフィールドには、階層名に接尾辞「_comments」を付加した名前が割り当てられますが、他のフィールド同様に、この名前は変更できます。このオプションは、Oracle Essbase ソースでのみ使用できます。

注釈

SAP BW (BAPI) または SAP BI のデータソースから基本ビューを作成する場合は、キューブの各必須変数を必ず選択する必要があります。

多次元基本ビューを作成するプロセスは、その多次元データベースによって次のように多少異なります。

  • SAP BW (BAPI) と SAP BI (BAPI) をデータソースとする場合: これらのアダプターを使用するデータソースから基本ビューを作成するには以下の手順に従います。

    1. データソースを開いて、[Create base view] をクリックします。

    2. インポートするキューブまたはクエリを選択します。キューブとクエリは、InfoArea をルートエレメントとする階層形式で表現されます。この InfoArea の下に、他の InfoArea、キューブ、またはクエリが配置されます。インポートするキューブまたはクエリが見つかったら、それを選択します。

    3. [Create selected] をクリックします。ウィザードが次のステップに進んで、選択したキューブまたはクエリのディメンション、メジャーなどが表示されます。

    4. 基本ビューの構成要素とするエレメントを選択します。

    5. 前述の [Include empty rows]、[Include leaf levels of hierarchies only]、および [Include member keys] の各チェックボックスを適宜チェックするか、チェックをはずします。

    6. [Ok] をクリックします。

  • Oracle Essbase アダプターをデータソースとする場合: これらのアダプターを使用するデータソースから基本ビューを作成するには以下の手順に従います。

    1. データソースを開いて、[Create base view] をクリックします。

    2. [server name] を入力します。[server name] に入力する必要がある値の詳細については、「 Oracle Essbase に接続する多次元データソース 」を参照してください。

    3. Essbase に存在するすべてのスキーマが表示されます。これらを展開して、ディメンションや属性など、基本ビューの構成要素とするエレメントを選択します。

    4. 前述の [Include empty rows]、[Include leaf levels of hierarchies only]、[Include member alias]、および [Include member comments] の各チェックボックス を適宜チェックするか、チェックをはずします。

    5. [Create selected] をクリックします。

  • 他の多次元アダプターをデータソースとする場合: これらのアダプターを使用したデータソースから基本ビューを作成するには以下の手順に従います。

    1. データソースを開いて、[Create base view] をクリックします。

    2. スキーマを展開して、ディメンションや属性など、基本ビューの構成要素とするエレメントを選択します。

    3. [Create selected] をクリックします。

多次元基本ビューを作成した後で、そのビューの作成中に指定したオプション ([Include empty rows]、[Include leaf levels of hierarchies only] など) の変更が必要になった場合は、ビューを編集して [source refresh] をクリックします。このダイアログが再び表示されるので、変更したオプションによるビューの再作成や、ディメンション、値、およびメジャーの追加や削除ができます。

MDX クエリを使用して多次元データソースから基本ビューを作成する方法

多次元データソースから基本ビューを作成する別のオプションは、MDX クエリの作成です。

この作成では、データソースを開いて [Create base view] をクリックし、[Create from MDX query] をクリックします (「 Create a base view from an MDX query (multidimensional data source) 」を参照)。

Create a base view from an MDX query (multidimensional data source)

MDX クエリからの基本ビューの作成 (多次元データソース)

このダイアログでは、以下の値を指定する必要があります。

  • 新しいビューの名前

  • MDX クエリ

リレーショナル構造に MDX クエリの結果がどのようにマッピングされるかの詳細については、付録「 多次元データからリレーショナルモデルへのマッピング 」を参照してください。

MDX クエリでは、以下のように、文字 {} を文字 \ でエスケープする必要があります。

  • {\{ で置き換えます。

  • }\} で置き換えます。

文字のエスケープの詳細については、「 クエリの実行コンテキストと補間文字列 」を参照してください。

多次元データベース固有の情報

Microsoft SQL Server Analysis Services (SSAS)

クエリ軸の句には、軸 0 (COLUMNS) のメジャーと、軸 1 (ROWS) のディメンション、階層、レベルなどを指定する必要があります。


サポートされるディメンションプロパティは MEMBER_CAPTION のみです。


計算されたメンバーは完全にはサポートされません。このタイプのメンバーを使用すると、誤った結果を導く可能性があります。

Oracle Essbase に接続する多次元データソース

Virtual DataPort では、Essbase の Analytic Services Java API (JAPI) を使用して Essbase に接続します。この API は、Essbase サーバーへの接続モードとして以下の 2 つを提供しています。

  1. 3 層 APS モード: このモードでは、Virtual DataPort は、「3 層 APS JAPI」を使用して、Analytic Provider Server (APS) 経由で Essbase サーバーとのコネクションを確立します。

    このモードで Essbase に接続するには、データソースを作成するウィザードで、[URI] ボックスに APS の URI を入力します。

    データソースを作成した後、[Create base view] をクリックして、[Choose the server name] ボックスで Essbase サーバーのホストを選択します。接続先とする Essbase サーバーがこのリストにない場合は、そのホスト名を入力します。

  2. 組み込みモード: このモードでは、Virtual DataPort は、Embedded JAPI を使用して Essbase サーバーと直接コネクションを確立します。

    このモードで Essbase に接続するには、データソースを作成するウィザードで、[URI] ボックスに「 embedded 」と入力します。

    データソースを作成した後、[Create base view] をクリックして、[Choose the server name] ボックスに Essbase サーバーが動作しているホストの名前を入力します。

使用するコネクションモードによって、インストールするドライバーが異なるので、使用するモードを把握する必要があります。モードを確認し、『Denodo Platform インストールガイド』の「 Installing the Connector for Oracle Essbase 」の手順に従ってドライバーをインストールします。

Essbase に接続する場合、[create base view] ダイアログで [Include leaf levels of hierarchies only] チェックボックスをチェックした状態で階層を選択すると、階層のリーフレベルのみがビューのフィールドとして取り込まれます。このチェックボックスをチェックしていない場合、階層のあらゆるレベルを基本ビューに追加できます。このオプションをチェックして Essbase 基本ビューを作成する場合の利点は、これらのビューにクエリを実行したときに Virtual DataPort が Essbase に送信するクエリの効率が向上することにあります。その理由は以下のとおりです。

  1. 階層のリーフ以外のレベルの集計を Essbase から返す必要がありません。

  2. Virtual DataPort で処理する行の数を削減できます。

Essbase では、階層の各メンバーに alias と comments の 2 つのフィールドを置くことができます。

Essbase 基本ビューに [alias] フィールドを追加する場合、[Create selected base views] をクリックする前に [Include member alias] チェックボックスをチェックします。このようにすると、基本ビューには、選択した階層ごとに階層の別名を表すフィールドが 1 つ追加されます。デフォルトでは、これらのフィールドには、階層名に接尾辞「_alias」を付加した名前が割り当てられますが、他のフィールド同様に、この名前は変更可能です。

Essbase 基本ビューに [comments] フィールドを追加する場合、[Create selected base views] をクリックする前に [Include member comments] チェックボックスをチェックします。このようにすると、基本ビューには、選択した階層ごとに階層のコメントを表すフィールドが 1 つ追加されます。デフォルトでは、これらのフィールドには、階層名に接尾辞「_comments」を付加した名前が割り当てられますが、他のフィールド同様に、この名前は変更可能です。

Virtual DataPort では、[comments] フィールドに対する条件を Essbase にプッシュできません。