管理設定
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:與專案或機構相關聯的區域,例如us或europe-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:與專案或機構相關聯的區域,例如us或europe-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.PROJECT_OPTIONS: 套用至專案的設定。INFORMATION_SCHEMA.EFFECTIVE_PROJECT_OPTIONS:套用至專案的有效設定。有效設定包括專案層級的所有設定,以及專案從機構繼承的所有設定。INFORMATION_SCHEMA.ORGANIZATION_OPTIONS: 套用至機構的設定。
新設定可能需要幾分鐘才會生效,並反映在 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 設定服務不需額外付費。詳情請參閱「定價」。