管理工作負載指派作業
透過 BigQuery Reservation API,您可以購買專屬運算單元 (稱為「承諾」)、建立運算單元集區 (稱為「預留項目」),以及將專案、資料夾和機構指派給這些預留項目。
建立保留項目指派作業
如要使用購買的配額,請建立指派作業,將專案、資料夾、機構或主體指派給配額預留項目。您無法在指派層級指派或分配特定數量的運算單元,運算單元是在預訂層級管理及指派。
指派邏輯和條件
專案會使用資源階層中指派給專案的最明確單一預留項目。BigQuery 會使用下列評估邏輯選取正確的預訂:
- 資源階層優先順序:BigQuery 會根據指派對象資源的祖先 (專案 > 資料夾 > 機構),評估指派作業。資料夾和機構指派作業不適用於標準版保留項目。
使用
principal屬性指派特定使用者 (預先發布): BigQuery 預留項目指派作業支援選用的principal屬性,管理員可根據執行作業的使用者或服務帳戶身分,將查詢作業導向特定預留項目。在特定指派對象資源中,如果指派作業與主體相符,優先順序會高於主體未設定的通用指派作業。每個專案的使用者專屬指派項目預設上限為 10 個。如需變更預設限制的協助,請傳送電子郵件至 bigquery-wlm-feedback@google.com。
如要在預訂項目中建立指派項目,預訂項目必須符合下列至少一項條件:
已設定非零數量的指派基準運算單元。
設定的自動調度運算單元數量不為零。
已設為使用閒置運算單元,且專案中有可用的閒置運算單元。
如果您嘗試將資源指派給不符合至少一項條件的預訂項目,系統會顯示以下訊息:Assignment is pending, your project will be executed as on-demand.
您可以將資源指派給容錯移轉保留項目,但指派作業會在次要位置處於待處理狀態。
所需權限
如要建立預留項目指派作業,您必須具備下列 Identity and Access Management (IAM) 權限:
bigquery.reservationAssignments.create管理專案和指派對象。
下列預先定義的 IAM 角色都具備這項權限:
BigQuery AdminBigQuery Resource AdminBigQuery Resource Editor
如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱預先定義的角色與權限一文。
將機構指派給預留項目
控制台
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
按一下導覽選單中的「工作負載管理」。
按一下「預訂」分頁標籤。
在預訂表格中找出預訂項目。
展開「動作」選項。
按一下「建立作業」。
在「建立作業」部分,按一下「瀏覽」。
瀏覽或搜尋機構,然後選取所需項目。
在「Job Type」(工作類型) 區段中,選取要為這項預留項目指派的工作類型。選項包括:
QUERYCONTINUOUSPIPELINEBACKGROUNDML_EXTERNAL
如要進一步瞭解工作類型,請參閱「預留指派項目」。預設值為
QUERY。如要進一步瞭解如何透過 Enterprise Plus 版指派,允許使用者使用 Gemini in BigQuery,請參閱「設定 Gemini in BigQuery」。
選用:在「使用者」欄位中,輸入使用者、服務帳戶或第三方身分的電子郵件地址。
點選「建立」。
SQL
如要將機構指派給預訂項目,請使用 CREATE ASSIGNMENT DDL 陳述式。
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
CREATE ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID` OPTIONS ( assignee = 'organizations/ORGANIZATION_ID', job_type = 'JOB_TYPE', principal = 'PRINCIPAL');
請替換下列項目:
ADMIN_PROJECT_ID:擁有預訂資源的管理專案專案 IDLOCATION:預訂的位置RESERVATION_NAME:預留項目名稱ASSIGNMENT_ID:指派作業的 IDID 在專案和位置中不得重複,開頭和結尾須為小寫英文字母或數字,且只能使用小寫英文字母、數字和破折號。
ORGANIZATION_ID:機構 IDJOB_TYPE:要指派給這項預留的工作類型,例如QUERY、CONTINUOUS、PIPELINE、BACKGROUND或ML_EXTERNAL- 選用:
PRINCIPAL:身分格式,指定使用者、服務帳戶或第三方身分principal欄位僅支援下列 IAM 主體 ID 格式:- Google 帳戶
- 服務帳戶
- 工作團隊身分集區中的單一身分
- workload identity pool 中的單一身分
按一下「執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
bq
如要將機構的工作指派給預留項目,請使用 bq mk 指令,並加上 --reservation_assignment 旗標:
bq mk \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--reservation_id=RESERVATION_NAME \
--assignee_type=ORGANIZATION \
--assignee_id=ORGANIZATION_ID \
--job_type=JOB_TYPE \
--principal=PRINCIPAL
更改下列內容:
ADMIN_PROJECT_ID:擁有預訂資源的管理專案專案 IDLOCATION:預訂的位置RESERVATION_NAME:預訂名稱ORGANIZATION_ID:機構 IDJOB_TYPE:要指派給這項預留的工作類型,例如QUERY、CONTINUOUS、PIPELINE、BACKGROUND或ML_EXTERNAL選用:
PRINCIPAL:指定使用者、服務帳戶或第三方身分的身分識別格式。--principal旗標僅支援下列 IAM 主體 ID 格式:- Google 帳戶
- 服務帳戶
- 工作團隊身分集區中的單一身分
- workload identity pool 中的單一身分
建立預訂指派項目後,請等待至少 5 分鐘再執行查詢。否則系統可能會按照以量計價的定價模式計費。
設定專案上限和排程政策覆寫
如要尋求支援或針對這項功能提供意見回饋,請傳送電子郵件至 bigquery-wlm-feedback@google.com。
您可以建立專案上限 (一種指派規則),為預訂項目的預設排程政策設定專案專屬的覆寫設定。 舉例來說,您可以限制專案的運算單元用量和並行查詢數量。
與其他決定專案使用哪個預訂項目的預訂指派不同,專案上限是僅控管特定專案排程行為的指派資源。
建立專案上限時,須遵守下列限制:
- 指派對象必須是 Cloud de Confiance 專案。不支援資料夾和機構。
- 工作類型必須未設定,或明確設為
JOB_TYPE_UNSPECIFIED。 - 變更
max_slots政策值後,必須先啟動新查詢,更新才會生效。
如要透過這些排程政策指派項目建立專案上限,請選取下列任一選項:
控制台
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在導覽選單中,依序前往「Administration」>「Workload management」。
按一下「指派規則」分頁標籤。
按一下「建立指派規則」。
在「規則類型」清單中,選取「專案上限」。
在「Select a project」清單中選取專案,然後按一下「Continue」。
在「預留項目」清單中選取預留項目,然後按一下「繼續」。
在「專案覆寫」部分,於「最大時段數」和「最大並行數」欄位中輸入值。
點選「建立」。
SQL
如要建立專案排程政策指派,請使用 CREATE
ASSIGNMENT DDL 陳述式搭配 scheduling_policy_max_slots 和 scheduling_policy_concurrency 選項。
CREATE ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID` OPTIONS ( assignee = 'projects/PROJECT_ID', scheduling_policy_max_slots = MAX_SLOTS, scheduling_policy_concurrency = MAX_CONCURRENCY);
更改下列內容:
bq
如要使用 bq 指令列工具建立排程政策指派,請使用 bq mk 指令搭配 --scheduling_policy_max_slots 和 --scheduling_policy_concurrency 旗標。
bq mk \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--reservation_id=RESERVATION_NAME \
--assignee_id=PROJECT_ID \
--assignee_type=PROJECT \
--scheduling_policy_max_slots=MAX_SLOTS \
--scheduling_policy_concurrency=MAX_CONCURRENCY
更改下列內容:
如要修改或移除現有的排程政策指派項目,請使用 ALTER ASSIGNMENT DDL 陳述式:
ALTER ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID` SET OPTIONS ( scheduling_policy_max_slots = NEW_MAX_SLOTS, scheduling_policy_concurrency = NEW_MAX_CONCURRENCY); -- To remove a scheduling policy setting, set its values to null. To all settings, delete the assignment.
更改下列內容:
ADMIN_PROJECT_ID:擁有預訂資源的管理專案專案 IDLOCATION:預訂的位置RESERVATION_NAME:預訂名稱ASSIGNMENT_ID:指派作業的 IDNEW_MAX_SLOTS:專案中執行的查詢可消耗的運算單元數量上限NEW_MAX_CONCURRENCY:專案可同時執行的查詢數量上限
如要查看有效的排程政策覆寫,請查看 INFORMATION_SCHEMA.ASSIGNMENTS 檢視畫面中的 scheduling_policy 和 assignment_type 欄。
將專案或資料夾指派給預留項目
控制台
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
按一下導覽選單中的「工作負載管理」。
按一下「預訂」分頁標籤。
在預訂表格中找出預訂項目。
展開「動作」選項。
按一下「建立作業」。
在「建立作業」部分,按一下「瀏覽」。
瀏覽或搜尋專案或資料夾,並選取所需項目。
在「Job Type」(工作類型) 區段中,選取要為這項預留項目指派的工作類型。選項包括:
QUERYCONTINUOUSPIPELINEBACKGROUNDML_EXTERNAL
控制台目前不支援建立及修改更精細的背景工作類型,例如
BACKGROUND_COLUMN_METADATA_INDEX。如要進一步瞭解工作類型,請參閱「預留指派項目」。預設值為
QUERY。選用:在「使用者」欄位中,輸入使用者、服務帳戶或第三方身分的電子郵件地址。
點選「建立」。
SQL
如要將專案指派給預留項目,請使用 CREATE ASSIGNMENT DDL 陳述式。
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
CREATE ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID` OPTIONS( assignee="projects/PROJECT_ID", job_type="JOB_TYPE", principal="PRINCIPAL");
請替換下列項目:
ADMIN_PROJECT_ID:擁有預訂資源的管理專案專案 IDLOCATION:預訂的位置RESERVATION_NAME:預留項目名稱ASSIGNMENT_ID:指派作業的 IDID 在專案和位置中不得重複,開頭和結尾須為小寫英文字母或數字,且只能使用小寫英文字母、數字和破折號。
PROJECT_ID:要指派給預留項目的專案 IDJOB_TYPE:要指派給這項預訂的工作類型,例如QUERY、CONTINUOUS、PIPELINE、BACKGROUND_CHANGE_DATA_CAPTURE、BACKGROUND_COLUMN_METADATA_INDEX、BACKGROUND_SEARCH_INDEX_REFRESH、BACKGROUND或ML_EXTERNAL選用:
PRINCIPAL:身分格式,指定使用者、服務帳戶或第三方身分。principal欄位僅支援下列 IAM 主體 ID 格式:- Google 帳戶
- 服務帳戶
- 工作團隊身分集區中的單一身分
- workload identity pool 中的單一身分
按一下「執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
bq
如要將工作指派給預留項目,請使用 bq mk 指令並加上 --reservation_assignment 旗標:
bq mk \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--reservation_id=RESERVATION_NAME \
--assignee_type=PROJECT \
--assignee_id=PROJECT_ID \
--job_type=JOB_TYPE \
--principal=PRINCIPAL
更改下列內容:
ADMIN_PROJECT_ID:擁有預訂資源的管理專案專案 IDLOCATION:預訂的位置RESERVATION_NAME:預訂名稱PROJECT_ID:要指派給這項預留位置的專案 IDJOB_TYPE:要指派給這項預訂的工作類型,例如QUERY、CONTINUOUS、PIPELINE、BACKGROUND_CHANGE_DATA_CAPTURE、BACKGROUND_COLUMN_METADATA_INDEX、BACKGROUND_SEARCH_INDEX_REFRESH、BACKGROUND或ML_EXTERNAL選用:
PRINCIPAL:指定使用者、服務帳戶或第三方身分的身分識別格式。--principal旗標僅支援下列 IAM 主體 ID 格式:- Google 帳戶
- 服務帳戶
- 工作團隊身分集區中的單一身分
- workload identity pool 中的單一身分
Terraform
請使用 google_bigquery_reservation_assignment 資源。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
以下範例會將專案指派給名為 my-reservation 的預留項目:
如要在 Cloud de Confiance 專案中套用 Terraform 設定,請完成下列各節的步驟。
準備 Cloud Shell
- 啟動 Cloud Shell。
-
設定要套用 Terraform 設定的預設 Cloud de Confiance 專案。
每項專案只需要執行一次這個指令,且可以在任何目錄中執行。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
如果您在 Terraform 設定檔中設定明確值,環境變數就會遭到覆寫。
準備目錄
每個 Terraform 設定檔都必須有自己的目錄 (也稱為根模組)。
-
在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱的副檔名必須是
.tf,例如main.tf。在本教學課程中,這個檔案稱為main.tf。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
如果您正在學習教學課程,可以複製每個章節或步驟中的程式碼範例。
將範例程式碼複製到新建立的
main.tf中。視需要從 GitHub 複製程式碼。如果 Terraform 代码片段是端對端解決方案的一部分,建議您使用這個方法。
- 查看並修改範例參數,套用至您的環境。
- 儲存變更。
-
初始化 Terraform。每個目錄只需執行一次這項操作。
terraform init
如要使用最新版 Google 供應商,請加入
-upgrade選項:terraform init -upgrade
套用變更
-
查看設定,確認 Terraform 即將建立或更新的資源符合您的預期:
terraform plan
視需要修正設定。
-
執行下列指令並在提示中輸入
yes,套用 Terraform 設定:terraform apply
等待 Terraform 顯示「Apply complete!」訊息。
- 開啟 Cloud de Confiance 專案即可查看結果。在 Cloud de Confiance 控制台中,前往 UI 中的資源,確認 Terraform 已建立或更新這些資源。
建立預訂指派項目後,請等待至少 5 分鐘再執行查詢。否則系統可能會按照以量計價的定價模式計費。
如要建立僅使用閒置運算單元的專案,請建立保留項目,並為其指派 0 個運算單元,然後按照先前的步驟將專案指派給該保留項目。
指派給特定使用者
您可以將預留項目指派給專案、資料夾或機構中的特定主體,例如使用者或服務帳戶。這項功能有助於將特定使用者的工作負載,導向專屬的保留項目。
在決定要為工作使用哪個保留項目時,BigQuery 會依下列順序評估指派作業:
- 評估資源階層,從專案開始,然後是父項資料夾,最後是機構。
- 在階層的每個層級,BigQuery 會先檢查是否有與執行工作的主體相符的指派項目。
- 如果該層級沒有與主體相符的指派項目,請檢查同一層級是否有沒有主體的一般指派項目。
- 如果找不到指派項目,請前往階層中的下一個層級。
如果專案層級的指派項目沒有主體,就會覆寫資料夾層級有主體的指派項目。
支援的主體格式
principal 選項支援下列 IAM v2 主體格式:
| 身分類型 | 主要格式 |
|---|---|
| 使用者 | principal://goog/subject/EMAIL_ADDRESS |
| 服務帳戶 | principal://iam.googleapis.com/projects/-/serviceAccounts/EMAIL_ADDRESS |
| 工作團隊身分集區身分 | principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ID |
| Workload Identity Pool 身分 | principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ID |
將主體指派給預留項目
SQL
如要建立使用者專屬的指派項目,請使用 CREATE ASSIGNMENT DDL 陳述式搭配 principal 選項。
CREATE ASSIGNMENT
`ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
OPTIONS (
assignee = 'projects/PROJECT_ID',
principal = 'principal://goog/subject/EMAIL_ADDRESS',
job_type = 'QUERY');
更改下列內容:
bq
如要建立使用者專屬的指派項目,請使用 bq mk 指令並加上 --principal 旗標:
bq mk \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--reservation_id=RESERVATION_NAME \
--assignee_id=PROJECT_ID \
--assignee_type=PROJECT \
--principal=PRINCIPAL \
--job_type=JOB_TYPE
更改下列內容:
將專案指派給「none」
指派給 none 代表沒有指派作業。指派給 none 的專案會採用以量計價方案。
SQL
如要將專案指派給 none,請使用 CREATE ASSIGNMENT DDL 陳述式。
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
CREATE ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.none.ASSIGNMENT_ID` OPTIONS( assignee="projects/PROJECT_ID", job_type="QUERY");
請替換下列項目:
LOCATION:應採用以量計價的職缺地點ASSIGNMENT_ID:指派作業的 IDID 在專案和位置中不得重複,開頭和結尾須為小寫英文字母或數字,且只能使用小寫英文字母、數字和破折號。
PROJECT_ID:要指派給預留項目的專案 ID
按一下「執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
bq
如要將專案指派給 none,請使用 bq mk 指令並加上 --reservation_assignment 標記:
bq mk \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--reservation_id=none \
--job_type=QUERY \
--assignee_id=PROJECT_ID \
--assignee_type=PROJECT
更改下列內容:
Terraform
請使用 google_bigquery_reservation_assignment 資源。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
以下範例會將專案指派給 none:
如要在 Cloud de Confiance 專案中套用 Terraform 設定,請完成下列各節的步驟。
準備 Cloud Shell
- 啟動 Cloud Shell。
-
設定要套用 Terraform 設定的預設 Cloud de Confiance 專案。
每項專案只需要執行一次這個指令,且可以在任何目錄中執行。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
如果您在 Terraform 設定檔中設定明確值,環境變數就會遭到覆寫。
準備目錄
每個 Terraform 設定檔都必須有自己的目錄 (也稱為根模組)。
-
在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱的副檔名必須是
.tf,例如main.tf。在本教學課程中,這個檔案稱為main.tf。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
如果您正在學習教學課程,可以複製每個章節或步驟中的程式碼範例。
將範例程式碼複製到新建立的
main.tf中。視需要從 GitHub 複製程式碼。如果 Terraform 代码片段是端對端解決方案的一部分,建議您使用這個方法。
- 查看並修改範例參數,套用至您的環境。
- 儲存變更。
-
初始化 Terraform。每個目錄只需執行一次這項操作。
terraform init
如要使用最新版 Google 供應商,請加入
-upgrade選項:terraform init -upgrade
套用變更
-
查看設定,確認 Terraform 即將建立或更新的資源符合您的預期:
terraform plan
視需要修正設定。
-
執行下列指令並在提示中輸入
yes,套用 Terraform 設定:terraform apply
等待 Terraform 顯示「Apply complete!」訊息。
- 開啟 Cloud de Confiance 專案即可查看結果。在 Cloud de Confiance 控制台中,前往 UI 中的資源,確認 Terraform 已建立或更新這些資源。
如果管理專案中沒有任何預留項目,您就必須使用 bq 指令列工具,查看指派給 none 的專案。
覆寫查詢的預留項目
如要在查詢中使用特定預留項目,您需要下列 Identity and Access Management (IAM) 權限:
- 預留項目或管理專案的
bigquery.reservations.use權限。
如要指派查詢在特定預留項目中執行,請執行下列任一操作:
控制台
前往「BigQuery」頁面。
按一下 「SQL 查詢」。
在查詢編輯器中輸入有效的 GoogleSQL 查詢。
依序點選「編輯」>「查詢設定」。
清除「自動位置設定」核取方塊,然後選取預留項目所在的區域或多區域。
在「預留項目」清單中,選取要執行查詢的預留項目。
按一下 [儲存]。
在編輯器分頁中編寫查詢並執行。查詢會在您指定的預訂中執行。
SQL
在工作階段中設定 @@reservation 系統變數,指派查詢執行的預留位置:
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
SET @@reservation='RESERVATION'; SELECT QUERY;
更改下列內容:
RESERVATION:要執行查詢的預留位置。QUERY:要執行的查詢。
按一下「執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
舉例來說,下列查詢會使用 SET 陳述式,將 US 多區域中的預留項目設為 test-reservation,然後呼叫基本查詢:
SET @@reservation='projects/project1/locations/US/reservations/test-reservation'; SELECT 42;
bq
-
在 Cloud de Confiance 控制台中啟用 Cloud Shell。
控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Cloud de Confiance Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
在 Cloud Shell 中,使用
bq query指令和--reservation_id旗標執行查詢:bq query --use_legacy_sql=false --reservation_id=RESERVATION_ID 'QUERY'
更改下列內容:
RESERVATION_ID:要執行查詢的預訂。QUERY:查詢的 SQL 陳述式。
舉例來說,下列查詢會在
US多區域的test-reservation預留項目中執行:bq query --reservation_id=project1.US:test-reservation 'SELECT 42;'
API
如要使用 API 指定預留位置,請插入新工作,並填入 query 工作設定屬性。在 reservation 欄位中指定預訂。
將運算單元指派給 BigQuery ML 工作負載
以下各節將說明 BigQuery ML 模型的預留空間指派規定。如要建立這些保留項目指派設定,請按照「將機構指派給保留項目」或「將專案或資料夾指派給保留項目」中的程序操作。
外部模型
下列 BigQuery ML 模型類型會使用外部服務:
如要使用這些服務將預留時段指派給查詢,請建立使用 ML_EXTERNAL 工作類型的預留指派項目。如果系統找不到 ML_EXTERNAL 工作類型的預訂指派,查詢工作會使用以量計價模式執行。
如果是外部模型訓練工作,保留項目指派中的運算單元會用於預先處理、訓練和後續處理步驟。訓練期間無法搶佔這些位置,但預先處理和後續處理期間可以使用閒置位置。
矩陣分解模型
如要建立矩陣因式分解模型,您必須建立保留項目,並使用 BigQuery Enterprise 或 Enterprise Plus 版,然後建立使用 QUERY 工作類型的保留項目指派作業。
其他模型類型
如果是外部模型或矩陣因式分解模型以外的 BigQuery ML 模型,您可以建立使用 QUERY 工作類型的保留項目指派作業,將預留運算單元指派給使用這些服務的查詢。如果系統找不到任何指派的保留項目,且工作類型為 QUERY,查詢工作就會採用依用量計價。
尋找保留項目指派作業
所需權限
如要搜尋特定專案、資料夾或機構的保留項目指派作業,您必須具備下列 Identity and Access Management (IAM) 權限:
- 管理專案的
bigquery.reservationAssignments.list。
下列預先定義的 IAM 角色都具備這項權限:
BigQuery AdminBigQuery Resource AdminBigQuery Resource EditorBigQuery Resource ViewerBigQuery User
如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱預先定義的角色與權限一文。
尋找專案的預留項目指派作業
如要查看是否已將專案、資料夾或機構指派給保留項目,請按照下列步驟操作:
控制台
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
按一下導覽選單中的「工作負載管理」。
按一下「預訂」分頁標籤。
在預訂項目表格中展開預訂項目,即可查看指派給該預訂項目的資源,或使用「篩選器」欄位依資源名稱篩選。
SQL
如要找出專案查詢工作指派的保留項目,請查詢 INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT 檢視畫面。
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
SELECT assignment_id FROM `region-LOCATION`.INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT WHERE assignee_id = 'PROJECT_ID' AND job_type = 'JOB_TYPE';
請替換下列項目:
按一下「執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
bq
如要找出專案的查詢工作所指派的預留項目,請使用 bq show 指令搭配 --reservation_assignment 旗標:
bq show \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--job_type=JOB_TYPE \
--assignee_id=PROJECT_ID \
--assignee_type=PROJECT
如要找出特定使用者的指派項目,請加入 --principal 旗標:
bq show \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--job_type=JOB_TYPE \
--assignee_id=PROJECT_ID \
--assignee_type=PROJECT \
--principal=PRINCIPAL
更改下列內容:
ADMIN_PROJECT_ID:擁有預訂資源的專案 IDLOCATION:要查看預訂的位置JOB_TYPE:要指派給這項預留的工作類型,例如QUERY、CONTINUOUS、PIPELINE、BACKGROUND或ML_EXTERNALPROJECT_ID:專案 IDPRINCIPAL:主體 ID,例如principal://goog/subject/EMAIL_ADDRESS
如要查看特定使用者的有效指派規則,請檢查「INFORMATION_SCHEMA.ASSIGNMENTS」檢視畫面中的「principal」欄,或執行「bq ls
--reservation_assignment」。此外,您也可以查詢 INFORMATION_SCHEMA.JOBS 檢視畫面,確認哪個預訂執行了特定工作。使用 bq show --reservation_assignment 指令時,您可以加入選用的 --principal 旗標,篩選特定使用者指派項目。
更新保留項目指派作業
將指派作業移至其他預訂
您可以將指派作業從一個預訂項目移至另一個預訂項目。
如要移動保留項目指派作業,您必須在管理專案和指派對象中,具備下列身分與存取權管理 (IAM) 權限。
bigquery.reservationAssignments.createbigquery.reservationAssignments.delete
下列預先定義的 IAM 角色都包含這些權限:
BigQuery AdminBigQuery Resource AdminBigQuery Resource Editor
如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱預先定義的角色與權限一文。
如要移動作業,請使用 bq update 指令:
bq update \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment \
--destination_reservation_id=DESTINATION_RESERVATION \
ADMIN_PROJECT_ID:LOCATION.RESERVATION_NAME.ASSIGNMENT_ID
更改下列內容:
ADMIN_PROJECT_ID:擁有預訂資源的專案 IDLOCATION:新預訂的地點RESERVATION_NAME:要從中移轉指派作業的預訂DESTINATION_RESERVATION:要將指派項目移至的預訂ASSIGNMENT_ID:指派作業的 ID如要取得指派 ID,請參閱「列出專案的預訂指派作業」。
刪除預留項目指派作業
如要將專案從預訂項目中移除,請刪除預訂項目指派作業。如果未將專案指派給任何保留項目,該專案會繼承上層資料夾或機構中的任何指派作業,否則如果沒有上層指派作業,則會採用以量計價模式。
刪除保留項目指派作業後,使用該保留項目中時段執行的工作會繼續執行,直到完成為止。
所需權限
如要刪除預留項目指派作業,您必須具備下列 Identity and Access Management (IAM) 權限:
bigquery.reservationAssignments.delete管理專案和指派對象。
下列預先定義的 IAM 角色都具備這項權限:
BigQuery AdminBigQuery Resource AdminBigQuery Resource Editor
將專案從預訂項目中移除
如要將專案從預訂項目中移除:
控制台
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
按一下導覽選單中的「工作負載管理」。
按一下「預訂」分頁標籤。
在預訂表格中展開預訂項目,找出專案。
展開「動作」選項。
點選「刪除」。
SQL
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
DROP ASSIGNMENT `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`;
請替換下列項目:
ADMIN_PROJECT_ID:擁有預訂資源的管理專案專案 IDLOCATION:預訂的位置RESERVATION_NAME:預留項目名稱ASSIGNMENT_ID:指派作業的 ID如要尋找指派 ID,請參閱「列出專案的預訂指派作業」。
按一下「執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
bq
如要從預訂項目中移除專案,請使用 bq rm 指令搭配 --reservation_assignment 旗標:
bq rm \
--project_id=ADMIN_PROJECT_ID \
--location=LOCATION \
--reservation_assignment RESERVATION_NAME.ASSIGNMENT_ID
更改下列內容:
ADMIN_PROJECT_ID:擁有預訂資源的專案 IDLOCATION:預訂的位置RESERVATION_NAME:預訂名稱ASSIGNMENT_ID:指派作業的 ID如要取得指派 ID,請參閱「尋找專案的預訂指派作業」。