PostgreSQL データベースから読み取る

このページでは、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 でインスタンスを開く

  1. Google Cloud コンソールで、Cloud Data Fusion のページに移動します。

  2. Cloud Data Fusion Studio でインスタンスを開くには、[インスタンス]、[インスタンスを表示] の順にクリックします。

    [インスタンス] に移動

PostgreSQL パスワードをセキュリティ キーとして保存する

Cloud Data Fusion インスタンスで暗号化に使用するセキュリティ キーとして PostgreSQL パスワードを入力します。キーの詳細については、Cloud KMS をご覧ください。

  1. Cloud Data Fusion UI で、[システム管理者] > [構成] をクリックします。

  2. [Make HTTP Calls] をクリックします。

    [Configuration] タブ。

  3. プルダウン メニューで [PUT] を選択します。

  4. [Path] フィールドに「namespaces/default/securekeys/pg_password」と入力します。

  5. [Body] フィールドに「{"data":"POSTGRESQL_PASSWORD"}」と入力します。 POSTGRESQL_PASSWORD を PostgreSQL パスワードに置き換えます。

  6. [送信] をクリックします。

    パスワード。

[レスポンス] フィールドにエラーが表示されます。

Cloud SQL for PostgreSQL に接続する

  1. Cloud Data Fusion UI でメニュー をクリックし、[Wrangler] ページに移動します。

  2. [Add connection] をクリックします。

  3. 接続するソースタイプとして [Database] を選択します。

    接続を追加する。

  4. [Google Cloud SQL for PostgreSQL] で [Upload] をクリックします。

    ソースを選択する。

  5. PostgreSQL ドライバが含まれた JAR ファイルをアップロードします。JAR ファイルの名前は NAME-VERSION.jar の形式でなければなりません。JAR ファイルがこの形式に従っていない場合は、アップロードする前に名前を変更します。

  6. [次へ] をクリックします。

  7. ドライバの名前、クラス名、バージョンをフィールドに入力します。

  8. [完了] をクリックします。

  9. [Add connection] ウィンドウが開いたら、[Google Cloud SQL for PostgreSQL] をクリックします。[Google Cloud SQL for PostgreSQL] の下に、JAR の名前が表示されます。

    アップロードされた JAR。

  10. 接続の必須フィールドに入力します。[Password] フィールドで、前に保存したセキュリティ キーを選択します。これにより、Cloud KMS を使用してパスワードが取得されるようになります。

    パスワードを設定。

  11. [接続文字列] フィールドに、次の接続文字列を入力します。

    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
    

  12. Cloud SQL Admin API を有効にします。

  13. [テスト接続] をクリックして、データベースとの接続を確立できることを確認します。

  14. [Add connection] をクリックします。

PostgreSQL データベースが接続されたら、(Wrangler で)データに変換を適用したり、(スタジオで)パイプラインを作成し、出力をシンクに書き込んだりできます。