Gestionar la configuración

En este documento se describe cómo especificar y recuperar los ajustes de configuración de BigQuery a nivel de organización o proyecto.

Por ejemplo, para gestionar los trabajos, puedes usar este servicio para configurar los ajustes predeterminados de los trabajos. Los ajustes predeterminados se configuran a nivel de organización o proyecto, pero se pueden anular a nivel de sesión o de trabajo. Puedes configurar ajustes predeterminados junto con las políticas de la organización relacionadas para aplicar el comportamiento predeterminado.

Ajustes

Puede especificar los siguientes ajustes de configuración:

  • default_batch_query_queue_timeout_ms: cantidad de tiempo predeterminada, en milisegundos, que una consulta por lotes está en cola. Si no se define, el valor predeterminado es de 24 horas. El valor mínimo es 1 milisegundo. El valor máximo es de 48 horas. Para desactivar la puesta en cola de consultas por lotes, asigna el valor -1.
  • default_column_name_character_map: el ámbito y el tratamiento predeterminados de los caracteres en los nombres de columna. Si no se define, los trabajos de carga que usen caracteres no admitidos en los nombres de las columnas fallarán y se mostrará un mensaje de error. Es posible que algunas tablas más antiguas tengan configurada la opción de sustituir los caracteres no admitidos en los nombres de las columnas. Para obtener más información, consulta load_option_list.
  • default_interactive_query_queue_timeout_ms: tiempo predeterminado, en milisegundos, que una consulta interactiva está en cola. Si no se define, el valor predeterminado es de seis horas. El valor mínimo es 1 milisegundo. El valor máximo es de 48 horas. Para desactivar la cola de consultas interactivas, asigna el valor -1.
  • default_kms_key_name: la clave predeterminada de Cloud Key Management Service para cifrar los datos de las tablas, incluidas las tablas temporales o anónimas. Para obtener más información, consulta Claves de Cloud KMS gestionadas por el cliente.

    .
  • default_query_job_timeout_ms: tiempo predeterminado tras el cual se agota el tiempo de espera de una tarea de consulta, incluido el tiempo que la tarea está en cola y el tiempo que se dedica a ejecutarla. El periodo de tiempo de espera debe ser de entre cinco minutos y seis horas. Este tiempo de espera solo se aplica a los trabajos de consulta individuales y a los trabajos secundarios de las secuencias de comandos. Para definir un tiempo de espera para las tareas de secuencias de comandos, debes usar el método de API jobs.insert y definir el campo jobTimeoutMs.

  • default_query_optimizer_options: 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 optimización de consultas basada en el historial, que equivale a 'adaptive=off'.
  • default_time_zone: zona horaria predeterminada que se usará en las funciones SQL que dependen de la zona horaria cuando no se especifique ninguna como argumento. Esta configuración no se aplica a las tablas particionadas por columnas de unidades de tiempo (que usan la hora UTC como zona horaria), a las transferencias programadas del Servicio de transferencia de Storage ni a la carga de datos con la herramienta de línea de comandos bq. Para obtener más información, consulta zonas horarias.

  • default_storage_billing_model: el modelo de facturación de almacenamiento predeterminado para los nuevos conjuntos de datos. Asigna el valor PHYSICAL para usar bytes físicos al calcular los cargos de almacenamiento o LOGICAL para usar bytes lógicos. Ten en cuenta que, si cambias el modelo de facturación del almacenamiento predeterminado, no se verán afectados los conjuntos de datos que ya tengas. Para obtener más información, consulta Modelos de facturación del almacenamiento.

  • default_max_time_travel_hours: ventana de viaje en el tiempo predeterminada en horas para los conjuntos de datos nuevos. Esta duración debe estar comprendida entre 48 y 168, ambos incluidos, y debe ser divisible entre 24. Si cambia el tiempo máximo predeterminado de los viajes, no afectará a los conjuntos de datos que ya tenga. Para obtener más información, consulta Viaje en el tiempo.

  • default_cloud_resource_connection_id: la conexión predeterminada que se usará al crear tablas y modelos. Solo debes especificar el ID o el nombre de la conexión y excluir los prefijos de ID de proyecto y de región adjuntos. Si usas conexiones predeterminadas, los permisos concedidos a la cuenta de servicio de la conexión se pueden actualizar en función del tipo de tabla o modelo que estés creando. Para obtener más información, consulta la descripción general de la conexión predeterminada.

  • default_sql_dialect_option: el dialecto de consulta SQL predeterminado para ejecutar trabajos de consulta con la herramienta de línea de comandos bq o la API de BigQuery. Cambiar este ajuste no afecta al dialecto predeterminado de la consola. Esta opción puede ser una de las siguientes:

    • 'default_legacy_sql' (valor predeterminado): usa SQL antiguo si no se especifica el dialecto de la consulta en el nivel del trabajo.
    • 'default_google_sql': usa GoogleSQL si el dialecto de la consulta no se especifica en el nivel de trabajo.
    • 'only_google_sql': usa GoogleSQL si el dialecto de la consulta no se especifica en el nivel de trabajo. Rechaza las tareas en las que el dialecto de consulta sea SQL antiguo.
    • NULL: usa la configuración predeterminada del dialecto de consulta, que equivale a 'default_legacy_sql'.
  • enable_reservation_based_fairness: opción que determina cómo se comparten los espacios inactivos. El valor predeterminado es false, lo que significa que las ranuras inactivas se distribuyen por igual entre todos los proyectos de consulta. Si está habilitada, las ranuras inactivas se comparten a partes iguales entre todas las reservas primero y, después, entre los proyectos de la reserva. Para obtener más información, consulta el artículo sobre la equidad basada en reservas. Esta opción solo se admite a nivel de proyecto. No puedes especificarlo a nivel de organización o de trabajo.

