管理設定

本文件說明如何在組織或專案層級指定擷取 BigQuery 設定。

舉例來說,您可以使用這項服務設定預設工作設定,以利管理工作。預設設定會在機構或專案層級設定,但可在工作階段或工作層級覆寫。您可以搭配相關的機構政策設定預設值,以便強制執行預設行為。

配置設定

您可以指定下列設定:

  • default_batch_query_queue_timeout_ms:批次查詢排入佇列的預設時間長度,以毫秒為單位。如未設定,預設值為 24 小時。最短 1 毫秒,最長 48 小時。如要停用批次查詢佇列功能,請將值設為 -1。
  • default_column_name_character_map:資料欄名稱字元的預設範圍和處理方式。如未設定,載入的工作資料欄名稱含有不支援的字元時就會失敗,並出現錯誤訊息。某些較舊的資料表可能已設為替換資料欄名稱中不支援的字元。詳情請參閱 load_option_list 的說明。
  • default_interactive_query_queue_timeout_ms:互動式查詢排入佇列的預設時間長度,以毫秒為單位。如未設定,預設值為 6 小時。最短 1 毫秒,最長 48 小時。如要停用互動式查詢佇列功能,請將值設為 -1。
  • default_kms_key_name:用於加密資料表資料 (包括暫時性或匿名資料表) 的預設 Cloud Key Management Service 金鑰。詳情請參閱「客戶管理的 Cloud KMS 金鑰」。

  • default_query_job_timeout_ms:查詢工作逾時的預設時間,包括工作排入佇列的時間和執行所需的時間。逾時時間必須介於 5 分鐘至 6 小時之間。這項逾時時間只適用於個別查詢工作,以及指令碼的子工作。如要為指令碼工作設定逾時,請使用 jobs.insert API 方法並設定 jobTimeoutMs 欄位。

  • default_query_optimizer_options:以歷史資料為基礎的查詢最佳化。這個選項可以是下列任一值:

    • 'adaptive=on':使用以歷史資料為依據的查詢最佳化功能。
    • 'adaptive=off':請勿使用以歷來資料為基礎的查詢最佳化功能。
    • NULL (預設):使用預設的以歷史資料為基礎的查詢最佳化設定,等同於 'adaptive=off'
  • default_time_zone:在受時區影響的 SQL 函式中,如未指定時區做為引數,就會使用這個預設時區。這項設定不會套用至時間單位資料欄分區資料表 (以世界標準時間做為時區)、Storage 移轉服務排定移轉作業,或是使用 bq 指令列工具載入資料的情況。詳情請參閱「時區」。

  • default_storage_billing_model:新資料集的預設儲存空間計費模式。如要計算儲存空間費用,請將值設為 PHYSICAL 以使用實體位元組,如要使用邏輯位元組,請將值設為 LOGICAL。請注意,變更預設儲存空間計費模式不會影響現有資料集。詳情請參閱「儲存空間計費模式」。

  • default_max_time_travel_hours:新資料集的預設時間回溯期 (以小時為單位)。這個時間長度必須介於 48 到 168 小時之間 (含首尾),且必須能被 24 整除。變更預設的最大時間移動小時數不會影響現有資料集。詳情請參閱「時光旅行」。

  • default_cloud_resource_connection_id:建立資料表和模型時使用的預設連線。只需指定連線的 ID 或名稱,並排除附加的專案 ID 和區域前置字元。使用預設連線時,系統會根據您建立的資料表或模型類型,更新授予連線服務帳戶的權限。詳情請參閱「預設連線總覽」。

  • default_sql_dialect_option:使用 bq 指令列工具或 BigQuery API 執行查詢工作的預設 SQL 查詢方言。變更這項設定不會影響控制台的預設方言。這個選項可以是下列任一值:

    • 'default_legacy_sql' (預設值):如果未在工作層級指定查詢方言,則使用舊版 SQL。
    • 'default_google_sql':如果未在工作層級指定查詢方言,請使用 GoogleSQL。
    • 'only_google_sql':如果未在工作層級指定查詢方言,請使用 GoogleSQL。拒絕將查詢方言設為舊版 SQL 的工作。
    • NULL:使用預設查詢方言設定,等同於 'default_legacy_sql'
  • enable_reservation_based_fairness:這個選項可決定如何共用閒置的空格。預設值為 false,表示空白運算單元會平均分配給所有查詢專案。啟用後,系統會先將閒置運算單元平均分配給所有預留項目,然後再分配給預留項目中的各個專案。詳情請參閱「以預留為準的平衡機制」。這個選項僅支援專案層級。您無法在機構或工作層級指定此值。

指定設定

本節說明如何指定設定。

所需權限

如要指定設定,您必須具備 bigquery.config.update 身分與存取權管理 (IAM) 權限。預先定義的 IAM 角色 roles/bigquery.admin 包含指定設定所需的權限。

如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱「預先定義的角色與權限」一文。

調整設定

您可以使用下列 SQL 陳述式,在機構或專案層級設定設定。指定設定時,您必須指定適用的區域。每個陳述式只能使用一個區域。

設定機構設定

如要設定機構設定,請使用 ALTER ORGANIZATION SET OPTIONS DDL 陳述式。以下範例將預設時區設為 America/Chicago,預設 Cloud KMS 金鑰設為使用者定義的金鑰,預設查詢逾時時間設為 30 分鐘,預設互動式查詢佇列逾時時間設為 10 分鐘,預設批次查詢佇列逾時時間設為 20 分鐘:

