使用保留項目進行工作負載管理
本頁面說明如何使用時段預留功能來管理 BigQuery 工作負載。
運算單元保留項目
在 BigQuery 中,運算單元會在稱為預留的資源池中分配。保留項目可讓您以符合貴機構需求的方式管理容量和隔離工作負載。舉例來說,您可以為實際工作環境工作負載建立名為 prod
的預留作業,並為測試作業建立名為 test
的獨立預留作業,這樣測試作業就不會與實際工作環境作業爭用資源。您也可以為機構中的不同部門建立預訂,以便分配運算成本。
儘管名稱為「預留」,但預留項目中的容量不一定會保留。使用自動調度資源保留功能時,系統會根據需求自動調整容量。此外,閒置運算單元可供多個預留項目共用。
保留項目指派作業
如要使用預留項目中的分配時段,您必須將其指派給一或多個專案、資料夾或機構。專案中的作業執行時,會使用其指派的預留項目中的運算單元。資源可在 Google Cloud 資源階層中,從父項繼承指派項目。如果專案未指派給保留項目,則會繼承上層資料夾或機構的指定項目 (如果有)。
專案會使用指派給該專案的資源階層中最具體的單一預留項目。資料夾指派會覆寫機構指派,而專案指派會覆寫資料夾指派。
如果專案沒有指派或繼承的保留項目,則工作會採用以量計價模式。如要進一步瞭解資源階層結構,請參閱「組織 BigQuery 資源」。
資源可指派給 None
,表示沒有指派。指派給 None
的專案一律採用以量計價。None
指派作業的常見用途,是將機構指派給保留項目,然後使用 None
將特定專案或資料夾排除在該保留項目之外。詳情請參閱「將專案指派給 None
」。
建立指派項目時,您需要指定該指派項目的工作類型:
QUERY
:請將這個保留項目用於非連續查詢工作,包括 SQL、DDL、DML 和 BigQuery ML (內建模型) 查詢。BACKGROUND
:如果您選擇使用自己的預留空間來執行 BigQuery 搜尋索引管理工作、BigQuery 變更資料擷取 (CDC) 或 BigLake 中繼資料快取背景工作,請使用這個預留空間。使用 Datastream 的背景套用作業將來源資料庫複製到 BigQuery 時,也請使用這項保留作業。標準版不支援BACKGROUND
預訂功能。ML_EXTERNAL
:請將此保留項目用於 BigQuery MLCREATE MODEL
查詢,這些查詢會使用 BigQuery 以外的服務。詳情請參閱「將運算單元指派給 BigQuery ML 工作負載」。標準版不支援ML_EXTERNAL
預訂功能。PIPELINE
:請將此保留項目用於負載和擷取工作。根據預設,載入和擷取工作是免費的,且會使用共用的運算單元集區。BigQuery 不保證這個共用集區的可用容量或實際的總處理量。如果您要載入大量資料,工作可能會等待空缺出現。在這種情況下,您可能需要購買專屬運算單元,並將
PIPELINE
工作指派給這些運算單元。最佳做法是建立額外的專屬預留項目,並啟用「忽略閒置運算單元」。如要進一步瞭解閒置時段,請參閱「閒置時段」。載入和擷取工作指派給保留項目後,就無法再使用免費集區。您應監控資源使用率和工作,確保預訂資源有足夠的容量,以便比使用免費資源池更有效率。
您無法將個別時段分配給特定工作。BigQuery 排程器會處理使用預留項目的工作運算單元分配作業。如要進一步瞭解運算單元的使用方式,請參閱「BigQuery 中的公平排程」。
彈性指派預留項目
如要尋求支援,或針對這項功能提供意見回饋,請來信至 bigquery-wlm-feedback@google.com。
BigQuery 可讓您在執行階段指定要執行查詢的保留項目。這樣一來,您就能更全面地控管資源分配,並避免建立不必要的專案。您可以使用 CLI、UI、SQL 或 API 在執行階段指定預留空間,藉此覆寫專案、資料夾或組織的預留空間指派預設值。指派的預留空間必須與您執行的查詢位於相同區域。所有版本都支援這些指派。
您必須有權存取預訂,才能在執行查詢時使用預訂。
如要靈活指派保留項目,請執行互動式查詢並指定保留項目。
結合預留項目與隨選結帳
您可以在一個地區使用容量型,並在另一個地區使用以量計價模式。根據預設,所有專案都會採用以量計價。您可以透過將專案、資料夾或機構指派給保留項目,使其在某個地區內選擇使用容量型計費模式。例如,如果您在美國多地區購買了一個運算單元使用承諾,並將您的機構指派給預設的保留項目,您的機構將會在美國多地區採用容量計費模式,但在所有其他地區則仍將採用以量計價模式。
在某個地區內,您可以將專案明確指派給預留項目,藉此結合容量和隨選計費。未指派給保留項目的任何專案都會繼續採用以量計價模式。您也可以指派預留 ID none
,明確指派專案使用隨選付款。如果您將資料夾或機構指派給保留項目,但希望該資料夾或機構中的部分專案採用以量計價模式,這項功能就很實用。詳情請參閱「將專案指派給無人專案」。
採用以量計價的專案都會使用與已承諾容量不同的容量。這些專案不會影響您已承諾容量的可用性。
指定管理專案
建立承諾和預留項目時,系統會將這些項目與 Google Cloud 專案建立關聯。這個專案會管理 BigQuery 保留項目資源,也會設為這些資源的主要帳單來源。這個專案不必與儲存 BigQuery 工作或資料集的專案相同。
建議您建立專用專案來管理預留資源。這個專案稱為「管理」專案,因為它會將帳單和承諾管理集中管理。為這個專案取個描述性名稱,例如 bq-COMPANY_NAME-admin
。接著,請建立一或多個專案來容納 BigQuery 工作。
只有與管理專案位於同一個機構資源中的專案,才能指派給保留項目。如果管理專案不屬於機構,則只有該專案可以使用運算單元。
系統會針對已承諾的時間段收取管理專案費用。使用運算單元的專案會計入儲存空間費用,但不會計入運算單元費用。您可以購買多種方案 (例如年繳和三年方案),並將這些方案放入同一個管理專案。
最佳做法是限制管理專案的數量。這有助於簡化帳單管理和時段分配作業。建議您為貴機構的所有預訂建立一個管理專案,以便管理。複雜的機構可能需要額外的管理專案,才能符合管理或帳單規定。
使用多個管理專案
在某些情況下,您可能需要建立多個管理專案:
- 將多個預訂和承諾的費用分開,歸入不同的機構單位。
- 將一或多個時段承諾對應至不同的預訂組合。
不同管理員專案中的預留項目不會共用閒置運算單元容量。
在 BigQuery Google Cloud 控制台的「容量管理」頁面中,您只能查看所選管理專案的保留項目和承諾。
調整運算單元預留資源
BigQuery 的架構會隨著資源量增加而呈線性成長。視工作負載而定,增加容量可能會帶來更多效能。不過,增加容量也會增加成本。因此,要購買的最佳運算單元數量取決於您對效能、總處理量和公用程式的需求。
您可以嘗試使用基準和自動調度資源的運算單元,找出最佳的運算單元設定。舉例來說,您可以使用 500 個基準時段測試工作負載,然後分別使用 1,000、1,500 和 2,000 個時段,觀察對效能造成的影響。
分配運算單元並執行工作負載至少七天後,您可以使用運算單元估算器分析效能,並模擬增加或減少運算單元的效果。
您也可以查看專案目前的運算單元用量,以及您選擇的每月價格。隨選工作負載有 2,000 個運算單元的軟性運算單元上限,但請務必使用 INFORMATION_SCHEMA.JOBS*
檢視畫面、Cloud Logging、Jobs API 或 BigQuery 稽核記錄,檢查您的專案實際正在使用的運算單元數量。詳情請參閱「監控預留空間」。
使用保留項目管理工作負載
您可以使用 BigQuery 保留項目,透過建立額外的保留項目,並將專案指派給這些保留項目,來在工作負載、團隊或部門之間分配容量。保留項目是一個孤立的資源集區,有能夠利用整個機構中的閒置容量的額外好處。
例如,您可能有 1,000 個運算單元的承諾總容量和 3 種工作負載類型:數據資料學、ELT 和 BI。
- 您可以建立具有 500 個運算單元的
ds
保留項目,並將所有相關的 Google Cloud 專案指派給該ds
保留項目。 - 您可以建立具有 300 個運算單元的
elt
保留項目,並將用於 ELT 工作負載的專案指派給該elt
保留項目。 - 您可以建立具有 200 個運算單元的
bi
保留項目,並將連結至您的 BI 工具的專案指派給該bi
保留項目。
您可以選擇為個別團隊或部門建立保留項目,而不是在多個工作負載類型之間劃分容量。
管理不同地區的預留項目
保留項目是區域性資源。在一個地區購買的運算單元和建立的保留項目不能在任何其他地區使用。專案、資料夾和機構都可以指派給一個地區內的保留項目,並在另一個地區內隨選執行。如要管理另一個地區內的保留項目,您必須在 BigQuery「Capacity Management」頁面中變更地區:
- 在 BigQuery 控制台中,按一下「Reservations」。
- 按一下「Location」選擇器,然後選取您要管理保留項目的地區。
- 選取地區後,您可以購買運算單元、建立預留項目,以及將專案指派給預留項目。
管理複雜機構中的保留項目
保留項目是機構範圍內的資源。建立預留項目時,您可以將容量指派給相同 Google Cloud機構中的任何專案。大多數 BigQuery 使用者會使用單一管理專案來進行保留和承諾。這項管理專案會連結至 Cloud Billing 帳戶,並依容量計費。
不過,如果貴機構是複雜的組織,且有許多部門自行管理帳單,您可能需要使用多個管理專案。請注意,閒置運算單元只能在同一個管理專案中建立的預留項目之間共用。請注意預留和管理專案的配額和限制。
如果您使用多個 Google Cloud 機構,則必須為每個機構建立至少一個管理專案,然後在相關管理專案中管理每個機構的預訂和承諾。您無法跨機構共用容量。
管理預訂項目的強化控制選項
如要尋求支援,或針對這項功能提供意見回饋,請來信至 bigquery-wlm-feedback@google.com。
BigQuery 中的保留項目可強化保留項目的使用方式控管機制,並提供額外的安全防護功能。您可以定義政策,指定哪些使用者或群組可以存取及使用特定預訂。這可確保機密資料和工作負載受到隔離和保護。預訂管理員可以精確控管哪些使用者或服務帳戶 (實體) 有權使用特定預訂。如要這樣做,請將 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 點購買年度承諾,系統會從那一刻開始向您收費。您可以在 2020 年 10 月 4 日下午 6 點後刪除或續約,請注意,2020 年為閏年。您可以在 2020 年 10 月 4 日下午 6 點前變更續訂方案,步驟如下:
- 如果您選擇續約年約,則您的使用承諾會在 2020 年 10 月 4 日下午 6 點續約一年。
- 如果您選擇續約三年,則在 2020 年 10 月 4 日下午 6 點,您的承諾會續約三年。
注意:在承諾期過後,續約程序最多可能需要一小時才能完成。舉例來說,如果承諾期限是 2020 年 10 月 4 日下午 6 點,系統會在 2020 年 10 月 4 日下午 6 點至 7 點之間顯示續約的承諾記錄。由於建立的承諾有效開始時間為晚上 6:00,因此在這個資料更新期間不會產生隨選費用。
承諾到期
承諾產品建立後即無法刪除。
如要刪除一年或三年承諾方案,請將其續約方案設為 NONE
。承諾到期後,系統會自動刪除該承諾。如要進一步瞭解承諾到期日,請參閱「承諾到期日」。
如果您意外購買了承諾產品或錯誤設定了承諾產品,請與 Cloud 帳單支援團隊聯絡取得協助。
預訂限制
- 一個機構的保留項目無法與其他機構共用。
- 您必須為每個機構使用單獨的保留項目和單獨的管理專案。
- 每個機構最多可在單一地點建立 10 個管理專案,並在其中保留有效的預訂項目。
- 機構之間或單一機構內的不同管理專案之間,無法共用閒置容量。
- 承諾和保留項目是地區性資源。在某個地區或多地區購買的承諾無法用於其他地區或多地區的預訂,即使單一地區位置與多地區位置共處於同一地點也一樣。舉例來說,您無法使用在
EU
多區域購買的承諾,在europe-west4
進行保留。 - 使用承諾和保留訂單無法從一個區域或多區域移動到另一個區域。
- 在一個管理專案中購買的承諾無法移至其他管理專案。
- 使用一個版本購買的承諾,無法用於其他版本的預訂。
- 不同版本的預留項目不會共用閒置運算單元。
- 自動調整的插槽無法共用,因為當不再需要時,這些插槽會縮減。
預訂可預測性
如要尋求支援,或針對這項功能提供意見回饋,請來信至 bigquery-wlm-feedback@google.com。
如要使用預留項目可預測性,您必須先啟用預留項目公平性。
預留項目可預測功能可讓您設定預留項目的使用運算單元絕對上限。BigQuery 提供基準運算單元、閒置運算單元和自動調度運算單元,做為潛在的運算能力資源。建立設有上限大小的預留項目時,請根據過去的工作負載,確認基準運算單元數量,以及自動調度資源和閒置運算單元的適當設定。
如要啟用預留空間的可預測性,您必須在預留空間上設定最大運算單元和資源調度模式的值。運算單元數量上限必須為正整數,且大於預留項目指派的基準運算單元數量。如要進一步瞭解如何使用預留項目可預測性,請參閱「建立具有專屬時段的預留項目」。在預訂時設定時段上限值時,您無法設定 autoscale_max_slots
的值。
ignore_idle_slots
的值必須與縮放模式一致。如果縮放模式為 ALL_SLOTS
或 IDLE_SLOTS_ONLY
,ignore_idle_slots
必須為 false。如果縮放模式為 AUTSOCALE_ONLY
,ignore_idle_slots
必須為 true。
您可以設定預留項目,僅使用下列容量資源組合,且不得超過所定上限:
基準運算單元 + 閒置運算單元:預留運算單元容量大於零,且調整模式為
IDLE_SLOTS_ONLY
。預留項目會使用設定的基準運算單元數量,以及可用的閒置運算單元數量,但數量不得超過運算單元數量上限。如果沒有足夠的可用空閒運算單元,預留作業可能無法達到上限。基準運算單元 + 閒置運算單元 + 自動調度資源運算單元:預留運算單元容量大於零,且資源配置模式為
ALL_SLOTS
。預留作業會先使用設定的基準運算單元數量,接著是所有可用的閒置運算單元,最後才會使用自動調度運算單元。基準運算單元 + 自動調度資源運算單元:預留運算單元容量大於零,且資源配置模式為
AUTOSCALE_ONLY
。預留作業會先使用已設定的基準運算單元,然後再使用自動調度資源運算單元。閒置運算單元 + 自動調度運算單元:預留運算單元容量為零,且調度模式為
ALL_SLOTS
。預留項目會先使用所有可用的閒置運算單元,然後再使用自動調度運算單元。閒置的運算單元:預留運算單元容量為零,且縮放模式為
IDLE_SLOTS_ONLY
。預留項目會使用所有可用的閒置運算單元,但數量不超過設定的上限。如果沒有足夠的閒置運算單元,預留項目可能無法達到上限。
下圖顯示可用的不同設定選項:
在圖表中,五個設定選項顯示 BigQuery 如何消耗運算單元,直到達到設定的上限為止。前三個選項包含基準時段,其他選項則未設定基準時段。
限制
預留功能的預測功能有下列限制:
預訂可預測功能僅適用於 Enterprise 和 Enterprise Plus 版本,除非您選擇
AUTOSCALE_ONLY
選項。系統會盡力提供可預測的預留功能。整體用量仍可能超過設定的上限。
後續步驟
- 如要進一步瞭解如何使用預訂可預測性,請參閱「建立使用專屬時段的預訂服務」。