管理設定

BigQuery 管理員和專案擁有者可以在組織和專案層級管理設定。您可以設定配置,在整個資料基礎架構中強制執行安全性、控管成本,以及提升查詢效能。設定預設值可確保法規遵循和作業效率一致,方便您管理 BigQuery 環境。

指定設定

下列各節說明如何指定預設設定。預設設定是在機構或專案層級設定,但可以在工作階段或工作層級覆寫。如要強制執行預設行為,可以一併設定預設設定和相關的機構政策

必要的角色

如要取得指定設定所需的權限,請要求管理員授予您 BigQuery 管理員 (roles/bigquery.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備 bigquery.config.update 權限,可指定設定。

您或許還可透過自訂角色或其他預先定義的角色取得這項權限。

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

設定機構設定

您可以使用下列 GoogleSQL 陳述式,在機構層級設定。指定設定時,您必須指定套用設定的區域。每份對帳單只能使用一個區域。

如要設定機構設定,請使用 ALTER ORGANIZATION SET OPTIONS DDL 陳述式。以下範例指定了多項預設設定,包括:

  • 時區:America/Chicago
  • Cloud KMS 金鑰:使用者定義的金鑰
  • 查詢逾時:30 分鐘 (1800000 毫秒)
  • 互動式查詢佇列逾時時間:10 分鐘 (600000 毫秒)
  • 批次查詢佇列逾時時間:20 分鐘 (1200000 毫秒)
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`= BILLING_MODEL,
  `region-REGION.default_max_time_travel_hours` = 72);

更改下列內容:

  • REGION:與專案或機構相關聯的區域,例如 useurope-west6
  • KMS_KEY:使用者定義的 Cloud KMS 金鑰。詳情請參閱「客戶管理的 Cloud KMS 金鑰」。
  • BILLING_MODEL:新資料集的儲存空間模型,例如實體位元組的 PHYSICAL

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

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);

配置專案設定

您可以使用下列 GoogleSQL 陳述式,在專案層級設定設定。指定設定時,您必須指定套用設定的區域。每份對帳單只能使用一個區域。

如要設定專案設定,請使用 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`= BILLING_MODEL,
  `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 金鑰」。
  • BILLING_MODEL:新資料集的儲存空間模型,例如實體位元組的 PHYSICAL
  • 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,
  `region-REGION.enable_reservation_based_fairness` = NULL);

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

擷取設定

您可以使用下列 INFORMATION_SCHEMA 檢視畫面,查看機構或專案的設定:

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

必要的角色

如要取得擷取設定所需的權限,請要求管理員在指定專案中授予您 BigQuery 工作使用者 (roles/bigquery.jobUser) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備 bigquery.config.get權限,可擷取設定。

您或許還可透過自訂角色或其他預先定義的角色取得這項權限。

如要進一步瞭解 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;

配置設定

下列各節說明可指定的設定。

查詢和工作執行設定

使用下列設定,控管查詢的執行、計時和排隊方式。

  • default_batch_query_queue_timeout_ms:批次查詢排入佇列的預設時間長度,以毫秒為單位。如未設定,預設值為 24 小時。最短 1 毫秒,最長 48 小時。如要停用批次查詢佇列功能,請將值設為 -1
  • default_interactive_query_queue_timeout_ms:互動式查詢排入佇列的預設時間長度,以毫秒為單位。如未設定,預設值為 6 小時。最短 1 毫秒,最長 48 小時。如要停用互動式查詢佇列功能,請將值設為 -1
  • default_query_job_timeout_ms:查詢工作逾時的預設時間,包括工作排入佇列的時間和執行時間。逾時時間必須介於 5 分鐘至 48 小時之間。這項逾時設定僅適用於個別查詢作業和指令碼的子項作業。如要為指令碼工作設定逾時時間,請使用 jobs.insert API 方法並設定 jobTimeoutMs 欄位。

  • enable_reservation_based_fairness:決定如何共用閒置時段的選項。預設值為 false,表示閒置運算單元會平均分配給所有查詢專案。啟用後,系統會先在所有預留項目之間平均分配閒置運算單元,然後再分配給預留項目中的專案。詳情請參閱「以預留項目為準的公平性」。這項功能僅支援專案層級。您無法在機構或職務層級指定這項設定。

  • default_time_zone:受時區影響的 GoogleSQL 函式中,如未指定時區做為引數,就會使用這個預設時區。這項設定不會套用至時間單位資料欄分區資料表 (以世界標準時間做為時區)、Storage 移轉服務排定移轉作業,或是使用 bq 指令列工具載入資料的情況。詳情請參閱「時區」。

  • default_query_optimizer_options:根據記錄進行查詢最佳化。 這個選項可以是下列任一值:

    • 'adaptive=on':根據記錄最佳化查詢。
    • 'adaptive=off':不使用以記錄為準的查詢最佳化。
    • NULL (預設):使用預設的查詢最佳化設定 (以記錄為依據),這等同於 'adaptive=on'
  • 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'

資料管理設定

使用下列設定定義資料建立、安全性及生命週期的規則。

  • default_column_name_character_map:資料欄名稱字元的預設範圍和處理方式。如未設定,載入工作的資料欄名稱含有不支援的字元時就會失敗,並出現錯誤訊息。某些較舊的資料表可能已設為替換資料欄名稱中不支援的字元。詳情請參閱 load_option_list 的說明。
  • default_kms_key_name:用於加密資料表資料的預設 Cloud Key Management Service 金鑰,包括暫時或匿名資料表。詳情請參閱「客戶管理的 Cloud KMS 金鑰」。

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

費用和資源設定

請使用下列設定,決定資源的計費和連線方式。

  • default_storage_billing_model:新資料集的預設儲存空間計費模式。將值設為 PHYSICAL,即可在計算儲存空間費用時使用實體位元組;設為 LOGICAL 則可使用邏輯位元組。請注意,變更預設儲存空間計費模式不會影響現有資料集。詳情請參閱「儲存空間計費模式」。
  • default_cloud_resource_connection_id:建立資料表和模型時要使用的預設連線。請只指定連線的 ID 或名稱,並排除附加的專案 ID 和區域前置字元。使用預設連線可能會導致授予連線服務帳戶的權限更新,具體情況取決於您建立的資料表或模型類型。詳情請參閱預設連線總覽

定價

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