瞭解預留項目

本頁面說明如何使用預留運算單元管理 BigQuery 工作負載。

運算單元保留項目

在 BigQuery 中,運算單元會分配到稱為「預留項目」的集區。預留項目可讓您以適合貴組織的方式管理容量及隔離工作負載。舉例來說,您可以為正式環境工作負載建立名為 prod 的預留項目,並為測試建立名為 test 的獨立預留項目,這樣測試工作就不會與正式環境工作爭奪資源。或者,您也可以為機構中的不同部門建立預訂,以分配運算費用。

管理員也可以根據指派給預留項目的工作負載,設定運算單元容量。舉例來說,如果您有正式環境等級、具時效性的工作負載,請建立具有足夠基準運算單元的預留項目。基準運算單元一律可用,可確保預留項目一律有足夠的容量。不過,如果使用自動調度資源預留項目,預留項目中的運算資源不一定會預留。使用自動調整資源配置預留項目時,系統會根據需求自動調整資源配置容量。自動調度資源預留項目預設以秒計費,至少會產生一分鐘的基本費用。您可以選擇在預留項目層級啟用 BigQuery 流暢擴充功能,以按秒計費,且沒有最短時間限制。此外,閒置運算單元可供多個預留項目共用。

預留項目指派作業

如要使用預留項目中分配到的運算單元,您必須將其指派給一或多個專案、資料夾或組織。專案中的工作執行時,會使用指派預留項目的運算單元。資源可以從Google Cloud 資源階層中的父項繼承指派項目。如果專案未指派給預留項目,就會沿用父項資料夾或機構的指派作業 (如有)。

專案會使用資源階層中最明確的單一預留項目。資料夾指派作業會覆寫組織指派作業,專案指派作業則會覆寫資料夾指派作業。

如果專案沒有指派或繼承的預留項目,則工作會採用隨選計價模式。如要進一步瞭解如何整理 BigQuery 資源,請參閱「資源階層結構簡介」。

資源可以指派給 None,代表沒有指派項目。指派給 None 的專案一律採用隨選計價方案。None 指派作業的常見用途是將機構指派給預留項目,然後使用 None 選擇不將特定專案或資料夾指派給該預留項目。詳情請參閱「將專案指派給None」。

建立指派作業時,您必須指定該指派作業的工作類型:

  • QUERY:將此預留項目用於非持續查詢作業,包括 SQL、DDL、DML 和 BigQuery ML (內建模型) 查詢。

  • AUTOMATIC_MATERIALIZED_VIEW_REFRESH:將這個預留項目用於自動具體化檢視表重新整理工作。

  • BACKGROUND_CHANGE_DATA_CAPTURE:選擇使用自己的預留項目來執行 BigQuery CDC 擷取背景工作時,請使用這個預留項目。Standard 版本不提供BACKGROUND_CHANGE_DATA_CAPTURE預留項目。

  • BACKGROUND_COLUMN_METADATA_INDEX:選擇使用自己的預留項目執行 BigLake 中繼資料快取背景工作時,請使用這個預留項目。使用 Datastream 的背景套用作業,將來源資料庫複製到 BigQuery 時,也請使用這項預留項目。BACKGROUND_COLUMN_METADATA_INDEX預訂功能不適用於 Standard 版。

  • BACKGROUND_SEARCH_INDEX_REFRESH:選擇使用自己的預留項目執行 BigQuery 搜尋索引管理背景工作時,請使用這個預留項目。Standard 版本不提供BACKGROUND_SEARCH_INDEX_REFRESH預留項目。

  • BACKGROUND:選擇使用自己的預留位置,透過 Datastream 的背景套用作業將來源資料庫複製到 BigQuery 時,請使用這個預留位置。如果沒有這些工作類型的更具體預留項目,系統也會將此預留項目用於 BACKGROUND_CHANGE_DATA_CAPTURE、BACKGROUND_COLUMN_METADATA_INDEX 和 BACKGROUND_SEARCH_INDEX_REFRESH 所述的工作。Standard 版不支援 BACKGROUND 預訂。

  • CONTINUOUS:將這個預留項目用於持續查詢工作。

  • ML_EXTERNAL:將此預留項目用於使用 BigQuery 外部服務的 BigQuery ML 查詢。CREATE MODEL詳情請參閱「將時段指派給 BigQuery ML 工作負載」。標準版不提供 ML_EXTERNAL 預訂功能。

  • PIPELINE:將這項預留項目用於載入和擷取工作。

    根據預設,載入和擷取工作為免費,並使用共用的運算單元集區。BigQuery 不保證這個共用集區的容量可用性,也不保證您看到的處理量。如果您要載入大量資料,工作可能會等待運算單元釋出。

    將載入和擷取工作指派給預留項目後,這些工作就無法再存取免費集區。請監控資源使用率和工作,確保預留項目有足夠的容量,可在所需的工作時間內完成。

