本頁面說明如何從 Cloud Data Fusion 執行個體中的 PostgreSQL 資料庫讀取資料。
事前準備
- 建立 Cloud Data Fusion 執行個體。
- 啟用 PostgreSQL 資料庫,接受來自 Cloud Data Fusion 的連線。為確保安全性,建議您使用私人 Cloud Data Fusion 執行個體。
必要的角色
如要取得連線至 PostgreSQL 資料庫所需的權限,請要求管理員授予您下列 IAM 角色:
-
在包含叢集的專案中,將 Dataproc 工作站 (
roles/dataproc.worker
) 指派給 Dataproc 服務帳戶 -
在包含叢集的專案中,在 Dataproc 服務帳戶上設定 Cloud Data Fusion 執行者 (
roles/datafusion.runner
) -
如要在不使用 Cloud SQL 驗證 Proxy 的情況下使用 Cloud SQL,請按照下列步驟操作:
Cloud SQL 用戶端 (
roles/cloudsql.client
) 在包含 Cloud SQL 執行個體的專案中
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
在 Cloud Data Fusion 中開啟執行個體
在 Google Cloud 控制台中,前往 Cloud Data Fusion 頁面。
如要在 Cloud Data Fusion Studio 中開啟執行個體,請依序按一下「Instances」和「View instance」。
將 PostgreSQL 密碼儲存為安全金鑰
輸入 PostgreSQL 密碼做為安全金鑰,以便在 Cloud Data Fusion 執行個體中進行加密。如要進一步瞭解金鑰,請參閱 Cloud KMS。
在 Cloud Data Fusion UI 中,依序按一下「系統管理」>「設定」。
按一下「Make HTTP Calls」。
在下拉式選單中,選擇「PUT」。
在路徑欄位中輸入
namespaces/default/securekeys/pg_password
。在「Body」欄位中輸入
{"data":"POSTGRESQL_PASSWORD"}
。請將POSTGRESQL_PASSWORD
替換為 PostgreSQL 密碼。按一下 [傳送]。
「Response」欄位會通知你任何錯誤。
連線至 PostgreSQL 適用的 Cloud SQL
在 Cloud Data Fusion UI 中,按一下選單 menu,然後前往「Wrangler」Wrangler頁面。
按一下「新增連線」。
選擇「資料庫」做為要連結的來源類型。
在「Google Cloud SQL for PostgreSQL」下方,點選「上傳」。
上傳內含 PostgreSQL 驅動程式的 JAR 檔案。JAR 檔案必須採用
NAME-VERSION.jar
格式。如果 JAR 檔案不符合這個格式,請先重新命名再上傳。點按「Next」。
在欄位中輸入驅動程式名稱、類別名稱和版本。
按一下「完成」。
在隨即開啟的「新增連線」視窗中,按一下「Google Cloud SQL for PostgreSQL」。JAR 名稱應顯示在 PostgreSQL 適用的 Google Cloud SQL 下方。
填寫必填連結欄位。在「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 執行個體連線名稱,如執行個體詳細資料頁面「Overview」分頁中所示。
例如:
jdbc:postgresql://google/postgres?cloudSqlInstance=dis-demo:us-central1:pgsql-1&socketFactory=com.google.cloud.sql.postgres.SocketFactory&useSSL=false
啟用 Cloud SQL Admin API。
按一下「測試連線」,確認是否能與資料庫建立連線。
按一下「新增連線」。
連結 PostgreSQL 資料庫後,您可以對資料套用轉換 (在 Wrangler 中)、建立管道,並將輸出內容寫入匯出端 (在 Studio 中)。