多次元データソース

Virtual DataPort は、SAP BW3、SAP BI 7、Mondrian、Oracle Essbase、Microsoft SQL Server Analysis Services などの多次元データベースからデータを取得できます。

異なるタイプの多次元データベースにアクセスするために 4 つのタイプのデータソースがあります。

  • ESSBASE: Oracle Essbase データベースに接続します。 ESSBASE データソースを作成する前に、『Denodo Platform インストールガイド』の「 Oracle Essbase 用コネクターのインストール 」の手順を実行しておきます。

  • OLAP: XMLA インターフェイスを提供する多次元データベースに接続します。例として、Mondrian と Microsoft SQL Server Analysis Services があります。

  • SAPBWBAPI: SAP JCo コネクターを使用して SAP に接続します。 SAPBWBAPI データソースを作成する前に、『Denodo Platform インストールガイド』の「 SAP Java Connector のインストール 」の手順を実行しておきます。

Administration Tool では、これらのデータソースはすべて、1 つのタイプの多次元データソースであるかのようにグループ化されています。

データソース OLAPSAPBWBAPI は、コネクションプールを使用して、データベースへのコネクションを管理します。

以下の例は、次の多次元データベースに接続するデータソースを作成および変更するためのコマンドの構文を示しています。

  • SAPBWBAPI

  • ESSBASE

  • OLAP

SAP BAPI を用いた多次元データソースの作成

CREATE DATASOURCE SAPBWBAPI ステートメントの構文
CREATE [ OR REPLACE ] DATASOURCE SAPBWBAPI <name:identifier>
    [ FOLDER = <literal> ]
    DATABASENAME = <literal>
    DATABASEVERSION = <literal>
    SYSTEMNAME = <literal>
    [ SAPROUTER = <literal> ]
    [ LANGUAGE = <literal> ]
    <connection type>
    CLIENTID = <literal>
    {
        <credentials>
      | WITH PASS-THROUGH SESSION CREDENTIALS ( <credentials> )
    }
    READBLOCKSIZE = <integer>
    [
        SNC_LIBRARY = <literal>
        SNC_PARTNER_NAME = <literal>
        SNC_QOP = <integer>
    ]
    [
        MAXACTIVE = <integer>
        MAXIDLE = <integer>
        MAXWAIT = <integer>
        MINEVICTABLEIDLETIME = <integer>
        TIMEBETWEENEVICTION = <integer>
    ]
    [ TRANSFER_RATE_FACTOR = <double> ]
    [ DESCRIPTION = <literal> ]

<connection type> ::=
      <direct connection>
    | <logon load balanced connection>

<direct connection> ::=
    HOSTNAME = <literal>
    SYSTEMNUMBER = <literal>

<logon load balanced connection> ::=
    MESSAGE_HOST = <literal>
    [ MESSAGE_SERVICE = <literal> ]
    SID = <literal>
    [ GROUP = <literal> ]

<credentials> ::=
  USERNAME = <literal> USERPASSWORD = <literal> [ ENCRYPTED ]
ALTER DATASOURCE SAPBWBAPI ステートメントの構文
ALTER DATASOURCE SAPBWBAPI <name:identifier>
    [ DATABASENAME = <literal> ]
    [ DATABASEVERSION = <literal> ]
    [ SYSTEMNAME = <literal> ]
    [ HOSTNAME = <literal> ]
    [ MESSAGE_HOST = <literal> ]
    [ MESSAGE_SERVICE = <literal> ]
    [ SID = <literal> ]
    [ GROUP = <literal> ]
    [ CLIENTID = <literal> ]
    [ SYSTEMNUMBER = <literal> ]
    [
      <credentials>
      | WITH PASS-THROUGH SESSION CREDENTIALS ( <credentials> )
    ]
    [ READBLOCKSIZE = <integer> ]
    [
        SNC_LIBRARY = <literal>
        SNC_PARTNER_NAME = <literal>
        SNC_QOP = <integer>
    ]
    [ MAXACTIVE = <integer> ]
    [ MAXIDLE = <integer> ]
    [ MAXWAIT = <integer> ]
    [ MINEVICTABLEIDLETIME = <integer> ]
    [ TIMEBETWEENEVICTION = <integer> ]
    [ TRANSFER_RATE_FACTOR = <double> ]
    [ DESCRIPTION = <literal> ]