Especificar los ajustes de configuración

En esta sección se describe cómo especificar un ajuste de configuración.

Permisos obligatorios

Para especificar un ajuste de configuración, necesitas el permiso de bigquery.config.updategestión de identidades y accesos (IAM). El rol de gestión de identidades y accesos predefinido roles/bigquery.admin incluye los permisos que necesitas para especificar un ajuste de configuración.

Para obtener más información sobre los roles y permisos de gestión de identidades y accesos en BigQuery, consulta el artículo sobre roles y permisos predefinidos.

Configurar los ajustes

Puedes configurar los ajustes a nivel de organización o proyecto mediante las siguientes instrucciones SQL. Cuando especifiques la configuración, debes indicar la región en la que se aplica. Solo puedes usar una región por cada declaración.

Configurar los ajustes de la organización

Para configurar los ajustes de la organización, usa la ALTER ORGANIZATION SET OPTIONSdeclaración de DDL. En el siguiente ejemplo se define la zona horaria predeterminada como America/Chicago, la clave de Cloud KMS predeterminada como una clave definida por el usuario, el tiempo de espera de consulta predeterminado como 30 minutos, el tiempo de espera de la cola de consultas interactivas predeterminado como 10 minutos y el tiempo de espera de la cola de consultas por lotes predeterminado como 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);

Haz los cambios siguientes:

  • REGION: la región asociada a tu proyecto u organización. Por ejemplo, us o europe-west6.
  • KMS_KEY: una clave de Cloud KMS definida por el usuario. Para obtener más información sobre las claves de Cloud KMS, consulta Claves de Cloud KMS gestionadas por el cliente.

En el siguiente ejemplo se borran todos los ajustes predeterminados a nivel de 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);

Configura los ajustes del proyecto

Para configurar los ajustes del proyecto, usa la ALTER PROJECT SET OPTIONSdeclaración de DDL. La instrucción DDL ALTER PROJECT SET OPTIONS acepta de forma opcional la variable PROJECT_ID. Si no se especifica PROJECT_ID, se utiliza el proyecto actual en el que se ejecuta la consulta. En el siguiente ejemplo, se define la zona horaria predeterminada como America/Los_Angeles, la clave de Cloud KMS predeterminada como una clave de ejemplo, el tiempo de espera de consulta predeterminado como 1 hora, el tiempo de espera de la cola de consultas interactivas predeterminado como 10 minutos, el tiempo de espera de la cola de consultas por lotes predeterminado como 20 minutos y se habilita la equidad basada en reservas.

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

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto.
  • REGION: la región asociada a tu proyecto u organización. Por ejemplo, us o europe-west6.
  • KMS_KEY: una clave de Cloud KMS definida por el usuario. Para obtener más información sobre las claves de Cloud KMS, consulta Claves de Cloud KMS gestionadas por el cliente.
  • CONNECTION_ID: el ID de la conexión que se va a usar como conexión predeterminada para las tablas y los modelos.

En el siguiente ejemplo se borran todos los ajustes predeterminados a nivel de proyecto. La configuración predeterminada usa los ajustes predeterminados a nivel de organización, si existen. De lo contrario, todos los ajustes predeterminados se establecerán como predeterminados globales.

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

Las configuraciones a nivel de proyecto prevalecen sobre las configuraciones a nivel de organización. Las configuraciones a nivel de proyecto se pueden anular mediante configuraciones a nivel de sesión, que a su vez se pueden anular mediante configuraciones a nivel de trabajo.

Recuperar ajustes de configuración

Para ver los ajustes de configuración de una organización o un proyecto, puedes usar las siguientes vistas del esquema de información:

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

Permisos obligatorios

Para recuperar los ajustes de configuración, necesita el bigquery.config.getpermiso de gestión de identidades y accesos del proyecto especificado.

Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos 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 y permisos de gestión de identidades y accesos en BigQuery, consulta el artículo sobre roles y permisos predefinidos.

Ejemplos

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

SELECT * FROM region-us.INFORMATION_SCHEMA.ORGANIZATION_OPTIONS;

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

SELECT * FROM region-us.INFORMATION_SCHEMA.EFFECTIVE_PROJECT_OPTIONS;

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

SELECT * FROM region-us.INFORMATION_SCHEMA.PROJECT_OPTIONS;

Precios

El uso del servicio de configuración de BigQuery no conlleva ningún coste adicional. Para obtener más información, consulta los precios.