Usa el tiempo de ejecución avanzado de BigQuery
En este documento, se describe cómo habilitar y deshabilitar el tiempo de ejecución avanzado de BigQuery, y cómo evaluar los efectos del tiempo de ejecución avanzado en el rendimiento de tus consultas.
Funciones y permisos
Para obtener los permisos que necesitas para especificar un parámetro de configuración, pídele a tu administrador que te otorgue el rol de IAM de Administrador de BigQuery (roles/bigquery.admin
) en tu proyecto o organización.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Funciones
Habilitar el tiempo de ejecución avanzado en un proyecto de BigQuery activa funciones en el procesador de consultas que reducen la latencia de las consultas y el consumo de ranuras sin costo adicional.
Vectorización mejorada
La ejecución vectorizada es un modelo de procesamiento de consultas que opera en columnas de datos en bloques que se alinean con el tamaño de la caché de la CPU y usa instrucciones de instrucción única, múltiples datos (SIMD). La vectorización mejorada extiende la ejecución de consultas vectorizadas en BigQuery a los siguientes aspectos del procesamiento de consultas:
- Al aprovechar las codificaciones de datos especializadas dentro del formato de almacenamiento de Capacitor, las operaciones de evaluación de filtros se pueden ejecutar en los datos codificados.
- Las codificaciones especializadas se propagan a través del plan de consulta, lo que permite procesar más datos mientras aún están codificados.
- Cuando se implementa el plegado de expresiones para evaluar funciones determinísticas y expresiones constantes, BigQuery puede simplificar predicados complejos en valores constantes.
Optimizaciones de consultas breves
Por lo general, BigQuery ejecuta consultas en un entorno distribuido con una capa intermedia de intercambio. Las optimizaciones de consultas cortas identifican de forma dinámica las consultas que se pueden ejecutar como una sola etapa, lo que reduce la latencia y el consumo de ranuras. Las codificaciones especializadas se pueden usar de manera más eficaz cuando una consulta se ejecuta en una sola etapa. Estas optimizaciones son más eficaces cuando se usan con el modo de creación de trabajos opcional, que minimiza la latencia del inicio, el mantenimiento y la recuperación de resultados de los trabajos.
La elegibilidad para la optimización de consultas cortas es dinámica y se ve influenciada por los siguientes factores:
- Es el tamaño previsto del análisis de datos.
- La cantidad de movimiento de datos requerido
- Es la selectividad de los filtros de búsqueda.
- El tipo y el diseño físico de los datos en el almacenamiento.
- Estructura general de la búsqueda.
- Las estadísticas históricas de las ejecuciones de consultas anteriores.
Habilita el entorno de ejecución avanzado
Para habilitar el tiempo de ejecución avanzado para tu proyecto u organización, usa la instrucción ALTER PROJECT
o ALTER ORGANIZATION
para cambiar la configuración predeterminada. En la instrucción, establece el argumento query_runtime
en 'advanced'
. Por ejemplo:
ALTER PROJECTPROJECT_NAME
SET OPTIONS ( `region-LOCATION
.query_runtime` = 'advanced' );
Reemplaza lo siguiente:
PROJECT_NAME
: el nombre del proyectoLOCATION
: Es la ubicación del proyecto
El cambio puede tardar varios minutos en aplicarse.
Una vez que habilites el tiempo de ejecución avanzado, las búsquedas aptas del proyecto o la organización usarán el tiempo de ejecución avanzado, independientemente del usuario que haya creado el trabajo de búsqueda.
Inhabilita el entorno de ejecución avanzado
Para inhabilitar el tiempo de ejecución avanzado de tu proyecto u organización, usa la instrucción ALTER PROJECT
o ALTER ORGANIZATION
para cambiar la configuración predeterminada. En la instrucción, establece el argumento query_runtime
en NULL
. Por ejemplo:
ALTER PROJECTPROJECT_NAME
SET OPTIONS ( `region-LOCATION
.query_runtime` = NULL );
Reemplaza lo siguiente:
PROJECT_NAME
: el nombre del proyectoLOCATION
: Es la ubicación del proyecto
El cambio puede tardar varios minutos en aplicarse.
Evalúa el rendimiento de las consultas
Puedes usar el explorador de trabajos administrativos y las vistas de INFORMATION_SCHEMA
para evaluar el efecto del tiempo de ejecución avanzado en el tiempo de ejecución de la consulta y el uso de ranuras.
Sigue estos pasos para evaluar el rendimiento de las consultas con y sin el tiempo de ejecución avanzado habilitado:
En la consola de Trusted Cloud , ve a la página BigQuery.
Abre una pestaña nueva en el editor de consultas.
Inhabilita el uso de resultados de consultas almacenados en caché para esa pestaña de consulta.
Escribe o copia tus consultas de prueba en la pestaña de consultas.
Ejecuta tus consultas de prueba varias veces para establecer el rendimiento de referencia. Después de cada ejecución, determina las métricas de rendimiento de la consulta de la siguiente manera:
- Visualiza los detalles de la ejecución de la consulta en el explorador de trabajos administrativos.
Para recuperar los datos de rendimiento del trabajo de la vista
INFORMATION_SCHEMA.JOBS_BY_USER
, ejecuta la siguiente consulta en una pestaña de consulta nueva:SELECT job_id, end_time - start_time AS duration, total_slot_ms, query FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_USER WHERE creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY) AND job_type='QUERY' AND total_slot_ms IS NOT NULL ORDER BY creation_time DESC, query ASC LIMIT 1000;
Repite el paso 5.
Compara las métricas de latencia de las consultas y de uso de ranuras para las consultas de prueba antes y después de habilitar el tiempo de ejecución avanzado.