您無法將個別運算單元分配給特定作業。BigQuery 排程器會使用預留項目處理作業的運算單元分配作業。如要進一步瞭解如何使用運算單元,請參閱 BigQuery 中的公平排程。

彈性指派預留項目

BigQuery 可讓您指定查詢在執行階段應使用的預留項目。這樣一來,您就能進一步控管資源分配,避免建立不必要的專案。您可以在執行階段使用 CLI、UI、SQL 或 API 指定預留項目,覆寫專案、資料夾或組織的預設預留項目指派。指派的預留項目必須與您執行的查詢位於相同區域。所有版本都支援這些作業。

您必須有預訂的存取權,才能在執行查詢時使用預訂。

如果預設指派的預留項目版本為 Enterprise Plus,則只能由 Enterprise Plus 預留項目覆寫。

如要彈性指派預留項目,請執行互動式查詢並指定預留項目。

結合預留項目與隨選計費

您可以在某個區域使用依運算能力計費模式,在另一個區域使用隨選模式。根據預設,所有專案都會採用隨選計費。在區域內,您可以將專案、資料夾或機構指派給預留項目,選擇以容量計費。舉例來說,如果您在美國多區域購買配額承諾,並將機構指派給預設預留位置,機構在美國多區域就會採用以容量為準的計費方式,但在所有其他區域仍會採用隨選計費方式。

在區域內,您可以明確將專案指派給預留項目,藉此結合依運算能力計費和隨選計費模式。未指派預留項目的專案會繼續採用隨選計費模式。您也可以指派預留項目 ID none,明確指派專案使用隨選計費模式。如果您將資料夾或機構指派給預訂項目,但希望該資料夾或機構中的部分專案採用隨選計費,這項功能就非常實用。詳情請參閱「將專案指派給『無』」。

採用隨選計費模式的專案,其容量與承諾使用容量分開計算。這些專案不會影響已承諾容量的可用性。如果您查詢串流緩衝區中的資料,系統不會針對從串流緩衝區處理的位元組,向隨選工作收取費用,但預留項目中執行的工作會使用運算單元處理這些位元組。

指定管理專案

建立承諾和預留項目時,這些項目會與 Google Cloud 專案建立關聯。 這個專案會管理 BigQuery 預留項目資源,也是這些資源的主要計費來源。這個專案不一定要與存放 BigQuery 工作或資料集的專案相同。

建議您為預留資源建立專屬專案。這項專案稱為「管理」專案,因為它會集中管理承諾使用合約的計費和管理作業。為這項專案提供描述性名稱,例如 bq-COMPANY_NAME-admin。然後建立一或多個獨立專案,用於存放 BigQuery 工作。

只有與管理專案位於相同機構資源的專案,才能指派給保留項目。如果管理專案不屬於任何機構,則只有該專案可以使用配額。

系統會針對管理專案收取承諾使用運算單元的費用。使用運算單元的專案會收取儲存空間費用,但不會收取運算單元費用。您可以購買多種方案 (例如年約和三年約),並將運算單元放入同一個管理專案。

建議您限制管理專案的數量。這有助於簡化帳單管理和運算單元分配作業。建議您盡可能為貴組織的所有預留項目建立一個管理專案。複雜的機構可能需要額外的管理專案,才能符合管理或帳單需求。

使用多個管理專案

在某些情況下,您可能需要建立多個管理專案:

  • 將多個預留項目和承諾使用合約的費用,分到不同的組織單位。
  • 將一或多個運算單元承諾使用合約對應至不同的預留項目組合。

不同管理專案的預留項目不會共用閒置運算單元處理量。

