IBM Cloud Object Storage のデータ の PostgreSQL インターフェースを作成(MySQL リモーティング経由の JDBC)

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
IBM Cloud Object Storage JDBC Driver のリモート機能を使用して、データアクセス用の PostgreSQL エントリポイントを作成します。

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

IBM Cloud Object Storage のデータ に PostgreSQL データベースとしてアクセスするには、CData JDBC Driver for IBM Cloud Object Storage のリモーティング機能と、EnterpriseDB の MySQL Foreign Data Wrapper(FDW)を使用します。この記事では、FDW をインストールし、PostgreSQL Server からIBM Cloud Object Storage のデータにクエリを実行する方法を説明します。

IBM Cloud Object Storage への接続を設定

以下の手順に従って、IBM Cloud Object Storage への接続に必要な認証情報やその他の接続プロパティをドライバーの MySQL デーモンに設定します。MySQL デーモンは、IBM Cloud Object Storage のデータ を CDataIBMCloudObjectStorage という名前の MySQL データベースとして公開します。デーモンの設定ファイル内の databases セクションに接続プロパティを追加します。設定ファイルは、ドライバーのインストールディレクトリの lib サブフォルダにあります。

以下は一般的な接続文字列です:


[databases]
ibm cloud object storage = "ApiKey=myApiKey;CloudObjectStorageCRN=MyInstanceCRN;Region=myRegion;OAuthClientId=MyOAuthClientId;OAuthClientSecret=myOAuthClientSecret;"

また、users セクションにユーザーを作成します。

MySQL デーモンのすべての設定オプションについては、ヘルプドキュメントをご参照ください。

リモーティングサービスを開始

以下の手順に従って、CData JDBC Driver for IBM Cloud Object Storage の MySQL リモーティング機能を有効にします。

  1. ドライバーはテスト用に適したデフォルト設定を作成します。サービスを開始するだけでIBM Cloud Object Storage のデータに接続できます。

  2. 以下のコマンドで MySQL リモーティングサービスを開始します:
    java -jar cdata.jdbc.ibmcloudobjectstorage.jar -f cdata.jdbc.ibmcloudobjectstorage.remoting.ini
    

MySQL Foreign Data Wrapper をビルドしてインストール

Foreign Data Wrapper は、PostgreSQL を再コンパイルせずに、PostgreSQL の拡張機能としてインストールできます。

お使いの OS で pgxn が利用可能な場合は、以下のコマンドでインストールできます:

pgxn install mysql_fdw USE_PGXS=1

利用できない場合は、以下の手順で自分でビルドしてください:

  1. MySQL C クライアントライブラリをインストールし、EnterpriseDB の MySQL 用 FDW のソースを取得します(例:GitHub から)。
  2. FDW をビルドします。pg_config と mysql_config の実行ファイルを PATH に追加してください:
    env PATH=/usr/local/pgsql/bin:/usr/local/mysql/bin:$PATH make USE_PGXS=1
    
  3. FDW をインストールします:
    make USE_PGXS=1 install
    

インストールを完了するには、libmysqlclient ライブラリを環境にロードする必要があります(例:パスに追加するなど)。

IBM Cloud Object Storage のデータ を PostgreSQL データベースとしてクエリ

拡張機能をインストールした後、以下の手順に従ってIBM Cloud Object Storage のデータへのクエリ実行を開始します:

  1. データベースにログインします。
  2. データベースの拡張機能をロードします:
    postgres=#CREATE EXTENSION mysql_fdw;
    
  3. IBM Cloud Object Storage のデータ 用のサーバーオブジェクトを作成します:
    postgres=# CREATE SERVER IBMCloudObjectStorage FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host
    '127.0.0.1', port '3309');
    
  4. MySQL デーモンに認識されているユーザーのユーザー名とパスワードでユーザーマッピングを作成します:
    postgres=# CREATE USER MAPPING for postgres SERVER IBMCloudObjectStorage OPTIONS (username
    'admin', password 'test');
    
  5. ローカルスキーマを作成します:
    postgres=# CREATE SCHEMA IBMCloudObjectStorage_db;
  6. デーモン設定ファイルで定義した IBM Cloud Object Storage データベース内のすべてのテーブルをインポートします:
    postgres=# IMPORT FOREIGN SCHEMA "IBMCloudObjectStorage" FROM SERVER IBMCloudObjectStorage INTO IBMCloudObjectStorage_db;
    

これで IBM Cloud Object Storage に対して SELECT コマンドを実行できます:

postgres=# SELECT * FROM IBMCloudObjectStorage_db."objects";

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

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

 ダウンロード

詳細:

IBM Cloud Object Storage Icon IBM Cloud Object Storage JDBC Driver お問い合わせ

IBM Cloud Object Storage データに連携するJava アプリケーションを素早く、簡単に開発できる便利なドライバー。