ODBC ソース

Virtual DataPort は、ODBC ソースへのアクセスを提供します。

Microsoft Excel ファイルからデータを取得するには、ODBC ではなく、 Excel データソース を使用することが推奨されます。Excel データソースのほうがパフォーマンスの面ではるかに優れているからです。

Virtual DataPort で Microsoft Access にクエリを実行するには Access ODBC ドライバーを使用する必要があります。Virtual DataPort と同じホストに Access をインストールしているのであれば、特に必要な手順はありません (Access をインストールしたときにドライバーもインストールされています)。Virtual DataPort と同じホストに Access をインストールしていない場合は、 Microsoft Access データベース エンジン 2010 再頒布可能パッケージ をインストールします。

注釈

JDBC ドライバーと ODBC ドライバーを使用してソースにアクセスできる場合、ODBC データソースではなく、JDBC データソースを作成します。基盤となるソースは同じでも、JDBC データソースを使用するクエリのほうが、ODBC データソースを使用するクエリより高速に動作するからです。

重要

以下の点に留意してください。

新しい ODBC データソースを作成するには、[Server Explorer] でデータベースを右クリックして [New] > [Data source] > [ODBC] の順にクリックします。

データソースを作成するためのダイアログが表示されます。

[Connection] タブ

ODBC data source: “Connection” tab

ODBC データソース: [Connection] タブ

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

  • Database adapter: データベースに接続するために使用するアダプター。Virtual DataPort には、データベース管理システム (DBMS) に接続するためのアダプターが用意されていて、各アダプターは、データベースでサポートされている機能を認識しています。このような機能として、データベースで使用できる演算子や関数、サポートされている句などがあります。

  • Connection type: ODBC コネクションには、以下の 2 つのタイプがあります。

    • DSN (Data Source Name): Virtual DataPort サーバーがインストールされているシステムの既存の DSN のいずれかを使用します。

    • Direct: Virtual DataPort サーバーのローカルファイルシステムに保存されているファイルに、Virtual DataPort サーバーに登録されている ODBC ドライバーのいずれかを使用してアクセスします。指定するパスには補間変数 (「 補間変数によるパスなどの値 」を参照) を使用できます。

  • Login: 外部データベースにアクセスするためのユーザーログイン名。

  • Password: 外部データベースにアクセスするためのユーザーパスワード。

  • Pass-through session credentials: このオプションを選択している場合は、このデータソースを使用するビューに対してクライアントからクエリを実行すると、Virtual DataPort サーバーは、[Login] フィールドと [Password] フィールドの値ではなく、ユーザーの資格情報を使用してデータベースに接続します。

    このオプションの詳細については、「 JDBC ソースのインポート 」を参照してください。

    警告

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

  • Transaction isolation: このデータソースのデータベースで実行するトランザクションとクエリの分離レベル。さまざまな分離レベルの詳細については、「 JDBC ソースのインポート 」を参照してください。

    [Database default] を選択した場合、Virtual DataPort サーバーは、データベースのデフォルトの分離レベルを使用してクエリを実行します。

  • [DSN Properties Configuration] をクリックして、コネクションの URI にプロパティを追加します。

  • [Test Connection] をクリックして、Virtual DataPort サーバーがこのデータベースに接続できることを確認します。

  • [Connections Pool Configuration] ダイアログを開いて、Virtual DataPort が外部データベースへのアクセスを最適化するために使用するコネクションプールの各種パラメーターを構成します。

  • Initial Size: プールの初期化に使用するコネクション数。この数のコネクションを確立し、「アイドル」状態にして、いつでも使用できるようにします。

  • Maximum number of active connections: このデータベースに対してプールから開く、アクティブなコネクションの最大数。この制限値に到達すると、このデータベースに対するクエリ送信を使用する次のリクエストは、別のクエリが完了するまで待機する必要があります。

    • -1 を入力すると、アクティブなコネクションの最大数の制限がなくなります。プールに作成するコネクションの数は制限されません。

    • 0 を入力すると、コネクションプールが無効になります。したがって、Virtual DataPort は、データベースにクエリを送信するたびに、そのデータベースへの新しいコネクションを開きます。クエリが終了すると、そのクエリで開いたコネクションが閉じられます。

  • Ping Query: コネクションのステータスを確認するためにプールで使用する SQL クエリ。クエリが使用するデータベースのリソースはできる限り少なくする必要があります。また、クエリで指定したテーブルが存在している必要があります。

  • Test Connection: このプロパティをチェックし、ping クエリを指定している場合、コネクションプールから取得した各コネクションが ping クエリの実行によって検証されます。