在 BigQuery Google Cloud 控制台的「工作負載管理」頁面中,您只能查看所選管理專案的預留項目和承諾。

專案上限和排程政策

如要尋求支援或針對這項功能提供意見回饋,請傳送電子郵件至 bigquery-wlm-feedback@google.com。

專案上限 (也稱為排程政策) 可讓您為使用預留項目的專案設定用量和並行限制,自訂預設的公平排程行為。這些限制可防止專案耗用過多運算單元,即使專案在公平排程下有資格獲得更多容量。

您可以在預留項目層級設定專案上限,做為預設限制。除非遭到覆寫,否則這些限制會套用至使用該預留項目的所有專案。或者,您也可以將專案上限設為個別專案的專案專屬覆寫。

系統支援下列專案數量上限類型:

  • 運算單元數量上限:限制預留項目中,指派對象專案執行查詢時的運算單元用量。下限值為 100。 這並非嚴格限制,而是約略上限。
  • 並行數量上限:限制預留項目中,指派對象專案可同時執行的查詢數量。

    並行上限僅在查詢准入時套用,不會導致執行中的查詢取消。如果將並行上限調降至低於目前執行中的查詢數量,新查詢會排入佇列,直到有足夠的執行中查詢完成為止。

變更這些設定時,請注意下列限制:

  • 變更最多需要一分鐘才會生效。
  • 修改每項專案的運算單元數量上限覆寫設定後,必須啟動新查詢才會生效。

如要進一步瞭解如何設定這些政策,請參閱「管理工作負載指派作業」和「管理工作負載預留項目」。

預留運算單元數量

BigQuery 的架構會隨著資源量增加而呈線性成長。視工作負載而定,容量增加可能會帶來更多效能。不過,增加容量也會提高費用。因此,請根據您對效能、處理量和公用程式的需求,選擇最佳的運算單元購買數量。

新增基準運算單元或提高自動調整資源配置上限時,BigQuery 調度器會為個別查詢指派更多運算單元,盡可能提高平行處理能力。雖然這樣做可以縮短查詢執行時間,但並行工作站的負荷可能會導致查詢消耗的總時段時間 (total_slot_ms) 增加。

您可以嘗試使用基準和自動調度資源運算單元,找出最佳的運算單元設定。舉例來說,您可以先使用 500 個基準配額測試工作負載,然後依序使用 1,000 個、1,500 個和 2,000 個配額,觀察對效能的影響。

如果測試效能的區域有可用的閒置運算單元,預留項目可能會以低於預期的運算單元數量達到效能。這是因為預留項目使用閒置運算單元來滿足工作負載的運算單元需求。如果其他預留項目的工作負載變更,導致閒置運算單元可用性降低,工作負載效能可能會下降。因此,對於正式環境層級、有時間限制的工作負載,請確保預留項目在運算單元容量方面能自給自足。這可避免閒置運算單元的變更直接影響工作效能。

分配運算單元並執行工作負載至少七天後,您可以使用運算單元估算工具分析效能,並模擬新增或減少運算單元的影響。

您也可以查看專案目前的運算單元用量,以及選擇要支付的月費。隨選工作負載的運算單元上限為 2,000 個,但請務必使用 INFORMATION_SCHEMA.JOBS* 檢視表、Cloud Logging、Jobs API 或 BigQuery 稽核記錄,檢查專案實際使用的運算單元數量。詳情請參閱「監控預留項目」。

運算單元用量時間軸。

使用預留項目管理工作負載

您可以建立額外的預留項目,並將專案指派給這些預留項目,藉此在工作負載、團隊或部門之間分配容量。預留項目是獨立的資源集區,可讓您在整個機構中,善用特定區域的閒置容量。

舉例來說,您可能共有 1,000 個已承諾容量配額,以及三種工作負載類型:資料科學、ELT 和 BI。

  • 您可以建立 500 個運算單元的 ds 預留項目,並將所有相關 Google Cloud 專案指派給該 ds 預留項目。
  • 您可以建立 300 個運算單元的elt預留項目,並將用於 ELT 工作負載的專案指派給該elt預留項目。
  • 您可以建立 bi 預留項目 (含 200 個運算單元),並將連結至 BI 工具的專案指派給該 bi 預留項目。

刪除使用承諾。

