各製品の資料を入手。
詳細はこちら →Google Cloud Storage のデータ のPostgreSQL インターフェースを作成
Google Cloud Storage JDBC Driver のリモート機能を使用し、データアクセス用のPostgreSQL エントリポイントを作成します。
最終更新日:2022-12-02
この記事で実現できるGoogle Cloud Storage 連携のシナリオ
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
PostgreSQL には多くの対応クライアントがあります。標準のドライバーからBI、アナリティクスツールまで、PostgreSQL はデータ接続の人気のインターフェースです。JDBC ドライバーを使用することで、簡単に任意の標準クライアントから接続できるPostgreSQL エントリポイントを作成できます。
Google Cloud Storage にPostgreSQL データベースとしてアクセスするには、CData JDBC Driver for GoogleCloudStorage とJDBC foreign data wrapper (FDW) を使用します。この記事ではFDW をコンパイルしてインストールし、PostgreSQL サーバーからGoogle Cloud Storage にクエリを実行します。
JDBC データソースとしてGoogle Cloud Storage のデータに接続する
JDBC データソースとしてGoogle Cloud Storage に接続するには、以下が必要です。
- Driver のJAR パス:JAR ファイルは、インストールディレクトリのlib サブフォルダにあります。
Driver クラス
cdata.jdbc.googlecloudstorage.GoogleCloudStorageDriver
- JDBC URL:
URL は、"jdbc:googlecloudstorage:" で始まり、セミコロンで区切られた名前と値の組み合わせで任意の接続プロパティを含めることができます。
ユーザーアカウントでの認証
ユーザー資格情報の接続プロパティを設定することなく接続できます。InitiateOAuth をGETANDREFRESH に設定したら、接続の準備が完了です。
接続すると、Google Cloud Storage OAuth エンドポイントがデフォルトブラウザで開きます。ログインして権限を付与すると、OAuth プロセスが完了します。
サービスアカウントでの認証
サービスアカウントには、ブラウザでユーザー認証を行わないサイレント認証があります。サービスアカウントを使用して、企業全体のアクセススコープを委任することもできます。
このフローでは、OAuth アプリケーションを作成する必要があります。詳しくは、ヘルプドキュメントを参照してください。以下の接続プロパティを設定したら、接続の準備が完了です:
- InitiateOAuth: GETANDREFRESH に設定。
- OAuthJWTCertType: PFXFILE に設定。
- OAuthJWTCert: 生成した.p12 ファイルへのパスに設定。
- OAuthJWTCertPassword: .p12 ファイルのパスワードに設定。
- OAuthJWTCertSubject: 証明書ストアの最初の証明書が選ばれるように"*" に設定。
- OAuthJWTIssuer: 「サービスアカウント」セクションで「サービスアカウントの管理」をクリックし、このフィールドをサービスアカウントID フィールドに表示されているE メールアドレスに設定。
- OAuthJWTSubject: サブジェクトタイプが"enterprise" に設定されている場合はエンタープライズID に設定し、"user" に設定されている場合はアプリユーザーID に設定。
- ProjectId: 接続するプロジェクトのID に設定。
これで、サービスアカウントのOAuth フローが完了します。
ビルトイン接続文字列デザイナ
JDBC URL の構成については、Google Cloud Storage JDBC Driver に組み込まれている接続文字列デザイナを使用できます。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.googlecloudstorage.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
以下は一般的なJDBC URL です。
jdbc:googlecloudstorage:ProjectId='project1';InitiateOAuth=GETANDREFRESH
JDBC FDW を構築する
FDW は、PostgreSQL を再コンパイルせずに、PostgreSQL の拡張機能としてインストールできます。例としてjdbc2_fdw 拡張子を使用します。
- ご使用のバージョンのJRE 共有オブジェクトから、/usr/lib/libjvm.so にシンボリックリンクを追加します。コマンド例:
ln -s /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so /usr/lib/libjvm.so
- ビルドするには、以下のコマンドを実行してください。
make install USE_PGXS=1
Google Cloud Storage のデータをPostgreSQL データベースとしてクエリする
拡張機能をインストールした後、以下のステップに従ってGoogle Cloud Storage へのクエリの実行を開始します。
- データベースにログイン
-
データベースの拡張機能をロード
CREATE EXTENSION jdbc2_fdw;
-
Google Cloud Storage のオブジェクトを作成
CREATE SERVER GoogleCloudStorage FOREIGN DATA WRAPPER jdbc2_fdw OPTIONS ( drivername 'cdata.jdbc.googlecloudstorage.GoogleCloudStorageDriver', url 'jdbc:googlecloudstorage:ProjectId='project1';InitiateOAuth=GETANDREFRESH', querytimeout '15', jarfile '/home/MyUser/CData/CData\ JDBC\ Driver\ for\ Salesforce MyDriverEdition/lib/cdata.jdbc.googlecloudstorage.jar');
-
PostgreSQL デーモンに認識されているユーザーのユーザー名とパスワードのユーザーマッピングを作成
CREATE USER MAPPING for postgres SERVER GoogleCloudStorage OPTIONS ( username 'admin', password 'test');
-
ローカルデータベースに外部テーブルを作成
postgres=# CREATE FOREIGN TABLE buckets ( buckets_id text, buckets_Name text, buckets_OwnerId numeric) SERVER GoogleCloudStorage OPTIONS ( table_name 'buckets');
postgres=# SELECT * FROM buckets;
おわりに
このようにCData JDBC Driver for GoogleCloudStorage を使って簡単にGoogle Cloud Storage のデータを取得して検索対象にすることができました。ぜひ、30日の無償評価版 をお試しください。