管理配置设置

BigQuery 管理员和项目所有者可以在组织级和项目级管理配置设置。您可以设置配置,以在整个数据基础架构中强制执行安全性、控制费用并优化查询性能。通过设置默认值,您可以确保合规性和运营效率保持一致,从而更轻松地管理 BigQuery 环境。

指定配置设置

以下部分介绍了如何指定默认配置设置。默认设置在组织或项目级配置,但可以在会话或作业级替换。如需强制执行默认行为,您可以将默认设置与相关的组织政策结合使用。

所需的角色

如需获得指定配置设置所需的权限,请让您的管理员为您授予 BigQuery Admin (roles/bigquery.admin) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含指定配置设置所需的 bigquery.config.update 权限。

您也可以使用自定义角色或其他预定义角色来获取此权限。

如需详细了解 BigQuery 中的 IAM 角色和权限,请参阅预定义的角色和权限

配置组织设置

您可以使用以下 GoogleSQL 语句在组织级配置设置。指定配置时,您必须指定配置适用的区域。每个语句只能使用一个区域。

如需配置组织设置,请使用 ALTER ORGANIZATION SET OPTIONS DDL 语句。以下示例指定了多个默认配置,包括:

  • 时区:America/Chicago
  • Cloud KMS 密钥:用户定义的密钥
  • 查询超时时间:30 分钟(180 万毫秒)
  • 交互式查询队列超时时间:10 分钟(600000 毫秒)
  • 批量查询队列超时时间:20 分钟(1,200,000 毫秒)
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 Job User (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:批量查询加入queued的默认时间(以毫秒为单位)。如果未设置,则默认值为 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 函数中使用的默认时区(如果未将显式时区指定为参数)。此配置不适用于时间单位列分区表(使用 UTC 作为时区)、Storage Transfer Service 时间表转移使用 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 整除。更改默认最大时间旅行小时数不会影响现有数据集。如需了解详情,请参阅时间旅行和数据保留

费用和资源设置

使用以下设置来确定资源的结算方式和连接方式。

  • default_storage_billing_model:新数据集的默认存储空间结算模式。您可以将值设置为 PHYSICAL 以在计算存储费用时使用物理字节,或设置为 LOGICAL 以使用逻辑字节。请注意,更改默认存储空间结算模式不会影响现有数据集。如需了解详情,请参阅存储空间结算模式
  • default_cloud_resource_connection_id:创建表和模型时使用的默认连接。仅指定连接的 ID 或名称,不包括关联的项目 ID 和区域前缀。根据您要创建的表或模型的类型,使用默认连接可能会导致授予连接服务账号的权限被更新。如需了解详情,请参阅默认连接概览

价格

使用 BigQuery 配置服务无需额外费用。要了解详情,请参阅价格