您也可以選擇為個別團隊或部門建立預留項目,不必跨工作負載類型分割容量。透過自動調度資源,您可以在多個預訂項目中隔離工作負載,提供更彈性且精細的工作負載管理。

管理不同區域的預留項目

預留項目是區域性資源。在某個區域購買的運算單元和建立的預留項目,無法用於其他區域。專案、資料夾和機構可指派給某個區域的預訂項目,並在另一個區域中隨選執行。如要管理其他區域的預留項目,請在 BigQuery 的「工作負載管理」頁面中變更區域:

  1. 在 BigQuery 控制台中,按一下「預留項目」。
  2. 按一下「Location」(位置) 挑選器,然後選取要管理預留項目的區域。選取其他區域。
  3. 選取區域後,您就能購買運算單元、建立預留項目,以及將專案指派給預留項目。

管理複雜組織中的預留項目

預留項目是組織範圍的資源。建立預留項目時,您可以將容量指派給同一 Google Cloud機構中的任何專案。大多數 BigQuery 使用者會使用單一管理專案來處理預留項目和承諾。這個管理專案與 Cloud Billing 帳戶相關聯,該帳戶會依容量計費。

不過,如果貴機構結構複雜,有多個部門各自管理帳單,您可能需要使用多個管理專案。請注意,閒置運算單元只能在相同管理專案中建立的預留項目之間共用。請注意預留項目和管理專案的配額與限制。

如果您使用多個 Google Cloud 機構,則必須為每個機構建立至少一個管理專案,然後在相關管理專案中管理每個機構的預訂和承諾。容量無法跨機構共用。

管理預訂的進階控制選項

BigQuery 的預留項目可讓您進一步控管預留項目的使用方式,並提供額外的安全防護功能。您可以定義政策,指定哪些使用者或群組可以存取及使用特定預留項目。這可確保機密資料和工作負載受到隔離和保護。預訂管理員可以精確控管哪些使用者或服務帳戶 (主體) 有權使用特定預訂。如要這麼做,請使用套用至管理專案 (管理預留項目的專案) 的 IAM 條件。

舉例來說,您可以建立 IAM 條件,將 reservations.use 權限授予特定使用者群組,讓他們能存取名稱開頭為特定前置字串的所有預留項目。方便您管理相關預訂組合的存取權。

使用者必須具備 reservations.use 權限,才能覆寫作業的預設預留項目,或在專案已指派預留項目時,強制作業隨選執行。roles/bigquery.resourceAdmin 和 roles/bigquery.resourceEditor 角色提供這項權限。您可以授予個別使用者、群組或服務帳戶存取權。您也可以根據預留項目屬性 (例如名稱) 定義政策,因為 IAM 條件支援屬性式存取控管。

如要授予預留項目的 IAM 條件,請參閱「控管預留項目的存取權」。

運算單元承諾使用合約

運算單元使用承諾是指在特定時間範圍內購買運算單元。購買運算單元時,每次可增加 50 個,最多可達區域運算單元配額。容量承諾使用合約為選用項目,但可為穩定狀態的工作負載節省成本。運算單元承諾使用合約可用於支付預留項目的基準運算單元費用。任何未使用的運算單元容量,都會做為閒置運算單元,與其他預留項目共用。運算單元承諾使用合約不適用於自動調度資源運算單元。為確保您能以折扣費率使用承諾的運算單元,請確認承諾的運算單元數量足以涵蓋基準運算單元。可建立的使用承諾數量沒有限制。從您成功購買承諾使用合約的那一刻起,系統就會開始收費。如要瞭解目前的定價資訊,請參閱「容量承諾使用合約定價」。

  • 年約制承諾使用合約。您購買了 365 天的承諾使用合約。365 天後,您可以選擇續約或改用其他類型的約期方案。

  • 承諾使用三年。您購買了三年承諾使用合約。3 年 (1,095 天) 後,您可以選擇續訂或改用其他類型的約期方案。

承諾期結束後,承諾將根據選取的續約方案續訂。

年約或三年約方案是按月計費,但財務承諾涵蓋整個承諾期,無法按月取消。帳單報表中的用量資料每天都會更新,您隨時可以查看。