<credentials> ::=
  USERNAME = <literal> USERPASSWORD = <literal> [ ENCRYPTED ]
  • SYSTEMNAME: SAP ERP の SAP システム ID。

  • SAPROUTER: SAP ルーターとターゲットサーバー間のルート。

  • USERNAME: SAP にアクセスするために使用されるユーザー名。

  • LANGUAGE: SAP サーバーとの間で確立するコネクションの言語。

  • コネクションタイプ :

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

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

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

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

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

      • MESSAGE_SERVICE: 「SAP メッセージサーバー」がコネクションのために利用するポート。

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

      • GROUP: SAP アプリケーションサーバーのグループの名前。

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

  • USERNAME: SAP にアクセスするために使用されるユーザー名。

  • USERPASSWORD: ユーザーのパスワード。パスワードはプレーンテキストで、または暗号化して設定できます。暗号化して設定する場合は、パスワードの後に ENCRYPTED 修飾子を追加します。

    暗号化されたパスワードを生成するには、 ENCRYPT_PASSWORD ステートメントに続けてパスワードを指定して実行します。たとえば、 ENCRYPT_PASSWORD 'password'; です。

    WITH PASS-THROUGH SESSION CREDENTIALS 修飾子は、あるユーザーが、このオプションを指定されたデータソースを使用するビューにクエリを実行する場合、Virtual DataPort がこのユーザーの資格情報を使用して SAP に接続することを意味します。この修飾子では、 USERNAME パラメーターと PASSWORD パラメーターの値は、Administration Tool がデータベースに接続し、データベースとそのテーブルやビューのスキーマを表示するためにのみ使用されます。データベースのテーブルやビューにクエリを実行するためには使用されません。

    このオプションを使用するデータソースを作成し、Virtual DataPort サーバーへの接続に使用した資格情報とは別の資格情報でそのデータソースのビューにクエリを実行する場合は、 USERNAMEUSERPASSWORD の各パラメーターを CONTEXT に追加します。この 2 つのパラメーターは、 WITH PASS-THROUGH SESSION CREDENTIALS オプションを使用して作成したデータソースの場合 のみ 考慮されます。

    たとえば、 WITH PASS-THROUGH SESSION CREDENTIALS オプション を指定してデータソースから view1 を作成し、以下を実行するとします。

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

    Virtual DataPort サーバーは、ユーザーが Virtual DataPort サーバーへの接続に使用した資格情報を無効にし、ユーザー名「admin」、パスワード「password」を使用してデータソースに接続します。

    トークン ENCRYPTED を追加して、必ず暗号化したパスワードを入力する必要があります。パスワードを暗号化するには、 ENCRYPT_PASSWORD コマンドを実行します。以下に例を示します。

    ENCRYPT_PASSWORD 'my_secret_password';
    

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

    警告

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

  • READBLOCKSIZE: BAPI アダプターは、データをブロック単位で取得します。これは、その際の最大ブロックサイズです。

Secure Network Communications (SNC) は、SAP のデフォルトのセキュリティオプションより強力な認証と暗号化のメカニズムを提供します。Virtual DataPort サーバーと SAP 間で SNC を有効にするには、以下のパラメーターを追加します。

  • SNC_LIBRARY: Administration Tool では、いずれかの「SAP (BAPI)」アダプターを使用する多次元データソースの構成における、[Advanced] タブの SAP Cryptographic library フィールドに相当します。

  • SNC_PARTNER_NAME: Partner name フィールドに相当します。

  • SNC_QOP: Security level フィールドに相当します。このパラメーターの値は以下のいずれかになります。