注釈

本番環境では、[Test connection] チェックボックスをチェックして、[Ping query] にクエリを定義することが強く推奨されます。

[Read & Write] タブ

ODBC data source: “Read & Write” tab

ODBC データソース: [Read & Write] タブ

  • Fetch size: データベースから多くの行をフェッチする必要がある場合に、このオプションは、その行数に関するヒントを ODBC ドライバーに示します。

  • Ignore trailing spaces: このオプションをチェックすると、このデータソースのビューから返される結果のうち、 text 型の値の末尾にある空白文字が Virtual DataPort サーバーによって削除されます。

[Source Configuration] タブ

このタブが表示されるのは、新しいデータソースを作成するときではなく、データソースを編集するときのみです。

このダイアログで変更可能なプロパティの詳細については、「 データソース構成プロパティ 」を参照してください。

注釈

ほとんどの場合、これらのオプションのデフォルト値は適切です。したがって、このダイアログが効果的になるのはきわめて特殊な環境のみです。

[Metadata] タブ

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

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

ODBC ソースをインポート済みであれば、基本ビューを作成するプロセスは JDBC データソースの場合と同じです (「 JDBC データソースからの基本ビューの作成 」を参照)。

Microsoft Windows が提供する Excel ODBC ドライバーには、以下の制限があります。

  • Excel のスプレッドシートからデータを削除することはできません。実行できるのは、スプレッドシートに対するクエリの実行とデータの追加のみです。

  • Microsoft Excel 2003 以前の Excel ドライバーを使用している場合、同時に実行できるクエリは 1 つのみです。同じ Excel ファイルのデータを組み合わせる場合、この点が問題になることがあります。

    新しいバージョンの Excel ドライバーには、この制限はありません。

ODBC データソースからの基本ビューの作成

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

Schemas, tables and views of an ODBC source

ODBC ソースのスキーマ、テーブル、およびビュー

ODBC 基本ビューを作成するには、以下の手順に従います。

  1. [Server Explorer] で ODBC データソースをダブルクリックして開き、[Create base view] をクリックします。

  2. 基本ビューの作成元にするテーブルの横にあるチェックボックスをチェックします。

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

それにより、[Server Explorer] の次の 2 か所に、新しい基本ビューがそれぞれリストに表示されます。

  1. ビューの作成場所であるフォルダーに表示されます。

  2. 基本ビューが属するデータソースの子ノードとして表示されます。このノードは、他のフォルダーに移動できません。データソースから作成された基本ビューを容易に確認できるように、このような子ノードがツリーに追加されます。

ODBC の基本ビューの作成プロセスは、JDBC の基本ビューの作成プロセスによく似ているので、そのプロセスの詳細については「 JDBC データソースからの基本ビューの作成 」を参照してください。

Virtual DataPort サーバーが Linux 上で動作している場合の ODBC ソースのサポートの有効化

Virtual DataPort は、Microsoft Access や他の ODBC ソースに接続できます。ただし、Virtual DataPort サーバーが Linux 上で動作している場合、この機能はデフォルトで無効になっています。

Microsoft Access ファイルや他の ODBC ソースに接続する予定がない場合は、次のインストール後に関する節に進んでください。また、ここで説明するプロセスは、後で実施してもかまいません。