ALTER ORGANIZATION
SET OPTIONS (
  `region-REGION.default_time_zone`= 'America/Chicago',
  -- Ensure all service accounts under the organization have permission to KMS_KEY
  `region-REGION.default_kms_key_name` = KMS_KEY,
  `region-REGION.default_query_job_timeout_ms` = 1800000,
  `region-REGION.default_interactive_query_queue_timeout_ms` = 600000,
  `region-REGION.default_batch_query_queue_timeout_ms` = 1200000,
  `region-REGION.default_storage_billing_model`= PHYSICAL,
  `region-REGION.default_max_time_travel_hours` = 72);

更改下列內容:

  • REGION:與專案或機構相關聯的區域。例如 useurope-west6
  • KMS_KEY:使用者定義的 Cloud KMS 金鑰。如要進一步瞭解 Cloud KMS 金鑰,請參閱「客戶管理的 Cloud KMS 金鑰」。

以下範例會清除所有機構層級的預設設定:

ALTER ORGANIZATION
SET OPTIONS (
  `region-REGION.default_time_zone` = NULL,
  `region-REGION.default_kms_key_name` = NULL,
  `region-REGION.default_query_job_timeout_ms` = NULL,
  `region-REGION.default_interactive_query_queue_timeout_ms` = NULL,
  `region-REGION.default_batch_query_queue_timeout_ms` = NULL,
  `region-REGION.default_storage_billing_model`= NULL,
  `region-REGION.default_max_time_travel_hours` = NULL);

配置專案設定

如要設定專案設定,請使用 ALTER PROJECT SET OPTIONS DDL 陳述式ALTER PROJECT SET OPTIONS DDL 陳述式可選擇接受 PROJECT_ID 變數。如果未指定 PROJECT_ID,系統會預設為執行查詢的目前專案。以下範例會將預設時區設為 America/Los_Angeles、預設 Cloud KMS 金鑰設為範例金鑰、預設查詢逾時時間設為 1 小時、預設互動式查詢佇列逾時時間設為 10 分鐘、預設批次查詢佇列逾時時間設為 20 分鐘,並啟用公平的預留功能。

ALTER PROJECT PROJECT_ID
SET OPTIONS (
  `region-REGION.default_time_zone` = 'America/Los_Angeles',
  -- Ensure all service accounts under the project have permission to KMS_KEY
  `region-REGION.default_kms_key_name` = KMS_KEY,
  `region-REGION.default_query_job_timeout_ms` = 3600000,
  `region-REGION.default_interactive_query_queue_timeout_ms` = 600000,
  `region-REGION.default_batch_query_queue_timeout_ms` = 1200000,
  `region-REGION.default_storage_billing_model`= PHYSICAL,
  `region-REGION.default_max_time_travel_hours` = 72,
  `region-REGION.default_cloud_resource_connection_id` = CONNECTION_ID,
  `region-REGION.default_sql_dialect_option` = 'default_google_sql',
  `region-REGION.enable_reservation_based_fairness` = true);

更改下列內容:

  • PROJECT_ID:專案 ID。
  • REGION:與專案或機構相關聯的區域。例如 useurope-west6
  • KMS_KEY:使用者定義的 Cloud KMS 金鑰。如要進一步瞭解 Cloud KMS 金鑰,請參閱「客戶管理的 Cloud KMS 金鑰」。
  • CONNECTION_ID:用於做為資料表和模型的預設連線的連線 ID。

以下範例會清除所有專案層級的預設設定。預設設定會使用任何機構層級的預設設定 (如有)。否則,所有預設設定都會設為全域預設值。

ALTER PROJECT PROJECT_ID
SET OPTIONS (
  `region-REGION.default_time_zone` = NULL,
  `region-REGION.default_kms_key_name` = NULL,
  `region-REGION.default_query_job_timeout_ms` = NULL,
  `region-REGION.default_interactive_query_queue_timeout_ms` = NULL,
  `region-REGION.default_batch_query_queue_timeout_ms` = NULL,
  `region-REGION.default_storage_billing_model`= NULL,
  `region-REGION.default_max_time_travel_hours` = NULL,
  `region-REGION.default_cloud_resource_connection_id` = NULL,
  `region-REGION.default_sql_dialect_option` = NULL);

專案層級設定會覆寫組織層級設定。專案層級設定可由工作階段層級設定覆寫,而工作階段層級設定可由工作層級設定覆寫。

擷取設定

您可以使用下列資訊結構定義檢視機構或專案的設定:

新設定可能需要幾分鐘才會生效,並在 INFORMATION_SCHEMA 檢視畫面中顯示。

所需權限

如要擷取設定,您必須擁有指定專案的 bigquery.config.get IAM 權限。

以下每個預先定義的 IAM 角色都包含從 INFORMATION_SCHEMA 檢視畫面取得設定所需的權限:

  • roles/bigquery.jobUser
  • roles/bigquery.dataEditor
  • roles/bigquery.dataUser

如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱「預先定義的角色與權限」一文。

範例

如要查看 us 區域中機構下的設定,請執行下列查詢:

SELECT * FROM region-us.INFORMATION_SCHEMA.ORGANIZATION_OPTIONS;

如要查看 us 區域中預設專案下的有效設定,請執行下列查詢:

SELECT * FROM region-us.INFORMATION_SCHEMA.EFFECTIVE_PROJECT_OPTIONS;

如要查看 us 區域中預設專案下的設定,請執行下列查詢:

SELECT * FROM region-us.INFORMATION_SCHEMA.PROJECT_OPTIONS;

定價

使用 BigQuery 設定服務不需額外付費。詳情請參閱「定價」。