讀取 PostgreSQL 資料庫

本頁說明如何在 Cloud Data Fusion 執行個體中讀取 PostgreSQL 資料庫的資料。

事前準備

  • 建立 Cloud Data Fusion 執行個體
  • 啟用 PostgreSQL 資料庫,接受來自 Cloud Data Fusion 的連線。為確保安全,建議您使用私有 Cloud Data Fusion 執行個體。

必要的角色

如要取得連線至 PostgreSQL 資料庫所需的權限,請管理員授予下列 IAM 角色:

  • Dataproc 工作站 (roles/dataproc.worker) 在含有叢集的專案中,對 Dataproc 服務帳戶執行此操作
  • Cloud Data Fusion Runner (roles/datafusion.runner) 在包含叢集的專案中,對 Dataproc 服務帳戶執行操作
  • 如要在不使用 Cloud SQL 驗證 Proxy 的情況下使用 Cloud SQL,請按照下列步驟操作: Cloud SQL 用戶端 (roles/cloudsql.client) 在包含 Cloud SQL 執行個體的專案中

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

在 Cloud Data Fusion 中開啟執行個體

  1. 在 Google Cloud 控制台中,前往 Cloud Data Fusion 頁面。

  2. 如要在 Cloud Data Fusion Studio 中開啟執行個體,請依序按一下「Instances」和「View instance」

    前往「Instances」(執行個體)

將 PostgreSQL 密碼儲存為安全金鑰

輸入 PostgreSQL 密碼做為安全金鑰,在 Cloud Data Fusion 執行個體中加密。如要進一步瞭解金鑰,請參閱 Cloud KMS

  1. 在 Cloud Data Fusion 使用者介面中,依序點選「系統管理」>「設定」

  2. 按一下「Make HTTP Calls」

    設定。

  3. 在下拉式選單中選擇「PUT」

  4. 在路徑欄位中輸入 namespaces/default/securekeys/pg_password

  5. 在「Body」欄位中輸入 {"data":"POSTGRESQL_PASSWORD"}。 將 POSTGRESQL_PASSWORD 換成 PostgreSQL 密碼。

  6. 按一下 [傳送]

    密碼。

「回應」欄位會通知您任何錯誤。

連線至 PostgreSQL 適用的 Cloud SQL

  1. 在 Cloud Data Fusion 使用者介面中,按一下選單 ,然後前往「Wrangler」Wrangler頁面。

  2. 按一下「新增連線」

  3. 選擇「資料庫」做為要連結的來源類型。

    新增連線。

  4. 在「PostgreSQL 適用的 Google Cloud SQL」下方,按一下「上傳」

    選擇來源。

  5. 上傳內含 PostgreSQL 驅動程式的 JAR 檔案。JAR 檔案必須採用 NAME-VERSION.jar 格式。如果 JAR 檔案不符合這個格式,請先重新命名再上傳。

  6. 點選「下一步」

  7. 在欄位中輸入驅動程式名稱、類別名稱和版本。

  8. 按一下「完成」

  9. 在開啟的「新增連線」視窗中,按一下「Google Cloud SQL for PostgreSQL」。JAR 名稱應會顯示在「PostgreSQL 適用的 Google Cloud SQL」下方。

    已上傳 JAR。

  10. 填寫必填的連線欄位。在「Password」(密碼) 欄位中,選取先前儲存的安全金鑰。 這樣一來,系統就會使用 Cloud KMS 擷取密碼。

    選擇密碼。

  11. 在「連線字串」欄位中,輸入連線字串,格式如下:

    jdbc:postgresql://google/DATABASE_NAME?cloudSqlInstance=INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&useSSL=false
    

    更改下列內容:

    • :Cloud SQL 資料庫名稱,如執行個體詳細資料頁面的「資料庫」分頁中所示。DATABASE_NAME
    • 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. 按一下「新增連線」

PostgreSQL 資料庫連線完成後,您可以在 Wrangler 中轉換資料、建立管道,並在 Studio 中將輸出內容寫入接收器。