SAPBWBAPI データソース : SNC_QOP パラメーターの値

SNC_QOP パラメーターの値

セキュリティレベル

1

セキュア認証のみ

2

データ整合性の保護

3

データプライバシーの保護

8

snc/data_protection/use からの値を使用

9

snc/data_protection/max からの値を使用

Oracle を用いた多次元データソースの作成

CREATE DATASOURCE ESSBASE ステートメントの構文
CREATE [ OR REPLACE ] DATASOURCE ESSBASE <name:identifier>
    [ FOLDER = <literal> ]
    DATABASEVERSION = <literal>
    URI = <literal>
    USERNAME = <literal>
    USERPASSWORD = <literal> [ ENCRYPTED ]
    [ TRANSFER_RATE_FACTOR = <double> ]
    [ DESCRIPTION = <literal> ]
ALTER DATASOURCE ESSBASE ステートメントの構文
ALTER DATASOURCE ESSBASE <name:identifier>
    [ DATABASEVERSION = <literal> ]
    [ URI = <literal> ]
    [ USERNAME = <literal> ]
    [ USERPASSWORD = <literal> [ ENCRYPTED ] ]
    [ TRANSFER_RATE_FACTOR = <double> ]
    [ DESCRIPTION = <literal> ]

Generic を用いた多次元データソースの作成

CREATE DATASOURCE OLAP ステートメントの構文
CREATE [ OR REPLACE ] DATASOURCE OLAP <name:identifier>
    [ FOLDER = <literal> ]
    [ DATABASENAME = <literal> DATABASEVERSION = <literal> ]
    XMLAURI = <literal>
    USERNAME = <literal>
    USERPASSWORD = <literal> [ ENCRYPTED ]
    [ INITIALSIZE = <integer> MAXACTIVE = <integer> ]
    [ TRANSFER_RATE_FACTOR = <double> ]
    [ DESCRIPTION = <literal> ]
ALTER DATASOURCE OLAP ステートメントの構文
ALTER DATASOURCE OLAP <name:identifier>
    [ DATABASENAME = <literal> ]
    [ DATABASEVERSION = <literal> ]
    [ XMLAURI = <literal> ]
    [ USERNAME = <literal> ]
    [ USERPASSWORD = <literal> [ENCRYPTED] ]
    [ INITIALSIZE = <integer> MAXACTIVE = <integer> ]
    [ TRANSFER_RATE_FACTOR = <double> ]
    [ DESCRIPTION = <literal> ]

SAP BAPI データソースのメタデータキャッシュの無効化

SAP BI (BAPI) アダプターまたは SAP BW (BAPI) アダプターを用いて多次元データソース (SAPBWBAPI データソース) を操作する際に、SAP メタデータキャッシュを有効にする場合があります (管理ガイドの「 SAP メタデータキャッシュ 」を参照)。

このキャッシュは、Virtual DataPort サーバーを再起動するとクリアされます。また、いつでも、サーバーを再起動することなく、このキャッシュの内容を削除できます。削除するには、以下の VQL ステートメントを実行します。

SAP BW メタデータキャッシュを無効化するためのコマンドの構文
ALTER DATASOURCE SAPBWBAPI <data source name:identifier>
    LEVELSCACHE INVALIDATE
    [
        SCHEMANAME = <schemaname>
        CUBENAME = <cubename>
        DIMENSIONNAME = <dimensionname>
        HIERARCHYNAME = <hierarchyname>
        LEVELNAME = <levelname>
    ]

データソースごとに SAP メタデータキャッシュがあるため、データソースの名前を入力します。

LEVELSCACHE INVALIDATE 句のみを追加すると、このデータソースのすべてのメンバーのキャッシュが削除されます。

その他の句を追加すると、階層内の特定レベルのキャッシュのみが削除されます。