運算單元承諾使用合約會受到容量限制。嘗試購買時,不保證一定能成功購買。不過,成功購買承諾使用合約後,您就能使用該容量,直到合約到期為止。

如果您在建立預留項目之前購買運算單元承諾,系統會自動建立名為 default 的預留項目,方便您使用。default預留項目沒有特殊行為。您可以視需要建立其他預留項目,或使用預設預留項目。

建議您為預留項目指派非零基準,以獲得最可預測的效能和初始容量。雖然您可以將預留項目的基準運算單元設為零,並設定容量上限,以便使用自動調度資源功能,但這種做法的成效完全取決於自動調度資源功能是否已正確啟用,以及是否主動取得運算單元。如果自動調度資源功能無法有效運作,這類零基準預留項目會改為僅依賴可用的閒置運算單元容量,這無法保證效能,且可能導致查詢速度不穩定或降低。

續訂承諾使用合約

購買合約時,您需要選取續約方案。在約期到期前,您隨時可以變更續訂方案。可用的續訂方案如下:

  • 無。承諾期結束後,承諾使用合約就會移除。預訂不會受到影響。
  • 按年。承諾期結束後,您的承諾會再續約一年。
  • 三年。承諾期結束後,承諾會再續約三年。

如要瞭解如何購買及續約承諾使用合約,請參閱「建立運算資源承諾使用合約」。

舉例來說,如果您在 2019 年 10 月 5 日下午 6:00 購買年約方案,系統會立即開始計費。您可以在 2020 年 10 月 4 日下午 6:00 後刪除或續約承諾使用合約,請注意 2020 年是閏年。你可以在 2020 年 10 月 4 日下午 6 點前變更續訂方案,方法如下:

  • 如果您選擇續約年約,則在 2020 年 10 月 4 日下午 6:00,您的合約會續約一年。
  • 如果您選擇續約三年承諾使用合約,則在 2020 年 10 月 4 日下午 6:00,您的承諾使用合約會續約三年。

注意:承諾期限到期後,續約程序最多可能需要約一小時。舉例來說,如果承諾於 2020 年 10 月 4 日下午 6 點到期,系統會在 2020 年 10 月 4 日下午 6 點到 7 點之間,顯示續約承諾記錄。由於建立的約定生效時間為下午 6 點,因此在資料更新期間內不會產生隨選費用。

承諾使用合約到期

承諾建立後即無法刪除。 如要刪除年約或三年約方案,請將續約方案設為 NONE。使用承諾到期後,系統會自動刪除。如要進一步瞭解承諾到期,請參閱「承諾到期」一文。

如果您不小心購買承諾使用合約,或是在設定承諾使用合約時發生錯誤,請向 Cloud Customer Care 尋求協助。

預留項目限制

  • 某個組織的預留項目無法與其他組織共用。
  • 每個機構都必須使用不同的預訂和管理專案。
  • 每個機構在單一位置最多可有 10 個管理專案,且這些專案都含有有效的預留項目。
  • 閒置容量無法在機構之間共用,也無法在單一機構內的不同管理專案之間共用。
  • 閒置運算能力無法跨區域共用。
  • 承諾和預留項目是區域資源。在某個區域或多區域購買的承諾使用合約,無法用於其他區域或多區域的預留項目,即使單一區域位置與多區域位置位於同一地點也一樣。舉例來說,您無法在 europe-west4 的預訂項目中使用在 EU 多區域購買的承諾。
  • 承諾使用合約和預留項目無法從某個區域或多區域移至其他區域。
  • 在某個管理專案中購買的使用承諾,無法移至其他管理專案。
  • 以某個版本購買的使用承諾,無法用於其他版本的預留項目。
  • 不同版本的預留項目不會共用閒置運算單元。
  • 自動調度資源的運算單元無法共用,因為不再需要時會縮減。

預留項目可預測性

如要使用預留項目可預測性,請先啟用預留項目公平性。

預留項目預測功能可讓您設定預留項目可消耗的運算單元絕對上限。BigQuery 提供基準運算單元、閒置運算單元和自動調度資源運算單元,做為潛在的容量資源。建立預留項目並設定大小上限時,請根據過去的工作負載,確認基準運算單元數量,以及自動調度資源和閒置運算單元的適當設定。

