EnterpriseDB のデータ のPostgreSQL インターフェースを作成

加藤龍彦
加藤龍彦
デジタルマーケティング
EnterpriseDB JDBC Driver のリモート機能を使用し、データアクセス用のPostgreSQL エントリポイントを作成します。

PostgreSQL には多くの対応クライアントがあります。標準のドライバーからBI、アナリティクスツールまで、PostgreSQL はデータ接続の人気のインターフェースです。JDBC ドライバーを使用することで、簡単に任意の標準クライアントから接続できるPostgreSQL エントリポイントを作成できます。

EnterpriseDB にPostgreSQL データベースとしてアクセスするには、CData JDBC Driver for EnterpriseDB とJDBC foreign data wrapper (FDW) を使用します。この記事ではFDW をコンパイルしてインストールし、PostgreSQL サーバーからEnterpriseDB にクエリを実行します。

JDBC データソースとしてEnterpriseDB のデータに接続する

JDBC データソースとしてEnterpriseDB に接続するには、以下が必要です。

  • Driver のJAR パス:JAR ファイルは、インストールディレクトリのlib サブフォルダにあります。
  • Driver クラス

    cdata.jdbc.enterprisedb.EnterpriseDBDriver
    
  • JDBC URL: URL は、"jdbc:enterprisedb:" で始まり、セミコロンで区切られた名前と値の組み合わせで任意の接続プロパティを含めることができます。

    データに接続するには、以下の接続プロパティが必要です。

    • Server: EnterpriseDB データベースをホスティングしているサーバーのホスト名またはIP アドレス。
    • Port: EnterpriseDB データベースをホスティングしているサーバーのポート。

    オプションで、以下を設定することもできます。

    • Database: EnterpriseDB サーバーに接続する場合のデフォルトのデータベース。設定されていない場合は、ユーザーのデフォルトデータベースが使用されます。

    Basic 認証による接続

    Basic 認証を使って認証するには、以下を設定します。

    • User:EnterpriseDB サーバーに認証する際に使われるユーザー。
    • Password:EnterpriseDB サーバーに認証する際に使われるパスワード。

    SSL 認証による接続

    SSL 認証を利用して、セキュアなセッションを介してEnterpriseDB データに接続できます。以下の接続プロパティを設定して、データに接続します。

    • SSLClientCert:クライアント証明書のための証明書ストア名に設定します。クライアントとサーバーの両方のマシンでトラストストアとキーストアが保持される2-way SSL の場合に使用されます。
    • SSLClientCertPassword:クライアント証明書ストアがパスワードで保護されている場合、この値をストアのパスワードに設定します。
    • SSLClientCertSubject:TLS/SSL クライアント証明書のSubject。ストア内の証明書を検索するために使用されます。
    • SSLClientCertType:クライアントストアの証明書タイプ。
    • SSLServerCert:サーバーが受け入れ可能な証明書。

    ビルトイン接続文字列デザイナ

    JDBC URL の構成については、EnterpriseDB JDBC Driver に組み込まれている接続文字列デザイナを使用できます。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。

    java -jar cdata.jdbc.enterprisedb.jar
    

    接続プロパティを入力し、接続文字列をクリップボードにコピーします。

    Using the built-in connection string designer to generate a JDBC URL (Salesforce is shown.)

    以下は一般的なJDBC URL です。

    jdbc:enterprisedb:User=postgres;Password=admin;Database=postgres;Server=127.0.0.1;Port=5444
    

JDBC FDW を構築する

FDW は、PostgreSQL を再コンパイルせずに、PostgreSQL の拡張機能としてインストールできます。例としてjdbc2_fdw 拡張子を使用します。

  1. ご使用のバージョンのJRE 共有オブジェクトから、/usr/lib/libjvm.so にシンボリックリンクを追加します。コマンド例:
    ln -s /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so /usr/lib/libjvm.so
    
  2. ビルドするには、以下のコマンドを実行してください。
    make install USE_PGXS=1
    

EnterpriseDB のデータをPostgreSQL データベースとしてクエリする

拡張機能をインストールした後、以下のステップに従ってEnterpriseDB へのクエリの実行を開始します。

  1. データベースにログイン
  2. データベースの拡張機能をロード
    CREATE EXTENSION jdbc2_fdw;
    
  3. EnterpriseDB のオブジェクトを作成
    CREATE SERVER EnterpriseDB
    FOREIGN DATA WRAPPER jdbc2_fdw OPTIONS (
    drivername 'cdata.jdbc.enterprisedb.EnterpriseDBDriver',
    url 'jdbc:enterprisedb:User=postgres;Password=admin;Database=postgres;Server=127.0.0.1;Port=5444',
    querytimeout '15',
    jarfile '/home/MyUser/CData/CData\ JDBC\ Driver\ for\ Salesforce MyDriverEdition/lib/cdata.jdbc.enterprisedb.jar');
    
  4. PostgreSQL デーモンに認識されているユーザーのユーザー名とパスワードのユーザーマッピングを作成
    CREATE USER MAPPING for postgres SERVER EnterpriseDB OPTIONS (
    username 'admin',
    password 'test');
    
  5. ローカルデータベースに外部テーブルを作成
    postgres=# CREATE FOREIGN TABLE orders (
    orders_id text,
    orders_ShipName text,
    orders_ShipCity numeric)
    SERVER EnterpriseDB OPTIONS (
    table_name 'orders');
    
EnterpriseDB に対して 読み取り/書き込みコマンドを実行可能にする
postgres=# SELECT * FROM orders;

おわりに

このようにCData JDBC Driver for EnterpriseDB を使って簡単にEnterpriseDB のデータを取得して検索対象にすることができました。ぜひ、30日の無償評価版 をお試しください。

はじめる準備はできましたか?

EnterpriseDB Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

EnterpriseDB Icon EnterpriseDB JDBC Driver お問い合わせ

EnterpriseDB 連携のパワフルなJava アプリケーションを素早く作成して配布。