連線至 AlloyDB for PostgreSQL
BigQuery 管理員可以建立連線,存取 AlloyDB 資料。資料分析師可透過這個連線查詢 AlloyDB 中的資料。
如要連線至 AlloyDB,請按照下列步驟操作:
事前準備
- 啟用 BigQuery Connection API。
-
如要取得建立 AlloyDB 連線所需的權限,請要求管理員授予您專案的 BigQuery 連線管理員 (
roles/bigquery.connectionAdmin
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
建立 AlloyDB 連線
最佳做法是使用連線來處理資料庫憑證,以便連線至 AlloyDB。連線會經過加密,並安全地儲存在 BigQuery 連線服務中。如果使用者憑證適用於來源中的其他資料,您可以重複使用該連線。舉例來說,您可以使用一個連線,在 AlloyDB 執行個體中多次查詢同一個資料庫。
選取下列其中一個選項,建立 AlloyDB 連線:
主控台
前往「BigQuery」頁面
在「Explorer」窗格中,按一下
「Add」。「新增資料」對話方塊隨即開啟。
在「Filter By」(依條件篩選) 窗格的「Data Source Type」(資料來源類型) 區段中,選取「Databases」(資料庫)。
或者,您也可以在「Search for data sources」(搜尋資料來源) 欄位中輸入
alloydb
。在「精選資料來源」部分,按一下「Google Cloud AlloyDB」。
按一下「AlloyDB:BigQuery Federation」解決方案資訊卡。
在「外部資料來源」對話方塊中,輸入下列資訊:
- 在「連線類型」部分,選取「AlloyDB」。
- 在「Connection ID」(連線 ID) 專區中輸入連線資源的 ID。您可以使用英文字母、數字和底線。例如:
bq_alloydb_connection
。 - 在「資料位置」中,選取與外部資料來源區域相容的 BigQuery 位置 (或區域)。
- 選用:在「Friendly name」(好記名稱) 中輸入使用者容易記得的連線名稱,例如
My connection resource
。好記名稱可以是任何資料值,只要您日後需要修改時可以輕鬆識別連線資源即可。 - 選用:在「Description」(說明) 中輸入這項連線資源的說明。
- 選用:加密:如要使用客戶自行管理的加密金鑰 (CMEK) 加密憑證,請選取「客戶自行管理的加密金鑰 (CMEK)」,然後選取客戶自行管理的金鑰。否則,您的憑證會受到預設 Google-owned and Google-managed encryption key保護。
- 在「Database name」(資料庫名稱) 中輸入資料庫名稱。
- 在「Database username」(資料庫使用者名稱) 中輸入資料庫的使用者名稱。
- 在「Database password」(資料庫密碼) 中輸入資料庫密碼。
- 選用:如要查看密碼,請按一下「顯示密碼」 。
針對「AlloyDB Instance」(AlloyDB 執行個體),輸入 AlloyDB 主要或讀取執行個體的連線 URI,並加上 //alloydb.googleapis.com 前置字串。
- 範例 URI:
//alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
- 範例 URI:
點選「建立連線」。
按一下「前往連線」。
在「連線資訊」窗格中,複製服務帳戶 ID,以便在下一個步驟中授予正確的 IAM 權限。
bq
輸入 bq mk
指令,並加上下列旗標:
bq mk \
--connection \
--location=LOCATION \
--project_id=PROJECT_ID \
--connector_configuration '{
"connector_id": "google-alloydb",
"asset": {
"database": "DATABASE",
"google_cloud_resource": "RESOURCE_PATH"
},
"authentication": {
"username_password": {
"username": "USERNAME",
"password": {
"plaintext": "PASSWORD"
}
}
}
}' \
CONNECTION_ID
更改下列內容:
LOCATION
:指定要與 AlloyDB 資料合併的 BigQuery 資料集區域。使用這個連線的查詢必須從這個區域執行。PROJECT_ID
:輸入您的 Google Cloud 專案 ID。DATABASE
:輸入資料庫名稱。RESOURCE_PATH
:輸入 AlloyDB 主要或讀取執行個體的連線 URI,並加上 //alloydb.googleapis.com 前置字元。- 範例 URI:
//alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
- 範例 URI:
USERNAME
:輸入資料庫使用者的名稱。PASSWORD
:輸入資料庫使用者的密碼。CONNECTION_ID
:輸入連線 ID,識別這項連線。
API
在 BigQuery Connection API 中,您可以在 ConnectionService
內叫用 CreateConnection
,以例項化連線。詳情請參閱用戶端程式庫頁面。
將存取權授予服務帳戶
在專案中建立第一個連線時,系統會自動建立服務帳戶。服務帳戶名稱為「BigQuery Connection Service Agent」。服務帳戶 ID 的格式如下:
service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
。
如要連線至 AlloyDB,您必須授予新連線 AlloyDB 存取權,這樣 BigQuery 才能代替使用者存取資料。服務帳戶必須具備下列權限:
alloydb.instances.connect
您可以將AlloyDB 用戶端 IAM 角色授予與連線相關聯的服務帳戶,這個角色已指派這項權限。如果服務帳戶已具備必要權限,則可略過這個步驟。
主控台
前往「IAM & Admin」(IAM 與管理) 頁面。
按一下
「授予存取權」。「新增主體」對話方塊隨即開啟。
在「新增主體」欄位中,輸入服務帳戶名稱「BigQuery Connection Service Agent」,或從連線資訊取得的服務帳戶 ID。
在「Select a role」(請選取角色) 欄位中,依序選取「AlloyDB」和「AlloyDB Client」(AlloyDB 用戶端)。
按一下 [儲存]。
gcloud
使用 gcloud projects add-iam-policy-binding
指令:
gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_ID --role=roles/alloydb.client
提供以下這些值:
PROJECT_ID
:您的 Google Cloud 專案 ID。SERVICE_ACCOUNT_ID
:將service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
中的專案編號換成您的專案編號,然後使用該專案。
與使用者共用連線
您可以授予下列角色,讓使用者查詢資料及管理連線:
roles/bigquery.connectionUser
:可讓使用者透過連線功能連結外部資料來源,並對其執行查詢。roles/bigquery.connectionAdmin
:允許使用者管理連線。
如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱預先定義的角色和權限一文。
選取下列選項之一:
主控台
前往「BigQuery」頁面
連線會列在專案的「External connections」(外部連線) 群組中。
在「Explorer」窗格中,依序點選專案名稱 >「外部連線」>「連線」。
在「詳細資料」窗格中,按一下「分享」即可分享連線。 接著,按照下列步驟操作:
在「連線權限」對話方塊中,新增或編輯主體,與其他主體共用連線。
按一下 [儲存]。
bq
使用下列 set-iam-policy
指令:
bq set-iam-policy RESOURCE FILE_NAME
更改下列內容:
RESOURCE
:以project_id.region.connection_id
或region.connection_id
格式輸入資源名稱。FILE_NAME
:輸入包含 JSON 格式 IAM 政策的檔案名稱。
如要進一步瞭解 set-iam-policy 指令,請參閱「使用 IAM 控管資源存取權」。
API
請使用 BigQuery Connections REST API 參考資料中的 projects.locations.connections.setIAM
方法,並提供 policy
資源的執行個體。
後續步驟
- 瞭解不同連線類型。
- 瞭解如何管理連線。
- 瞭解聯合查詢。
- 瞭解如何查詢 AlloyDB 資料。