如要啟用預留項目可預測性,您必須設定預留項目的運算單元數量上限和調度資源模式。運算單元數量上限必須為正數,且大於指派給預留項目的基準運算單元數量。如要進一步瞭解如何使用預留項目預測功能,請參閱「建立專屬時段的預留項目」。在預留項目設定運算單元數量上限時,無法設定 autoscale_max_slots 的值。

ignore_idle_slots 的值必須與縮放模式一致。如果縮放模式為 ALL_SLOTS 或 IDLE_SLOTS_ONLY,ignore_idle_slots 必須為 false。如果縮放模式為 AUTOSCALE_ONLY,ignore_idle_slots 必須為 true。

您可以設定預留項目,只使用下列容量資源組合,最多不超過定義的上限:

  • 基準運算單元 + 閒置運算單元:預留項目的運算單元數量大於零,且資源調度模式為 IDLE_SLOTS_ONLY。預留項目會使用設定的基準數量和可用的閒置運算單元,最多不超過運算單元數量上限。如果沒有足夠的閒置運算單元,預留項目可能無法達到上限。

  • 基準運算單元 + 閒置運算單元 + 自動調度資源運算單元:預留項目運算單元容量大於零,且調度資源模式為 ALL_SLOTS。預留項目會先耗用設定的基準運算單元數量,接著是所有可用的閒置運算單元,最後才是自動調度運算單元。

  • 基準運算單元 + 自動調度資源運算單元:預留項目運算單元容量大於零,且調度模式為 AUTOSCALE_ONLY。預留項目會先耗用設定的基準運算單元,接著才會耗用自動調度運算單元。

  • 閒置運算單元 + 自動調度資源運算單元:預留項目的運算單元容量為零,且調度模式為 ALL_SLOTS。預留項目會先使用所有可用的閒置運算單元,接著才會使用自動調度資源運算單元。

  • 閒置運算單元:預留項目的運算單元容量為零,且縮放模式為 IDLE_SLOTS_ONLY。預留項目會使用所有可用的閒置運算單元,但不會超過設定的上限。如果沒有足夠的閒置運算單元,預留項目可能無法達到上限。

下圖顯示可用的不同設定選項:

可預測的預訂設定選項。

圖中顯示五種設定選項,說明 BigQuery 如何使用運算單元,直到達到設定的上限。前三個選項包含基準運算單元,其他選項則未設定基準運算單元。

限制

預留項目可預測性有下列限制:

  • 除非選擇 AUTOSCALE_ONLY 選項,否則預留項目的可預測性僅適用於 Enterprise 和 Enterprise Plus 版本。

  • 預留項目的可預測性會盡可能達到最佳。整體用量仍可能超過設定上限。

後續步驟

預留項目群組

如要使用預留項目群組,請先啟用預留項目公平性。

預留項目群組可讓您管理多個預留項目的屬性,就像資料集整理資料表一樣。

預留項目會先與同一個預留項目群組中的其他預留項目共用閒置運算單元,然後才開放給組織使用:

預留項目群組。

與預留項目群組共用閒置運算單元

閒置運算單元會先平均分配給未分組的預留項目和預留項目群組,再平均分配給預留項目群組。

在以下範例中,有三個預留項目和 1,200 個閒置運算單元。如果沒有預留項目群組,每個預留項目會平均分配到 400 個閒置運算單元。將預留項目 1 和 2 分組後,閒置運算單元的分配方式會改變。閒置運算單元會先平均分配給預留項目群組和預留項目 3 (兩者各 600 個閒置運算單元)。接著,系統會將預留項目群組的 600 個閒置運算單元平均分配給預留項目 1 和 2。

預留項目群組閒置運算單元共用。

限制

預留項目群組有下列限制:

  • 共用預留項目群組的預留項目必須屬於相同專案和區域。

  • 專案必須啟用以預留項目為基礎的公平性機制。

  • 群組中的預留項目必須使用相同的版本。

  • 在同一個群組中,您無法混用有代管災難復原設定和沒有這類設定的預留項目。群組中的所有預留項目都必須設定災難復原功能,或全部停用。

  • 如果群組中的預留項目已啟用災難復原功能,所有預留項目都必須使用同一組區域做為主要和次要位置。

如要進一步瞭解如何使用預訂群組,請參閱「使用預訂群組優先處理閒置時段」。

