默认连接概览
为简化工作流,您可以在 BigQuery 中配置默认的 Cloud 资源连接,以便创建表和模型。
BigQuery 支持在以下表和模型中使用默认连接:
管理员为项目配置默认的 Cloud 资源连接。
如果您在项目中创建表和模型,则可以通过在以下 SQL 子句中指定 DEFAULT
来选择管理员配置的默认连接:
CREATE TABLE
语句的WITH CONNECTION
子句CREATE MODEL
语句的REMOTE WITH CONNECTION
子句。
如果您不是管理员,则无法修改默认连接的权限或其他配置。默认连接会自动解析为项目配置中引用的现有连接,从而为该连接授予所需的权限和资源。
准备工作
Enable the BigQuery Connection API.
所需的角色和权限
如需了解在 BigQuery 中配置和使用默认连接所需的角色和权限,请参阅管理连接。
使用 CONNECTION DEFAULT
时的权限配置
根据您使用默认连接创建的表或模型的类型,Google Cloud 会自动更新分配给该连接的服务账号的角色。系统会自动向用于连接这些表和模型的服务账号授予以下角色:
表或模型的类型 | 远程资源 | 分配给关联的服务账号的角色 |
---|---|---|
Cloud Storage BigLake 表 | Cloud Storage | roles/storage.legacyBucketReader roles/storage.legacyObjectReader |
对象表 | Cloud Storage | roles/storage.legacyBucketReader roles/storage.legacyObjectReader |
适用于 Iceberg 的 BigQuery 表 | Cloud Storage | roles/storage.legacyBucketWriter roles/storage.legacyObjectOwner |
BigQuery ML 远程模型优于 Vertex AI 模型 | Google 自有模型 | roles/aiplatform.user |
可从 Model Garden 部署到端点 | ||
用户模型 | ||
经过微调的模型 | roles/aiplatform.serviceAgent |
|
基于 Cloud AI 服务的 BigQuery ML 远程模型 | 文档处理器 | roles/documentai.apiUser |
语音识别器 | roles/speech.serviceAgent |
|
Cloud NLP | roles/serviceusage.serviceUsageConsumer |
|
Cloud Vision | roles/serviceusage.serviceUsageConsumer |
|
Cloud Translation | roles/cloudtranslate.user |
为项目配置默认连接
作为管理员,为项目配置默认的 Cloud 资源连接:
如需创建和配置默认的 Cloud 资源连接,请使用
ALTER PROJECT SET OPTIONS
DDL 语句。以下示例为项目配置了默认连接:
ALTER PROJECT PROJECT_ID SET OPTIONS ( `region-REGION.default_cloud_resource_connection_id` = CONNECTION_ID);
替换以下内容:
PROJECT_ID
:您要设置默认连接的项目的 ID。REGION
:连接所在的区域。CONNECTION_ID
:要用作表和模型的默认连接的 ID 或名称。请仅指定连接 ID 或名称,并排除附加到名称或 ID 的项目 ID 和区域前缀。
如需详细了解如何为项目配置默认连接,请参阅管理默认配置。
使用 CONNECTION DEFAULT
创建表格
以下示例展示了如何在 BigQuery 中创建指定 WITH CONNECTION
DEFAULT
的表。
示例:创建 Cloud Storage BigLake 表
以下 SQL 表达式会使用默认连接创建 Cloud Storage BigLake 表:
CREATE EXTERNAL TABLE PROJECT_ID.DATASET.EXTERNAL_TABLE_NAME
WITH CONNECTION DEFAULT
OPTIONS (
format = 'TABLE_FORMAT',
uris = ['BUCKET_PATH']);
示例:使用默认连接创建对象表
以下 SQL 表达式会使用默认连接创建对象表:
CREATE EXTERNAL TABLE PROJECT_ID.DATASET.EXTERNAL_TABLE_NAME
WITH CONNECTION DEFAULT
OPTIONS (
object_metadata = 'SIMPLE'
uris = ['BUCKET_PATH']);
示例:使用默认连接为 Iceberg 创建 BigQuery 表
以下 SQL 表达式使用默认连接创建适用于 Iceberg 的 BigQuery 表:
CREATE TABLE `myproject.tpch_clustered.nation` (
n_nationkey integer,
n_name string,
n_regionkey integer,
n_comment string)
CLUSTER BY n_nationkey
WITH CONNECTION DEFAULT
OPTIONS (
file_format = 'PARQUET',
table_format = 'ICEBERG',
storage_uri = 'gs://mybucket/warehouse/nation');
使用 REMOTE WITH CONNECTION DEFAULT
创建模型
以下示例展示了如何在 BigQuery 中创建指定 REMOTE WITH
CONNECTION DEFAULT
的模型。
示例:基于 Vertex AI 模型创建远程模型
以下 SQL 表达式会使用默认连接创建远程模型:
CREATE OR REPLACE MODEL `mydataset.flash_model`
REMOTE WITH CONNECTION DEFAULT
OPTIONS(ENDPOINT = 'gemini-1.5-flash-001');
示例:基于 Cloud AI 服务创建远程模型
以下 SQL 表达式会使用默认连接创建远程模型服务:
CREATE MODEL `project_id.mydataset.mymodel`
REMOTE WITH CONNECTION DEFAULT
OPTIONS(REMOTE_SERVICE_TYPE = 'CLOUD_AI_VISION_V1')
示例:使用 HTTPS 端点创建远程模型
以下 SQL 表达式会创建具有 HTTPS 端点的远程模型和默认连接:
CREATE MODEL `project_id.mydataset.mymodel`
INPUT(f1 INT64, f2 FLOAT64, f3 STRING, f4 ARRAY)
OUTPUT(out1 INT64, out2 INT64)
REMOTE WITH CONNECTION DEFAULT
OPTIONS(ENDPOINT = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/endpoints/1234')
后续步骤
- 了解 BigQuery 中的默认配置。