管理連線
本文件說明如何查看、列出、分享、編輯、刪除 BigQuery 連線,以及排解相關問題。
身為 BigQuery 管理員,您可以建立及管理用於連線至服務和外部資料來源的連線。BigQuery 分析師可透過這些連結,針對外部資料來源提交查詢,不必將資料移至 BigQuery 或複製資料。您可以建立下列類型的連線:
- Amazon S3 連線
- Apache Spark 連線
- Blob 儲存空間連線
- Cloud 資源連結:連線至 Cloud Storage 資料,並實作遠端函式
- Spanner 連線
- Cloud SQL 連線
- AlloyDB 連線
如要為專案建立預設連線,請參閱預設連線總覽。
事前準備
啟用 BigQuery Connection API。
請確認您可以查看專案中的服務帳戶清單。BigQuery 會建立並使用服務帳戶連結至外部資料來源。建立連線時,系統會為您建立由 Google Cloud代管的身分與存取權管理 (IAM) 服務帳戶。如要查看特定連線所附的服務帳戶,請查看連線詳細資料。
必要的角色
如要取得管理連線所需的權限,請管理員授予下列 IAM 角色:
-
查看連線詳細資料:
BigQuery 連線使用者 (
roles/bigquery.connectionUser
) 在資料集中 -
列出所有連線:
BigQuery 連線使用者 (
roles/bigquery.connectionUser
) 在資料集中 -
分享連線:
BigQuery 連線管理員 (
roles/bigquery.connectionAdmin
) 在連線中 -
編輯連線:
BigQuery 連線管理員 (
roles/bigquery.connectionAdmin
) 在連線上 -
刪除連線:
BigQuery 連線管理員 (
roles/bigquery.connectionAdmin
) 在連線中
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
如要瞭解建立及使用預設連線所需的角色,請參閱「必要角色和權限」。
這些預先定義的角色包含執行本文件中工作所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
- 查看連線詳細資料:
bigquery.connections.get
- 列出所有連線:
bigquery.connections.list
- 編輯及刪除連線:
bigquery.connections.update
- 分享連線:
bigquery.connections.setIamPolicy
列出所有連線
選取下列選項之一:
主控台
前往「BigQuery」頁面
連線會列在專案中,位於名為「External connections」的群組中。
在「Explorer」窗格中,依序點選「專案名稱」>「外部連線」,即可查看所有連線的清單。
bq
輸入 bq ls
指令並指定 --connection
旗標。您可以視需要指定 --project_id
和 --location
標記,藉此識別要列出的連線專案和位置。
bq ls --connection --project_id=PROJECT_ID --location=REGION
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案 IDREGION
:連線區域
API
請參閱 REST API 參考資料章節,使用 projects.locations.connections.list
方法。
Java
在嘗試這個範例之前,請先按照 BigQuery 快速入門:使用用戶端程式庫中的 Java 設定說明進行操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
查看連線詳細資料
建立連線後,您可以取得連線設定的相關資訊。這些設定包括您在建立移轉時提供的值。
選取下列選項之一:
主控台
前往「BigQuery」頁面
連線會列在專案中,位於名為「External connections」的群組中。
在「Explorer」窗格中,依序點選「專案名稱」>「外部連線」>「連線」。
bq
輸入 bq show
指令並指定 --connection
旗標。您可以選擇使用專案 ID 和連線區域來限定連線 ID。
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案 IDREGION
:連線區域CONNECTION_I
:連線 ID
API
請參閱 REST API 參考資料章節,使用 projects.locations.connections.get
方法。
Java
在嘗試這個範例之前,請先按照 BigQuery 快速入門:使用用戶端程式庫中的 Java 設定說明進行操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
與使用者分享連線
您可以授予下列角色,讓使用者查詢資料及管理連線:
roles/bigquery.connectionUser
:可讓使用者使用連線連結外部資料來源,並對這些資料來源執行查詢。roles/bigquery.connectionAdmin
:讓使用者管理連線。
如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱「預先定義的角色與權限」一文。
選取下列選項之一:
主控台
前往「BigQuery」頁面
連線會列在專案中,位於名為「External connections」的群組中。
在「Explorer」窗格中,依序點選「專案名稱」>「外部連線」>「連線」。
在「Details」窗格中,按一下「Share」,即可分享連線。接著,按照下列步驟操作:
在「Connection permissions」對話方塊中,新增或編輯主體,與其他主體共用連線。
按一下 [儲存]。
bq
您無法透過 bq 指令列工具共用連線。如要分享連線,請使用 Google Cloud 主控台或 BigQuery Connections API 方法。
API
請使用 BigQuery Connections REST API 參考資料部分的 projects.locations.connections.setIAM
方法,並提供 policy
資源的例項。
Java
在嘗試這個範例之前,請先按照 BigQuery 快速入門:使用用戶端程式庫中的 Java 設定說明進行操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
編輯連線
連線會使用建立連線的使用者憑證。如果您需要變更連線所附的使用者,可以更新使用者的憑證。當建立連線的使用者已不在您的機構時,這個方法十分實用。
您無法編輯連線的下列元素:
- 連線類型
- 連線 ID
- 位置
選取下列選項之一:
主控台
前往「BigQuery」頁面
連線會列在專案中,位於名為「External connections」的群組中。
在「Explorer」窗格中,依序點選「專案名稱」>「外部連線」>「連線」。
如要編輯詳細資料,請在「詳細資料」窗格中按一下
「編輯詳細資料」。接著,按照下列步驟操作:在「Edit connection」對話方塊中,編輯連線詳細資料,包括使用者憑證。
按一下「更新連線」。
bq
輸入 bq update
指令並提供連線標記 --connection
。必須提供完整的 connection_id
。
bq update --connection --connection_type='CLOUD_SQL' --properties='{"instanceId" : "INSTANCE", "database" : "DATABASE", "type" : "MYSQL" }' --connection_credential='{"username":"USERNAME", "password":"PASSWORD"}' PROJECT.REGION.CONNECTION_ID
更改下列內容:
INSTANCE
:Cloud SQL 執行個體DATABASE
:資料庫名稱USERNAME
:Cloud SQL 資料庫的使用者名稱PASSWORD
:Cloud SQL 資料庫的密碼PROJECT
: Google Cloud 專案 IDREGION
:連線區域CONNECTION_ID
:連線 ID
舉例來說,下列指令會更新 ID 為 federation-test
且連線 ID 為 test-mysql
的專案中的連線。
bq update --connection --connection_type='CLOUD_SQL' --properties='{"instanceId" : "federation-test:us-central1:new-mysql", "database" : "imdb2", "type" : "MYSQL" }' --connection_credential='{"username":"my_username", "password":"my_password"}' federation-test.us.test-mysql
API
請參閱 REST API 參考資料中的 projects.locations.connections.patch
方法,並提供 connection
的例項。
Java
在嘗試這個範例之前,請先按照 BigQuery 快速入門:使用用戶端程式庫中的 Java 設定說明進行操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
刪除連線
選取下列選項之一:
主控台
前往「BigQuery」頁面
連線會列在專案中,位於名為「External connections」的群組中。
在「Explorer」窗格中,依序點選「專案名稱」>「外部連線」>「連線」。
在「Details」窗格中,按一下
「Delete」,即可刪除連結。在「Delete connection?」對話方塊中輸入
delete
,確認刪除。點選「刪除」。
bq
輸入 bq rm
指令並提供連線旗標 --connection
。您必須提供完整的 connection_id
。
bq rm --connection PROJECT_ID.REGION.CONNECTION_ID
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案 IDREGION
:連線區域CONNECTION_ID
:連線 ID
API
請參閱 REST API 參考資料章節中的 projects.locations.connections.delete
方法。
Java
在嘗試這個範例之前,請先按照 BigQuery 快速入門:使用用戶端程式庫中的 Java 設定說明進行操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
後續步驟
- 瞭解如何使用遠端函式。
- 瞭解如何使用 Spark 預存程序。