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

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

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

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

Azure Data Lake Storage への接続を設定

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

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


[databases]
azure data lake storage = "Schema=ADLSGen2;Account=myAccount;FileSystem=myFileSystem;AccessKey=myAccessKey;"

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

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

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

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

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

  2. 以下のコマンドで MySQL リモーティングサービスを開始します:
    java -jar cdata.jdbc.adls.jar -f cdata.jdbc.adls.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 ライブラリを環境にロードする必要があります(例:パスに追加するなど)。

Azure Data Lake Storage のデータ を PostgreSQL データベースとしてクエリ

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

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

これで Azure Data Lake Storage に対して SELECT コマンドを実行できます:

postgres=# SELECT * FROM ADLS_db."resources";

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

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

 ダウンロード

詳細:

Azure Data Lake Storage Icon Azure Data Lake Storage JDBC Driver お問い合わせ

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