使用舊版運算單元保留功能
透過 BigQuery Reservation API,您可以購買專屬運算單元 (稱為「承諾」)、建立運算單元集區 (稱為「預留項目」),以及將專案、資料夾和機構指派給這些預留項目。
保留項目可讓您為工作負載指派專屬的運算單元數量。舉例來說,您可能不希望實際工作環境工作負載與測試工作負載爭奪運算單元。您可以建立名為 prod
的預留項目,並將生產工作負載指派給這個預留項目。詳情請參閱「預留項目」。
建立預留項目
所需權限
如要建立預留項目,您必須具備下列身分與存取權管理 (IAM) 權限:
bigquery.reservations.create
,該管理專案會維護承諾使用合約的所有權。
下列預先定義的 IAM 角色都具備這項權限:
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱預先定義的角色與權限一文。
使用專屬運算單元建立預留項目
選取下列選項之一:
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。
在導覽選單中,按一下「容量管理」。
按一下「建立預留項目」。
在「Reservation name」(預留項目名稱) 欄位中,輸入預留項目的名稱。
在「位置」下拉式清單中,選取所需位置。
在「容量模型」部分,選取容量模型。
如果選取「固定費率」選項,請在「基準運算單元」下方,輸入預留項目的運算單元數量。
- 在「預留項目大小選取器」清單中,選取預留項目大小上限。
選用:在「基準運算單元」欄位中,輸入保留項目的基準運算單元數量。如要只使用指定的運算單元容量,請點按「忽略閒置運算單元」切換鈕。
可用的自動調度資源運算單元數量,取決於從預留項目大小上限值減去基準運算單元值。舉例來說,如果您建立的預留項目有 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 位置,版本選項會限制為 Enterprise 版。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 位置,版本選項僅限 Enterprise 版。NUMBER_OF_BASELINE_SLOTS
:要分配給預留項目的基準運算單元數量RESERVATION_NAME
:預留項目名稱EDITION
:預訂的發行版本。將預留項目指派給版本時,功能和價格會有所變更。詳情請參閱 BigQuery 版本簡介。NUMBER_OF_AUTOSCALING_SLOTS
:指派給預留項目的自動調度運算單元數量。這等於預留項目大小上限減去基準運算單元數量。
如要瞭解 --ignore_idle_slots
旗標,請參閱「閒置運算單元」。預設值為 false
。
Python
更新預訂
你可以對預訂項目進行下列更新:
- 新增或移除運算單元,即可變更保留項目大小。
- 設定此預留項目中的查詢是否要使用閒置運算單元。
- 變更分配給預留項目的基準或自動調度運算單元數量。
所需權限
如要更新預留項目,您需要下列身分與存取權管理 (IAM) 權限:
bigquery.reservations.update
,該管理專案會維護承諾使用合約的所有權。
下列預先定義的 IAM 角色都具備這項權限:
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱預先定義的角色與權限一文。
變更預留項目大小
你可以為現有預約新增或移除時段。
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。
在導覽選單中,按一下「容量管理」。
按一下「預訂」分頁標籤。
找出要更新的預訂。
展開「動作」
選項。按一下 [編輯]。
在「預留項目大小上限選取器」對話方塊中,輸入預留項目大小上限。
在「Baseline slots」(基準運算單元) 欄位中,輸入基準運算單元數量。
按一下 [儲存]。
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
請使用 bq ls
指令,並加上 --reservation
旗標:
bq ls --reservation \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION
更改下列內容:
ignoreIdleSlots
欄位包含設定。
刪除保留項目
刪除預留項目後,目前使用該預留項目運算單元執行的任何工作都會失敗。為避免發生錯誤,請先讓執行中的工作完成,再刪除預訂。
所需權限
如要刪除預留項目,您需要下列身分與存取權管理 (IAM) 權限:
bigquery.reservations.delete
,該管理專案會維護承諾使用合約的所有權。
下列預先定義的 IAM 角色都具備這項權限:
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱預先定義的角色與權限一文。
刪除預留項目
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。
在導覽選單中,按一下「容量管理」。
按一下「預訂」分頁標籤。
找出要刪除的預訂。
展開「動作」
選項。點選「刪除」。
點選「Delete reservation」(刪除預留項目) 對話方塊中的「Delete」(刪除)。
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 Reservation API 支援 VPC Service Controls。如要將 BigQuery Reservation API 與 VPC Service Controls 整合,請按照「建立服務範圍」一文中的操作說明,將 BigQuery Reservation API 新增至受保護的服務。
服務範圍可保護範圍內管理專案的預留項目、承諾和指派項目存取權。建立指派項目時,VPC Service Controls 會保護管理專案和受指派者專案、資料夾和機構。