Gestionar la configuración

Los administradores de BigQuery y los propietarios de proyectos pueden gestionar la configuración a nivel de organización y de proyecto. Puedes definir configuraciones para aplicar la seguridad, controlar los costes y optimizar el rendimiento de las consultas en toda tu infraestructura de datos. Al definir valores predeterminados, puedes asegurar la coherencia del cumplimiento y la eficiencia operativa, lo que facilita la gestión de tu entorno de BigQuery.

Especificar los ajustes de configuración

En las siguientes secciones se describe cómo especificar los ajustes de configuración predeterminados. Los ajustes predeterminados se configuran a nivel de organización o proyecto, pero se pueden anular a nivel de sesión o de tarea. Para aplicar el comportamiento predeterminado, puedes configurar ajustes predeterminados junto con las políticas de organización relacionadas.

Roles obligatorios

Para obtener el permiso que necesitas para especificar un ajuste de configuración, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de BigQuery (roles/bigquery.admin). Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el permiso bigquery.config.update , que es necesario para especificar un ajuste de configuración.

También puedes obtener este permiso con roles personalizados u otros roles predefinidos.

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 de la organización

Puedes configurar los ajustes a nivel de organización mediante las siguientes instrucciones de GoogleSQL. 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.

Para configurar los ajustes de la organización, usa la ALTER ORGANIZATION SET OPTIONSdeclaración de DDL. En el siguiente ejemplo se especifican varias configuraciones predeterminadas, entre las que se incluyen las siguientes:

  • Zona horaria: America/Chicago
  • Clave de Cloud KMS: una clave definida por el usuario
  • Tiempo de espera de las consultas: 30 minutos (1.800.000 milisegundos)
  • Tiempo de espera de la cola de consultas interactivas: 10 minutos (600.000 milisegundos)
  • Tiempo de espera de la cola de consultas por lotes: 20 minutos (1.200.000 milisegundos)
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);

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, consulta Claves de Cloud KMS gestionadas por el cliente.
  • BILLING_MODEL: el modelo de almacenamiento de los nuevos conjuntos de datos. Por ejemplo, PHYSICAL para los bytes físicos.

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

Puedes configurar los ajustes a nivel de proyecto mediante las siguientes instrucciones de GoogleSQL. 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.

Para configurar los ajustes del proyecto, usa la ALTER PROJECT SET OPTIONSdeclaración de DDL. La instrucción ALTER PROJECT SET OPTIONS DDL acepta de forma opcional la variable PROJECT_ID. Si no se especifica PROJECT_ID, se usará de forma predeterminada el proyecto actual en el que se ejecuta la consulta. En el siguiente ejemplo se especifican varias configuraciones predeterminadas:

  • Zona horaria: America/Los_Angeles
  • Clave de Cloud KMS: una clave de ejemplo
  • Tiempo de espera de las consultas: 1 hora
  • Tiempo de espera de la cola de consultas interactivas: 10 minutos
  • Tiempo de espera de la cola de consultas por lotes: 20 minutos
  • Equidad basada en reservas: habilitada
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);

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, consulta Claves de Cloud KMS gestionadas por el cliente.
  • BILLING_MODEL: el modelo de almacenamiento de los nuevos conjuntos de datos. Por ejemplo, PHYSICAL para los bytes físicos.
  • 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. Los ajustes predeterminados usan 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,
  `region-REGION.enable_reservation_based_fairness` = 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 de INFORMATION_SCHEMA:

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

Roles obligatorios

Para obtener el permiso que necesitas para recuperar los ajustes de configuración, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Usuario de tareas de BigQuery (roles/bigquery.jobUser) en el proyecto especificado. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el permiso bigquery.config.get, que es necesario para obtener la configuración.

También puedes obtener este permiso con roles personalizados u otros roles predefinidos.

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;

Ajustes

En las siguientes secciones se describen los ajustes de configuración que puede especificar.

Configuración de la ejecución de consultas y trabajos

Usa los siguientes ajustes para controlar cómo se ejecutan, se cronometran y se ponen en cola las consultas.

  • 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 cola de consultas por lotes, asigna el valor -1.
  • default_interactive_query_queue_timeout_ms: cantidad de tiempo predeterminada, 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_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 5 minutos y 48 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.

  • 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 puesto.

  • default_time_zone: la zona horaria predeterminada que se va a usar en las funciones de GoogleSQL que dependen de la zona horaria cuando no se especifica ninguna zona horaria como argumento. Esta configuración no se aplica a las tablas particionadas por columnas de unidades de tiempo (que usan la zona horaria UTC), 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_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 (valor predeterminado): usa la configuración predeterminada de optimizaciones de consultas basadas en el historial, que equivale a 'adaptive=on'.
  • default_sql_dialect_option: 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 del trabajo.
    • 'only_google_sql': usa GoogleSQL si el dialecto de la consulta no se especifica en el nivel del trabajo. Rechaza las tareas en las que el dialecto de la consulta sea SQL antiguo.
    • NULL: usa la configuración predeterminada del dialecto de consulta, que equivale a 'default_legacy_sql'.

Ajustes de gestión de datos

Usa los siguientes ajustes para definir reglas de creación, seguridad y ciclo de vida de los datos.

  • 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 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_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_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 el artículo Viaje en el tiempo y conservación de datos.

Configuración de costes y recursos

Utiliza los siguientes ajustes para determinar cómo se facturan y se conectan los recursos.

  • 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 cambiar el modelo de facturación del almacenamiento predeterminado no afecta a los conjuntos de datos que ya tengas. Para obtener más información, consulta Modelos de facturación del almacenamiento.
  • 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 el ID del proyecto adjunto y los prefijos de región. 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.

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.