Linux では、この機能はデフォルトで無効になっています。その理由は、ホストの構成によっては、ODBC ソースに接続するために Virtual DataPort によって不適切なライブラリが読み込まれることがあるからです。その場合は Virtual DataPort がクラッシュします。Virtual DataPort サーバーがクラッシュする原因となるような ODBC ソースが作成されないように、ODBC ソースがデフォルトで無効になっています。

この機能を有効にするには以下の手順に従います。

  1. Denodo がインストールされているホストに接続します。Virtual DataPort の起動に使用するユーザーアカウントでログインします。

  2. このホストで、ODBC ドライバーマネージャー unixODBC をインストールします。unixODBC がインストール済みかどうかを確認するには、以下の各コマンドを実行します。これらのコマンドでは、コマンドラインユーティリティの odbcinstisql がインストール済みかどうかが確認されます。

    which isql
    
    which odbcinst
    

    両方のコマンドからファイルへのパスが返された場合は手順 #3 に進みます。unixODBC がインストールされていない場合は以下の手順に従います。

    1. RPM パッケージングシステムを使用する Linux ディストリビューション (Red Hat、CentOS など) の場合は以下のコマンドを実行します。

      sudo yum install unixODBC
      

      Debian ベースの Linux ディストリビューション (Ubuntu など) の場合は以下のコマンドを実行します。

      sudo apt-get install unixODBC
      
  3. 以下のコマンドを実行します。

    odbcinst -j
    

    これにより、unixODBC が正しくインストールされていることを確認します。

  4. 以下の各ファイルが存在することを確認します。

    /usr/local/lib64/libodbc.so
    /usr/local/lib64/libodbcinst.so
    

    または

    /usr/local/lib/libodbc.so
    /usr/local/lib/libodbcinst.so
    

    これらのファイルのパスは、Linux/Unix ディストリビューションによって異なることがあります。

  5. ~/.bash_profile ファイルを編集して、以下のテキストを末尾に追加します。

export LD_PRELOAD=/usr/local/lib/libodbc.so:/usr/local/lib/libodbcinst.so:$LD_PRELOAD

LD_PRELOAD 変数をこのように変更することによって、unixODBC によって提供される libodbc.so ファイルと libodbcinst.so ファイルが Virtual DataPort によって必ず読み込まれるようにします。

注釈

上記の 2 つのファイルが lib ではなく、 lib64 に存在する場合は、上記の追加するテキストをそれに合わせて変更します。

  1. このユーザーアカウントからいったんログアウトして再度ログインすると、 .bash_profile に対する変更が適用されます。

  2. Virtual DataPort サーバーが起動している場合は停止します。

  3. Virtual DataPort サーバーを起動して管理者アカウントでログインし、VQL シェルで以下のコマンドを実行します。

SET 'com.denodo.vdb.ODBCDataSource.enable' = 'true';
  1. 構成が正しく更新されていることを確認するには、管理ツールで以下の手順に従います。

    1. ODBC データソースを作成します。

    2. ODBC の基本ビューを作成します。

    3. この基本ビューにクエリを実行します。

外部 JRE 使用時の ODBC ソースのサポートの有効化

Virtual DataPort は、ODBC データソースへのアクセスを提供します。Denodo Platform に付属する Java Runtime Environment (JRE) ではなく、外部の JRE を使用するように Virtual DataPort サーバーを構成している場合は、ODBC ソースに接続できるように以下の手順に従います。

  1. Denodo サーバーが Windows 上で動作している場合は、 <DENODO_HOME>\dll\vdp\jdbc-odbc\x64\JdbcOdbc.dll ファイルを <EXTERNAL_JRE_HOME>\bin フォルダーにコピーします。

  2. Denodo サーバーが Linux 上で動作している場合は、 <DENODO_HOME>/dll/vdp/jdbc-odbc/x64/libJdbcOdbc.so ファイルを <EXTERNAL_JRE_HOME>/lib/amd64 フォルダーにコピーします。