各製品の資料を入手。
詳細はこちら →Google Cloud Data Fusion でPostgreSQL のデータを扱う方法:CData JDBC Driver
CData JDBC ドライバを使って、Google Cloud Data fusion で PostgreSQL のデータ をBigQuery にETL。
最終更新日:2022-05-16
この記事で実現できるPostgreSQL 連携のシナリオ
こんにちは!プロダクトスペシャリストの宮本です。
Google Cloud Data Fusion は、ノーコードでデータ連携の設定が可能な言わば GCP の ETL ツール(サービス)です。たくさんのコネクタや変換・分析機能がデフォルトで用意されているため、さまざまなデータソースを色々な組み合わせで扱うことが可能なようです。 また JDBC を扱うこともできるため、この記事では、CData JDBC Driver for PostgreSQL のデータ を使って、PostgreSQL のデータ データをCloud Data Fusion でGoogle BigQuery にノーコードでパイプラインします。
Cloud Data Fusion の準備
まずはCloud Data Fusion のインスタンスを作成します。
- Data Fusion のトップ画面にある「CREATE INSTANCE」からインスタンスを作成します。
- 作成されたインスタンス名を先ほどの画面でクリックすると以下の画面に遷移しますので、画面下部にある Service Account をコピーします。
- 画面上部にある追加からメンバーを追加します。メンバー名は先ほどコピーした「Service Account」に合わせてください。 役割は BiqQuery へもアクセスしますので、「BigQuery 管理者」、「Cloud Data Fusion 管理者」、「Cloud Data Fusion API サービス エージェント」を付与します。

CData JDBC Driver for PostgreSQL のアップロード
ここからは実際に、Data Fusion の設定をしていきます。 まずは JDBC Driver をアップロードを行います。
- 「View Instance」をクリックして、Data Fusion の Control Center を開きます。
- Control Center が表示されたら、「+」ボタンをクリックして JDBC Driver をアップロードしていきます。
- Name:アップロードしたドライバーに設定する名前
- Class name:cdata.jdbc.postgresql.PostgreSQLDriver
- アップロードする際の注意点として、Driver のファイル名を name-version の形式に変更してアップロードする必要があります。 なお、jarファイルをダブルクリックした際に表示されているバージョンをもとに「postgresql-connector-java-19.0.7115.0.jar」に変更しました。
- アップロードが成功するとこのような画面が表示されるので、「Create a Pipeline」をクリックします。



PostgreSQL からGoogle BigQuery へのパイプラインの作成
Data Fusion のパイプライン作成
インプット元はサイドメニューの「Source」から選択します。今回は先ほどアップロードした PostgreSQL のデータ の JDBC Driver を使用するため、「DataBase」を選択します。 アウトプット先は同じくサイドメニューより「Sink」→「BigQuery」を選択します。

「DataBase」の設定
「DataBase」のアイコンにカーソルを持ってくるとプロパティというボタンが表示されるのでクリックし、下記内容を設定します。
- Label:PostgreSQL
- Reference Name:PostgreSQL
- Plugin Name:PostgreSQL Driver(Driver をアップロードした際の名前)
- Plugin Type:jdbc
- Connection String:PostgreSQL へ接続する際の JDBC URL
- Import Query:インプットしたいデータを抽出するクエリ
PostgreSQL への接続には、Server、Port(デフォルトは5432)、Database、およびUser、Password のプロパティを設定します。Database プロパティが設定されない場合には、User のデフォルトデータベースに接続します。
パスワード方式によるSSH 接続
パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。
- User: PostgreSQL のユーザ
- Password: PostgreSQL のパスワード
- Database: PostgreSQL の接続先データベース
- Server: PostgreSQL のサーバー
- Port: PostgreSQL のポート
- UserSSH: "true"
- SSHAuthMode: "Password"
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHPassword: SSH パスワード
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=postgresql-server;Port=5432;UseSSH=true;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;
公開鍵認証方式によるSSH 接続
公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。
- User: PostgreSQL のユーザ
- Password: PostgreSQL のパスワード
- Database: PostgreSQL の接続先データベース
- Server: PostgreSQL のサーバー
- Port: PostgreSQL のポート
- UserSSH: "true"
- SSHAuthMode: "Public_Key"
- SSHClientCertType: キーストアの種類
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHClientCert: 秘密鍵ファイルのパス
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=PostgreSQL-server;Port=5432;UseSSH=true;SSHClientCertType=PEMKEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem;
Connection String は以下の形式です。
jdbc:postgresql:User=postgres;Password=admin;Database=postgres;Server=127.0.0.1;Port=5432;

上のキャプチャの赤枠は、Salesforce から BigQuery へアウトプットするデータの定義となります。 こちらは「Import Query」のすぐ右上にある「Get Schema」をクリックすると下の画面が表示されますので、「Import Query」で入力したクエリを実行し、カラムを定義します。

「BigQuery」の設定
こちらも同様に BigQuery のプロパティから下記内容を設定します。
- Label:BigQuery
- Reference Name:BigQuery
- Project ID:使用するProject ID
- DataSet:使用するDataSet
- Table:使用するテーブル名、例:Account_DataFusion

作成したPostgreSQL のデータ からBigQuery のパイプラインの実行
まずは作成したパイプラインをデプロイします。赤枠の「Deploy」ボタンをクリックしてデプロイを行います。

デプロイ完了後、Runボタンが表示されますので、クリックします。

このようにCData JDBC ドライバをアップロードすることで、簡単にGoogle Cloud Data Fusion でPostgreSQL のデータ データをノーコードで連携し、BigQuery などへのパイプラインを作成することができます。
是非、CData JDBC Driver for PostgreSQL 30日の無償評価版 をダウンロードして、お試しください。