このページでは、Cloud Data Fusion インスタンスで PostgreSQL データベースからデータを読み取る方法について説明します。
準備
- Cloud Data Fusion インスタンスを作成する。
- PostgreSQL データベースが Cloud Data Fusion からの接続を受け入れるようにします。安全に接続するためには、プライベート Cloud Data Fusion インスタンスを使用することをおすすめします。
必要なロール
PostgreSQL データベースに接続するために必要な権限を取得するには、管理者に次の IAM ロールを付与するよう依頼してください。
-
クラスタを含むプロジェクトの Dataproc サービス アカウントに対する Dataproc ワーカー (
roles/dataproc.worker
)ロール -
クラスタを含むプロジェクトの Dataproc サービス アカウントに対する Cloud Data Fusion 実行者 (
roles/datafusion.runner
)ロール - Cloud SQL Auth Proxy を使用せずに Cloud SQL を使用する場合: Cloud SQL インスタンスを含むプロジェクトに対する Cloud SQL クライアント (
roles/cloudsql.client
)ロール
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Cloud Data Fusion でインスタンスを開く
Google Cloud コンソールで、Cloud Data Fusion のページに移動します。
Cloud Data Fusion Studio でインスタンスを開くには、[インスタンス]、[インスタンスを表示] の順にクリックします。
PostgreSQL パスワードをセキュリティ キーとして保存する
Cloud Data Fusion インスタンスで暗号化に使用するセキュリティ キーとして PostgreSQL パスワードを入力します。キーの詳細については、Cloud KMS をご覧ください。
Cloud Data Fusion UI で、[システム管理者] > [構成] をクリックします。
[Make HTTP Calls] をクリックします。
プルダウン メニューで [PUT] を選択します。
[Path] フィールドに「
namespaces/default/securekeys/pg_password
」と入力します。[Body] フィールドに「
{"data":"POSTGRESQL_PASSWORD"}
」と入力します。POSTGRESQL_PASSWORD
を PostgreSQL パスワードに置き換えます。[送信] をクリックします。
[レスポンス] フィールドにエラーが表示されます。
Cloud SQL for PostgreSQL に接続する
Cloud Data Fusion UI でメニュー menu をクリックし、[Wrangler] ページに移動します。
[Add connection] をクリックします。
接続するソースタイプとして [Database] を選択します。
[Google Cloud SQL for PostgreSQL] で [Upload] をクリックします。
PostgreSQL ドライバが含まれた JAR ファイルをアップロードします。JAR ファイルの名前は
NAME-VERSION.jar
の形式でなければなりません。JAR ファイルがこの形式に従っていない場合は、アップロードする前に名前を変更します。[次へ] をクリックします。
ドライバの名前、クラス名、バージョンをフィールドに入力します。
[完了] をクリックします。
[Add connection] ウィンドウが開いたら、[Google Cloud SQL for PostgreSQL] をクリックします。[Google Cloud SQL for PostgreSQL] の下に、JAR の名前が表示されます。
接続の必須フィールドに入力します。[Password] フィールドで、前に保存したセキュリティ キーを選択します。これにより、Cloud KMS を使用してパスワードが取得されるようになります。
[接続文字列] フィールドに、次の接続文字列を入力します。
jdbc:postgresql://google/DATABASE_NAME?cloudSqlInstance=INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&useSSL=false
以下を置き換えます。
DATABASE_NAME
: インスタンスの詳細ページの [データベース] タブに表示されている Cloud SQL データベース名。INSTANCE_CONNECTION_NAME
: インスタンスの詳細ページの [概要]タブに表示される Cloud SQL インスタンスの接続名。
例:
jdbc:postgresql://google/postgres?cloudSqlInstance=dis-demo:us-central1:pgsql-1&socketFactory=com.google.cloud.sql.postgres.SocketFactory&useSSL=false
Cloud SQL Admin API を有効にします。
[テスト接続] をクリックして、データベースとの接続を確立できることを確認します。
[Add connection] をクリックします。
PostgreSQL データベースが接続されたら、(Wrangler で)データに変換を適用したり、(スタジオで)パイプラインを作成し、出力をシンクに書き込んだりできます。