排解預訂問題

請參考下列資訊,排解預留項目的常見問題,例如新增運算單元時發生錯誤、預留項目未用於 BigQuery 工作,或無法辨識預留項目。

無法增加預留項目大小

嘗試在預留項目中新增更多運算單元時,如果遇到 Failed to allocate slots for reservation in the current system state 或 Failed to update reservation: Failed to allocate slots for reservation 等錯誤,通常是暫時性問題。如要緩解問題,請按照下列步驟操作:

  • 請減少時段數量後重試。
  • 如果嘗試使用較少的運算單元失敗,請等待 15 分鐘,然後重試作業。

如果重試多次並等待 30 分鐘後,仍收到相同錯誤,請與 Cloud Customer Care 聯絡。

配額不足,無法完成這項要求

如果錯誤訊息顯示 There is insufficient quota to complete this request,表示要求超出專案設定的配額限制。

如要解決這個錯誤,請執行下列任一操作:

  • 在預留項目中新增較少的運算單元,確保要求不會超出配額限制。
  • 在相應區域申請提高配額。詳情請參閱「要求提高配額」。

BigQuery 未使用預留項目執行工作

在多種情況下,作業可能會使用隨選價格或免費共用運算單元集區執行,而不是使用您建立的預留項目。

查詢和預訂位於不同區域

預留項目是區域性資源。查詢會與查詢中參照的任何資料表位於相同位置。

如果資料表的位置與預留項目不符,查詢就不會使用預留項目,而是按照隨選定價執行 (或符合資格的批次載入和匯出工作,則使用免費共用運算單元集區)。

查詢 BigQuery Omni 資料表

查詢 BigQuery Omni 資料表時,請務必在資料表所在的區域建立預留項目,而非共置區域。如果您在共置的 BigQuery 區域建立預留項目,系統會按照隨選定價模式執行查詢。

已建立預留項目,但專案未指派給該項目

如要使用預留項目中的運算單元,您必須建立指派作業,將專案、資料夾或組織指派給特定預留項目。確認專案有對應的預留項目指派作業。

工作類型不符

建立工作時,請務必選取正確的工作類型,否則工作不會使用預留項目。

舉例來說,如果選取 PIPELINE 做為工作類型,所有查詢工作都會採用隨選定價。將指派類型變更為 QUERY,即可使用預留項目執行查詢工作。

多陳述式查詢

如果您執行多重陳述式查詢,即使子項工作是在預留項目下執行,父項工作物件也不會有相關聯的預留項目。

如要確認工作是否實際使用預留項目,請檢查子工作的中繼資料。

正在擷取快取結果

查詢工作擷取快取結果時,預留項目欄位會留空,因為 BigQuery 不會執行任何運算,而是直接從臨時資料表擷取結果。

變更資料擷取資料列修改作業

如果您有變更資料擷取 (CDC) 資料表,BigQuery 會在 max_staleness 間隔內,以使用 BACKGROUND 指派類型的背景工作套用待處理的資料列修改。如果沒有 BACKGROUND 指派作業,這些工作會採用隨選價格。請考慮為專案建立 BACKGROUND 指派項目,以免產生非預期的隨選費用。您可以透過工作 ID 中的 queueworker_cdc_background_merge_coalesce 子字串,識別這些工作。

使用外部服務的 BigQuery ML 模型類型

如果專案中找不到 ML_EXTERNAL 工作類型指派的預留項目,外部模型建立工作就會以隨選價格執行。QUERY 工作類型指派作業適用於標準 BigQuery ML 模型和矩陣分解模型 (需要 Enterprise 或 Enterprise Plus 版本預留項目),而外部模型則需要 ML_EXTERNAL 指派作業。詳情請參閱「將運算單元指派給 BigQuery 工作負載」。

在專案中發現無法辨識的預留項目

BigQuery 擁有保留項目,代表 BigQuery 中特定作業的免費共用運算單元集區。

default-pipeline

根據預設,在 BigQuery 中批次載入或批次匯出資料時,會使用免費的共用運算單元集區。檢查這些載入或擷取工作時,預留項目欄位會顯示 default-pipeline。

使用共用運算單元集區不會產生費用。如要獲得穩定、可預測的效能,建議您購買 PIPELINE 預留項目。