使用旧版槽预留
通过 BigQuery Reservation API,您可以购买专用槽(称为承诺)、创建槽池(称为预留),以及将项目、文件夹和组织分配给这些预留。
通过预留,您可以为工作负载分配专用数量的槽。例如,您可能不希望提供的工作负载与槽的测试工作负载竞争。您可以创建一个名为 prod
的预留,并将生产工作负载分配给此预留。如需了解详情,请参阅预留。
创建预留
所需权限
如需创建预留,您需要以下 Identity and Access Management (IAM) 权限:
- 对维持承诺所有权的管理项目拥有
bigquery.reservations.create
权限。
以下每个预定义的 IAM 角色都具有此权限:
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
如需详细了解 BigQuery 中的 IAM 角色,请参阅预定义的角色和权限。
创建包含专用槽的预留
从下列选项中选择一项:
控制台
在 Google Cloud 控制台中,转到 BigQuery 页面。
在导航面板中,转到容量管理部分。
点击创建预留。
在预留名称字段中,输入预留的名称。
在位置下拉列表中,选择位置。
在容量模型部分中,选择容量模型。
如果您选择固定费率选项,请在基准槽下,输入预留的槽数。
- 在预留大小上限选择器列表中,选择预留大小上限。
可选:在基准槽数字段中,输入预留的基准槽数。如果仅使用指定的槽容量,请点击忽略空闲槽切换开关。
可用自动扩缩槽的数量为预留上限大小值减去基准槽数值。例如,如果您创建了一个包含 100 个基准槽且预留大小上限为 400 的预留,则该预留包含 300 个自动扩缩槽。如需详细了解基准槽,请参阅将预留与基准槽和自动扩缩槽搭配使用。
要停用空闲槽共享,点击忽略空闲槽切换开关。
槽明细显示在费用估算表中。预留摘要显示在容量摘要表中。
点击保存。
新预留会显示在预留标签页中。
SQL
如需创建预留,请使用 CREATE RESERVATION
DDL 语句。
在 Google Cloud 控制台中,转到 BigQuery 页面。
在查询编辑器中,输入以下语句:
CREATE RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` OPTIONS ( slot_capacity = NUMBER_OF_BASELINE_SLOTS, );
请替换以下内容:
ADMIN_PROJECT_ID
:拥有预留资源的管理项目的 IDLOCATION
:预留的位置。如果您选择 BigQuery Omni 位置,则您的版本选项仅限于企业版。RESERVATION_NAME
:预留的名称该字段必须以小写字母或数字开头和结尾,并且只能包含小写字母、数字和短划线。
NUMBER_OF_BASELINE_SLOTS
:要分配给预留的基准槽数。您不能在同一预留中设置slot_capacity
选项和edition
选项。EDITION
:预留的版本。为版本分配预留会改变功能和价格。如需了解详情,请参阅 BigQuery 版本简介。NUMBER_OF_AUTOSCALING_SLOTS
:分配给预留的自动扩缩槽数。此值等于预留上限大小减去基准槽数。
点击
运行。
如需详细了解如何运行查询,请参阅运行交互式查询。
bq
如需创建预留,请将 bq mk
命令与 --reservation
标志结合使用:
bq mk \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --reservation \ --slots=NUMBER_OF_BASELINE_SLOTS \ --ignore_idle_slots=false \ RESERVATION_NAME
请替换以下内容:
ADMIN_PROJECT_ID
:项目 IDLOCATION
:预留的位置。如果您选择 BigQuery Omni 位置,则您的版本选项仅限于企业版。NUMBER_OF_BASELINE_SLOTS
:要分配给预留的基准槽数RESERVATION_NAME
:预留的名称EDITION
:预留的版本。为版本分配预留会改变功能和价格。如需了解详情,请参阅 BigQuery 版本简介。NUMBER_OF_AUTOSCALING_SLOTS
:分配给预留的自动扩缩槽数。此值等于预留上限大小减去基准槽数。
如需了解 --ignore_idle_slots
标志,请参阅空闲槽。默认值为 false
。
Python
更新预留
您可以对预留进行以下更新:
- 添加或移除槽来更改预留大小。
- 配置此预留中的查询是否使用空闲槽。
- 更改分配给预留的基准或自动扩缩槽数。
所需权限
如需更新预留,您需要以下 Identity and Access Management (IAM) 权限:
- 对维持承诺所有权的管理项目拥有
bigquery.reservations.update
权限。
以下每个预定义的 IAM 角色都具有此权限:
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
如需详细了解 BigQuery 中的 IAM 角色,请参阅预定义的角色和权限。
更改预留大小
您可以在现有预留中添加或移除槽。
控制台
在 Google Cloud 控制台中,转到 BigQuery 页面。
在导航面板中,转到容量管理部分。
点击预留标签页。
找到要更新的预留。
展开
操作选项。点击修改。
在预留大小上限选择器对话框中,输入预留大小上限。
在基准槽字段中,输入基准槽数。
点击保存。
SQL
如需更改预留的大小,请使用 ALTER RESERVATION SET OPTIONS
数据定义语言 (DDL) 语句。
在 Google Cloud 控制台中,转到 BigQuery 页面。
在查询编辑器中,输入以下语句:
ALTER RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` SET OPTIONS ( slot_capacity = NUMBER_OF_BASELINE_SLOTS, );
请替换以下内容:
点击
运行。
如需详细了解如何运行查询,请参阅运行交互式查询。
bq
如需更新预留的大小,请将 bq update
命令与 --reservation
标志结合使用:
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --slots=NUMBER_OF_BASELINE_SLOTS \ --reservation RESERVATION_NAME
请替换以下内容:
ADMIN_PROJECT_ID
:项目 IDLOCATION
:预留的位置NUMBER_OF_BASELINE_SLOTS
:要分配给预留的基准槽数RESERVATION_NAME
:预留的名称
Python
配置查询是否使用空闲槽
--ignore_idle_slots
标志控制某一个预留中运行的查询是否可以使用其他预留中的空闲槽。如需了解详情,请参阅空闲槽。您可以在现有预留上更新此配置。
如需更新预留,请将 bq update
命令与 --reservation
标志结合使用。以下示例将 --ignore_idle_slots
设置为 true
,这意味着预留将仅使用分配给该预留的槽。
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --ignore_idle_slots=true \ --reservation RESERVATION_NAME
请替换以下内容:
ADMIN_PROJECT_ID
:项目 IDLOCATION
:预留的位置RESERVATION_NAME
:预留的名称
列出空闲槽配置
如需列出预留的空闲槽设置,请执行以下操作:
SQL
查询 INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT
视图的 ignore_idle_slots
列。
在 Google Cloud 控制台中,转到 BigQuery 页面。
在查询编辑器中,输入以下语句:
SELECT reservation_name, ignore_idle_slots FROM `ADMIN_PROJECT_ID.region-LOCATION`.INFORMATION_SCHEMA.RESERVATIONS_BY_PROJECT;
请替换以下内容:
点击
运行。
如需详细了解如何运行查询,请参阅运行交互式查询。
bq
使用带有 --reservation
标志的 bq ls
命令:
bq ls --reservation \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION
请替换以下内容:
ignoreIdleSlots
字段包含配置设置。
删除预留
删除预留时,当前正在使用该预留中的槽执行的任何作业都将失败。为防止错误,请允许正在运行的作业完成,然后再删除预留。
所需权限
如需删除预留,您需要以下 Identity and Access Management (IAM) 权限:
- 对维持承诺所有权的管理项目拥有
bigquery.reservations.delete
权限。
以下每个预定义的 IAM 角色都具有此权限:
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
如需详细了解 BigQuery 中的 IAM 角色,请参阅预定义的角色和权限。
删除预留
控制台
在 Google Cloud 控制台中,转到 BigQuery 页面。
在导航面板中,转到容量管理部分。
点击预留标签页。
找到要删除的预留。
展开
操作选项。点击删除。
在删除预留对话框中,点击删除。
SQL
如需删除预留,请使用 DROP RESERVATION
DDL 语句。
在 Google Cloud 控制台中,转到 BigQuery 页面。
在查询编辑器中,输入以下语句:
DROP RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`;
请替换以下内容:
点击
运行。
如需详细了解如何运行查询,请参阅运行交互式查询。
bq
如需删除预留,请将 bq rm
命令与 --reservation
标志结合使用:
bq rm \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --reservation RESERVATION_NAME
请替换以下内容:
Python
将 BigQuery Reservation API 添加到 VPC Service Controls
BigQuery Reservations API 支持 VPC Service Controls。 如需将 BigQuery Reservation API 与 VPC Service Controls 集成,请按照创建服务边界中的说明操作,并将 BigQuery Reservation API 添加到受保护的服务。
服务边界可保护对边界内指定的管理项目中的预留、承诺和分配的访问权限。创建分配时,VPC Service Controls 会保护管理项目和分配对象的项目、文件夹和组织。