Administrar la configuración predeterminada

En este documento, se describe cómo create y recuperar la configuración predeterminada a nivel de organización o proyecto.

Para ayudar a administrar los trabajos, puedes establecer la configuración predeterminada en BigQuery. Los ajustes que usan este servicio se establecen a nivel de organización o de proyecto, pero se pueden anular a nivel de sesión o de trabajo. Puedes definir la configuración predeterminada junto con las políticas de la organización relacionadas para aplicar el comportamiento predeterminado.

Precios

No se aplican cargos adicionales por usar el servicio de configuración de BigQuery. Para obtener más información, consulta Precios.

Configuración predeterminada.

Puedes especificar los siguientes ajustes de configuración predeterminados:

  • default_batch_query_queue_timeout_ms: la cantidad de tiempo predeterminada, en milisegundos, que una consulta por lotes se pone en cola. Si no se configura, el valor predeterminado es 24 horas. El valor mínimo es 1 milisegundo. El valor máximo es de 48 horas. Para desactivar la cola de consultas por lotes, establece el valor en -1.
  • default_column_name_character_map: el alcance y el manejo predeterminados de los caracteres en los nombres de las columnas. Si no se configuran, los trabajos de carga que usan caracteres no compatibles en los nombres de las columnas fallarán con un mensaje de error. Es posible que algunas tablas más antiguas se configuren para reemplazar los caracteres no compatibles en los nombres de las columnas. Para obtener más información, consulta load_option_list.
  • default_interactive_query_queue_timeout_ms: la cantidad de tiempo predeterminada, en milisegundos, que una consulta interactiva se pone en cola. Si no se configura, el valor predeterminado es seis horas. El valor mínimo es 1 milisegundo. El valor máximo es 48 horas. Para desactivar la cola de consultas interactivas, establece el valor en -1.
  • default_kms_key_name: la clave predeterminada de Cloud Key Management Service para encriptar los datos de tablas, incluidas las tablas temporales o anónimas. Para obtener más información, consulta Claves de Cloud KMS administradas por el cliente.
  • default_query_job_timeout_ms: el tiempo predeterminado después del cual se agota el tiempo de espera de un trabajo de consulta, incluido el tiempo que se pone en cola y el tiempo que se ejecuta. El tiempo de espera debe ser de entre cinco minutos y seis horas.
  • default_query_optimizer_options: Son las optimizaciones de consultas basadas en el historial. Esta opción puede ser una de las siguientes:

    • 'adaptive=on': Usa optimizaciones de consultas basadas en el historial.
    • 'adaptive=off': No uses optimizaciones de consultas basadas en el historial.
    • NULL (predeterminado): Usa la configuración predeterminada de optimizaciones de consultas basadas en el historial, que es equivalente a 'adaptive=off'.
  • default_time_zone: la zona horaria predeterminada que se debe usar en funciones de SQL que dependen de la zona horaria cuando no se especifica una como argumento. Esta configuración no se aplica a las tablas particionadas de columnas de unidades de tiempo (que usan UTC como la zona horaria), las transferencias de programa del Servicio de transferencia de almacenamiento ni la carga de datos con la herramienta de línea de comandos de Para obtener más información, consulta Zonas horarias.

  • default_storage_billing_model: Es el modelo de facturación de almacenamiento predeterminado para conjuntos de datos nuevos. Establece el valor en PHYSICAL para usar bytes físicos cuando se calculan los cambios de almacenamiento, o en LOGICAL para usar bytes lógicos. Ten en cuenta que cambiar el modelo de facturación de almacenamiento predeterminado no afecta a los conjuntos de datos existentes. Para obtener más información, consulta Modelos de facturación de almacenamiento.

  • default_max_time_travel_hours: Es el período de viaje en el tiempo predeterminado en horas para conjuntos de datos nuevos. Esta duración debe estar entre 48 y 168 horas inclusive, y debe ser divisible por 24. Cambiar las horas de viaje máximas predeterminadas no afecta a los conjuntos de datos existentes. Para obtener más información, consulta Viaje en el tiempo.

