購買及管理舊版運算單元承諾
透過 BigQuery Reservation API,您可以購買專屬運算單元 (稱為「承諾」)、建立運算單元集區 (稱為「預留項目」),以及將專案、資料夾和機構指派給這些預留項目。
容量使用承諾是指購買 BigQuery 運算容量,但有最短承諾使用期。使用版本建立預訂時,您可以選擇是否購買容量承諾,但這麼做可節省費用。
承諾是地區性資源。在某個區域或多區域購買的使用承諾,無法用於其他區域或多區域。使用承諾無法在區域之間移動,也無法在區域與多區域之間移動。
啟用 Reservations API
BigQuery Reservation API 與現有的 BigQuery API 不同,必須單獨啟用。詳情請參閱啟用及停用 API。
- API 名稱為「BigQuery Reservations API」
- BigQuery Reservation API 的端點為
bigqueryreservation.googleapis.com
。

購買運算單元
如要預留容量一段時間,可以購買容量承諾。這樣可享有折扣並節省費用。如要進一步瞭解具體費用,請參閱 BigQuery 定價。
所需權限
如要建立容量承諾,您需要下列身分與存取權管理 (IAM) 權限:
bigquery.capacityCommitments.create
,該管理專案會維護承諾使用合約的所有權。
下列預先定義的 IAM 角色都具備這項權限:
BigQuery Admin
BigQuery Resource Admin
如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱預先定義的角色與權限一文。
建立容量使用承諾
承諾是地區性資源。在某個地區或多地區購買的使用承諾無法用於其他地區或多地區。承諾無法在區域之間移動,也無法在區域和多區域之間移動。
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。
在導覽選單中,按一下「容量管理」。
按一下「建立承諾」。
在「設定」下方:
- 選取位置。
- 在「容量模型」部分,選取容量模型。
- 選取「承諾使用時間長度」,指定承諾方案。
如果您購買年約,請選取合約到期後要生效的續訂方案:
- 不續約,改為採用每月包量使用合約 (預設)。年約到期後,會自動轉換為月約。
- 每年續訂。年約到期後,系統會自動續約一年。
- 不續約,改為採用彈性運算單元方案。 年約到期後,會轉換為彈性配額方案。
詳情請參閱「預留配額承諾」。
輸入要購買的運算單元數量。
點選「下一步」。
查看預估的購買費用。
在「確認並提交」下方:
- 輸入「CONFIRM」確認購買。
- 按一下「購買」即可購買運算單元。
如要查看承諾使用合約,請按一下「查看運算單元使用承諾」。容量佈建完成後,所要求的容量使用承諾將會呈現綠色狀態。
首次購買容量時,系統會建立 default
保留項目。
SQL
如要建立容量承諾,請使用 CREATE CAPACITY
DDL 陳述式。
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
CREATE CAPACITY `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID` OPTIONS ( slot_count = NUMBER_OF_SLOTS, plan = 'PLAN_TYPE');
取代下列項目:
按一下「執行」
。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
bq
使用 bq mk
指令並加上 --capacity_commitment
旗標,即可購買位置。
bq mk \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --capacity_commitment=true \ --plan=PLAN_TYPE \ --slots=NUMBER_OF_SLOTS
更改下列內容:
查看容量使用承諾
所需權限
如要查看約定,您必須具備下列 Identity and Access Management (IAM) 權限:
bigquery.capacityCommitments.list
,該管理專案會維護承諾使用合約的所有權。
下列預先定義的 IAM 角色都具備這項權限:
BigQuery Admin
BigQuery Resource Admin
BigQuery Resource Editor
BigQuery Resource Viewer
BigQuery User
如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱預先定義的角色與權限一文。
依專案查看容量使用承諾
如要依專案查看容量承諾,請按照下列步驟操作:
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。
在導覽選單中,按一下「容量管理」。
按一下「運算單元使用承諾」分頁標籤。容量使用承諾會列在「承諾」下方的表格中。
SQL
如要查看管理專案的承諾,請查詢 INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT
檢視區塊。
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
SELECT capacity_commitment_id FROM `region-LOCATION`.INFORMATION_SCHEMA.CAPACITY_COMMITMENTS_BY_PROJECT WHERE project_id = 'ADMIN_PROJECT_ID' AND slot_count = 100;
取代下列項目:
按一下「執行」
。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
bq
使用 bq ls
指令,並加上 --capacity_commitment
旗標,列出管理專案的承諾。
bq ls \ --capacity_commitment=true \ --location=LOCATION \ --project_id=ADMIN_PROJECT_ID
更改下列內容:
可更新容量使用承諾
您可以對容量使用承諾進行下列更新:
- 續約現有承諾使用合約。
- 將承諾轉換為使用期限較長的使用承諾方案。
- 將承諾使用合約分割為兩個承諾使用合約。
- 將兩個承諾使用合約合併為一個。
所需權限
如要更新容量承諾,您需要下列 Identity and Access Management (IAM) 權限:
bigquery.capacityCommitments.update
,該管理專案會維護承諾使用合約的所有權。
下列預先定義的 IAM 角色都具備這項權限:
BigQuery Admin
BigQuery Resource Admin
如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱預先定義的角色與權限一文。
續訂承諾使用合約
年約方案有續約計畫,您可以在建立或轉換為年約方案時指定。您可以在合約到期前隨時變更年約續訂方案。
主控台
如要變更年約的續約方案,請按照下列步驟操作:
前往 Google Cloud 控制台的「BigQuery」頁面。
在導覽選單中,按一下「容量管理」。
按一下 [Slot commitments] (運算單元使用承諾) 分頁標籤。
找出要編輯的約定。
依序點按
「動作」,然後選取「編輯續約方案」選項。選取新的續訂方案。
bq
如要變更年約方案的續約選項,請使用 bq update
指令,並搭配 --capacity_commitment
旗標和 --renewal_plan
旗標。
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --renewal_plan=PLAN_TYPE \ --capacity_commitment=true \ COMMITMENT_ID
更改下列內容:
ADMIN_PROJECT_ID
:管理專案的專案 ID,該專案將保留這項承諾的擁有權LOCATION
:承諾的位置PLAN_TYPE
:方案類型,例如FLEX
、MONTHLY
或ANNUAL
。COMMITMENT_ID
:承諾 ID如要取得 ID,請參閱「查看已購買的承諾使用合約」。
將承諾轉換為較長期限
您可以隨時將使用承諾轉換為時間較長的使用承諾類型:
- 您可以將彈性時段承諾轉換為按月或按年承諾。
- 您可以將月約方案轉換為年約方案。
更新承諾後,系統會立即按照新方案的費率收費,並重設結束日期。
如要轉換約定,請將 bq update
指令搭配 --plan
旗標使用。
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --plan=PLAN_TYPE \ --renewal_plan=RENEWAL_PLAN \ --capacity_commitment=true \ COMMITMENT_ID
更改下列內容:
ADMIN_PROJECT_ID
:專案 IDLOCATION
:承諾的位置PLAN_TYPE
:方案類型,例如FLEX
、MONTHLY
或ANNUAL
。RENEWAL_PLAN
:續約方案這項規定僅適用於
PLAN_TYPE
為ANNUAL
的情況。如果PLAN_TYPE
為MONTHLY
,請省略這個標記。COMMITMENT_ID
:承諾 ID如要取得 ID,請參閱「查看已購買的承諾使用合約」。
拆分承諾使用合約
您可以將承諾使用合約分割為兩份。如果您想續訂部分約期,這項功能就非常實用。舉例來說,如果您有 1,000 個運算單元的年約,可以將 300 個運算單元分割到新的承諾使用合約,原合約則保留 700 個運算單元。這樣一來,您就能以年費率續訂 700 個運算單元,並在結束日期後將 300 個運算單元轉換為彈性運算單元。
分割承諾時,新承諾會採用與原始承諾相同的方案和承諾結束日期。
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。
在導覽選單中,按一下「容量管理」。
按一下 [Slot commitments] (運算單元使用承諾) 分頁標籤。
選取要拆分的約定。
按一下「分割」。
在「Split commitment」(拆分承諾) 頁面中,使用「Configure split」(設定拆分) 滑桿,以 100 個運算單元為單位,選取要拆分到每個部分的運算單元數量。
按一下「Split」(分割) 即可分割承諾。新承諾使用合約會列在「運算單元使用承諾」分頁中。
bq
如要分割約期,請使用 bq update
指令。
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --split \ --slots=SLOTS_TO_SPLIT \ --capacity_commitment=true \ COMMITMENT_ID
更改下列內容:
ADMIN_PROJECT_ID
:專案 IDLOCATION
:承諾的位置SLOTS_TO_SPLIT
:要從原始承諾使用合約分割到新承諾使用合約的運算單元數量COMMITMENT_ID
:承諾 ID如要取得 ID,請參閱「查看已購買的承諾使用合約」。
合併兩個承諾使用合約
您可以將多個約期合併為一個約期。合併的承諾使用合約必須屬於相同類型 (FLEX
、MONTHLY
、ANNUAL
或 THREE_YEAR
)。合併後承諾使用合約的結束日期,是原始承諾使用合約的最晚結束日期。如果任何承諾使用合約的結束日期較早,系統會將這些合約的結束日期延長至較晚的日期,並按比例收取這些時段的費用。
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。
在導覽選單中,按一下「容量管理」。
按一下 [Slot commitments] (運算單元使用承諾) 分頁標籤。
選取要合併的承諾使用合約。
按一下 [Merge] (合併)。
在「合併約期」頁面中,查看合併詳細資料,然後按一下「合併」。新的合併承諾使用合約會列在「運算單元承諾使用合約」分頁中。
bq
如要將兩項約定合併為一項,請使用 bq update
指令:
bq update \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --merge=true \ --capacity_commitment=true \ COMMITMENT1,COMMITMENT2
更改下列內容:
ADMIN_PROJECT_ID
:專案 IDLOCATION
:承諾的位置COMMITMENT1
:要合併的第一個承諾COMMITMENT2
:要合併的第二個承諾
刪除承諾使用合約
如果容量使用承諾的結束日期已過,即可刪除。承諾結束日期會顯示在 Google Cloud 控制台。 刪除承諾前,請先確認是否有足夠的未分配運算單元。如果沒有的話,您必須減少保留項目中的運算單元數量,或完全移除保留項目。
所需權限
如要刪除容量承諾,您需要下列身分與存取權管理 (IAM) 權限:
bigquery.capacityCommitments.delete
,該管理專案會維護承諾使用合約的所有權。
下列預先定義的 IAM 角色都具備這項權限:
BigQuery Admin
BigQuery Resource Admin
如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱預先定義的角色與權限一文。
刪除容量使用承諾
主控台
如要刪除容量使用承諾,請完成下列步驟:
前往 Google Cloud 控制台的「BigQuery」頁面。
在導覽選單中,按一下「容量管理」。
按一下 [Slot commitments] (運算單元使用承諾) 分頁標籤。
在「Location」(位置) 下拉式清單中,選取適當的位置。
找出要刪除的承諾。
展開「動作」
選項。點選「刪除」。
輸入「REMOVE」,然後按一下「Proceed」(繼續)。
SQL
如要刪除容量使用承諾,請使用 DROP CAPACITY
DDL 陳述式。
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
DROP CAPACITY `ADMIN_PROJECT_ID.region-LOCATION.COMMITMENT_ID`;
取代下列項目:
ADMIN_PROJECT_ID
:擁有承諾產品的專案LOCATION
:承諾的位置COMMITMENT_ID
:承諾 ID如要取得 ID,請參閱「查看已購買的承諾使用合約」。
按一下「執行」
。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
bq
如要刪除容量承諾,請使用 bq rm
指令並加上 --capacity_commitment
標記:
bq rm \ --project_id=ADMIN_PROJECT_ID \ --location=LOCATION \ --capacity_commitment=true \ COMMITMENT_ID
更改下列內容:
ADMIN_PROJECT_ID
:專案 IDLOCATION
:承諾的位置COMMITMENT_ID
:要刪除的承諾 ID如要取得 ID,請參閱「查看已購買的承諾使用合約」。
排解容量承諾問題
使用 BigQuery Reservations 遇到問題時,請參考本節的疑難排解步驟,或許有所助益。
購買的運算單元仍在處理中
運算單元是依據可用容量而定。如果您購買了運算單元承諾使用合約並透過 BigQuery 進行分配,「狀態」欄會顯示勾號。如果 BigQuery 無法立即分配要求的運算單元,則「狀態」欄會持續顯示待處理狀態。您可能必須等待數小時,直到有可用的運算單元釋出。如需提早取得空位,請嘗試下列做法:
- 刪除待處理的承諾使用合約。
- 購買運算單元數量較少的新承諾使用合約。視容量而定,較小的承諾可能會立即生效。
- 以個別承諾購買剩餘的運算單元。這些運算單元可能會在「狀態」欄中顯示為待處理,但通常會在幾小時內啟用。
- 選用:如果兩項承諾合約都適用,只要您為兩者購買相同方案,即可合併為單一承諾合約。
如果建立或完成時段承諾失敗或耗時過長,請考慮暫時使用隨選價格。使用這項解決方案時,您可能需要在未指派給任何保留項目的其他專案中執行重要查詢,或是完全移除專案指派作業。