Crea configuraciones predeterminadas

En esta sección, se describe cómo crear una configuración.

Permisos necesarios

Para crear una configuración, necesitas el permiso bigquery.config.update de Identity and Access Management (IAM). El rol predefinido de IAM roles/bigquery.admin incluye los permisos que necesitas para crear una configuración.

Para obtener más información sobre los roles de IAM y los permisos en BigQuery, consulta Roles y permisos predefinidos.

Establece la configuración predeterminada

Puedes configurar los ajustes predeterminados a nivel de organización o de proyecto con las siguientes instrucciones de SQL. Cuando creas la configuración, debes especificar la región en la que se aplica. Solo puedes usar una región para cada instrucción.

Configura los ajustes de la organización

Para establecer la configuración de la organización, usa la declaración DDL ALTER ORGANIZATION SET OPTIONS. En el siguiente ejemplo, se establece la zona horaria predeterminada en America/Chicago, la clave predeterminada de Cloud KMS en una clave definida por el usuario, el tiempo de espera predeterminado de consulta en 30 minutos y el tiempo de espera predeterminado de la cola de consulta interactiva en 10 minutos, y el tiempo de espera predeterminado de la cola de consultas por lotes en 20 minutos:

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

Reemplaza lo siguiente:

En el siguiente ejemplo, se borra toda la configuración predeterminada a nivel de la organización:

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

Define la configuración del proyecto

Para establecer la configuración del proyecto, usa la declaración DDL ALTER PROJECT SET OPTIONS. La declaración DDL ALTER PROJECT SET OPTIONS acepta de forma opcional la variable project_id. Si no se especifica project_id, el valor predeterminado es el proyecto actual en el que se ejecuta la consulta. En el siguiente ejemplo, se establece la zona horaria predeterminada en America/Los_Angeles, la clave predeterminada de Cloud KMS en una clave de ejemplo, el tiempo de espera predeterminado de consulta en 1 hora y el tiempo de espera predeterminado de la cola de consultas interactiva en 10 minutos, y el tiempo de espera predeterminado de la cola de consultas por lotes en 20 minutos:

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

En el siguiente ejemplo, se borra toda la configuración predeterminada a nivel de proyecto. En estos casos, se usa cualquier configuración predeterminada a nivel de organización, si existe una. De lo contrario, toda la configuración predeterminada se establece en el valor predeterminado global.

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

Las configuraciones a nivel de proyecto anulan las configuraciones a nivel de organización. A su vez, las opciones de configuración a nivel de proyecto se pueden anular con las configuraciones a nivel de sesión, que se pueden anular con las configuraciones a nivel de trabajo

Recupera valores de configuración

Puedes ver los ajustes de configuración predeterminados para una organización o proyecto si ves el esquema de información. Hay tres vistas diferentes para consultar:

Las nuevas configuraciones pueden tardar unos minutos en entrar en vigor y reflejarse en la vista INFORMATION_SCHEMA.

Permisos necesarios

Para recuperar los valores de configuración, necesitas el permiso bigquery.config.get de IAM.

Cada uno de los siguientes roles predefinidos de IAM incluye los permisos que necesitas para obtener la configuración de la vista INFORMATION_SCHEMA:

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

Para obtener más información sobre los roles de IAM y los permisos en BigQuery, consulta Roles y permisos predefinidos.

Ejemplos

Para ver las configuraciones en una organización en la región us, ejecuta la siguiente consulta:

SELECT * FROM region-us.INFORMATION_SCHEMA.ORGANIZATION_OPTIONS;

Para ver las configuraciones efectivas en tu proyecto predeterminado en la región us, ejecuta la siguiente consulta:

SELECT * FROM region-us.INFORMATION_SCHEMA.EFFECTIVE_PROJECT_OPTIONS;

Para ver las opciones de configuración en tu proyecto predeterminado en la región us, ejecuta la siguiente consulta:

SELECT * FROM region-us.INFORMATION_SCHEMA.PROJECT_OPTIONS;