Introducción a las vistas materializadas

En este documento, se proporciona una descripción general de la asistencia de BigQuery para las vistas materializadas. Antes de leer este documento, familiarízate con BigQuery y las vistasestándar de BigQuery.

Descripción general

En BigQuery, las vistas materializadas son vistas procesadas previamente que almacenan periódicamente en caché los resultados de una consulta para aumentar el rendimiento y la eficacia. BigQuery aprovecha los resultados procesados previamente de las vistas materializadas y, siempre que sea posible, lee solo los cambios delta de la tabla base para calcular los resultados actualizados. Las vistas materializadas se pueden consultar directamente, o bien el optimizador de BigQuery puede usarlas para procesar consultas en las tablas base.

Las consultas que usan vistas materializadas suelen ser más rápidas y consumen menos recursos que las que recuperan los mismos datos solo de la tabla base. Las vistas materializadas pueden mejorar el rendimiento de las cargas de trabajo que tienen las características de las consultas comunes y repetidas.

¿Por qué usar las vistas materializadas?

Las vistas materializadas de BigQuery pueden ser útiles de las siguientes maneras:

  • Reducción del tiempo de ejecución y del costo de las consultas con funciones agregadas. El mayor beneficio se obtiene cuando el costo de procesamiento de una consulta es alto y el conjunto de datos mostrado es pequeño. Rendimiento más rápido de las consultas: Si tienes una tabla sin procesar y realizas una agregación de estilo de procesamiento analítico en línea (OLAP) que requiere un procesamiento significativo, y tienes consultas predecibles y repetidas, como extraer, transformar, cargar (ETL) o canalizaciones de inteligencia empresarial (IE), debes usar vistas materializadas de BigQuery.

  • Optimización automática y transparente de consultas de BigQuery. El optimizador de BigQuery usa una vista materializada (si está disponible) para mejorar el plan de ejecución de las consultas. Esta optimización no requiere ningún cambio en las consultas.

  • Agregación de datos en tiempo real Si deseas acceder a los datos para tomar decisiones en tiempo real, puedes usar las vistas materializadas de BigQuery con la transmisión de BigQuery para realizar agregaciones en tiempo real y proporcionar información actualizada.

Permisos necesarios

A fin de obtener información sobre los permisos necesarios para realizar operaciones en vistas materializadas, consulta los permisos necesarios para trabajar con vistas materializadas.

Comparación con otras técnicas de BigQuery

En la siguiente tabla, se resumen las similitudes y diferencias entre el almacenamiento en caché, las consultas programadas, las vistas estándar y las vistas materializadas de BigQuery.

Componente Almacenamiento en caché Consultas programadas Vistas estándar Vistas materializadas
Rendimiento No No
Consulta admitida Todos Todos Todos Agregación: filtros y grupos
Partición y agrupamiento en clústeres No N/A
Actualización incremental No No No
Almacenamiento adicional No No
Reescritura de consultas No No No
Costos de mantenimiento No N/A
Inactividad de los datos Nunca Nunca Nunca
Limitado a una sola tabla No No No

Interacción con otras funciones de BigQuery

Las siguientes características de BigQuery funcionan de manera transparente con vistas materializadas:

  • Explicación del plan de consultas: El plan de consulta refleja las vistas materializadas que se analizarán (si las hubiera) y cuántos bytes se leerán de las vistas materializadas y tabla base combinadas.

  • Almacenamiento de consultas en caché: Los resultados de una consulta que se vuelve a escribir con una vista materializada pueden almacenarse en caché, de acuerdo con las limitaciones habituales (uso de funciones deterministas, sin transmisión a la tabla base, etcétera).

  • Cálculo de costos: Con la facturación a pedido, si una consulta se reescribe con una o más vistas materializadas y, como resultado, analiza menos bytes que analizar la tabla base completa, luego consulta es menor.

  • Restricción de costos: Si estableciste un valor para la cantidad máxima de bytes facturados y una consulta lee una cantidad de bytes más allá del límite, la consulta falla. sin incurrir en cargos, ya sea que la consulta use vistas materializadas, la tabla base o ambas.

  • Estimación de costos con ejecución de prueba: Una ejecución de prueba replica la lógica de reescritura de la consulta con las vistas materializadas disponibles y proporciona una estimación de los costos. Puedes usar esta característica para probar si una consulta específica usa vistas materializadas.

Limitaciones

  • No puedes manipular directamente o leer contenido sin procesar en vistas materializadas. Esto significa que no se admiten las siguientes acciones:

    • Copiar vistas materializadas como fuente o destino de un trabajo de copia
    • Exportar vistas materializadas
    • Cargar datos en vistas materializadas
    • Escribir resultados de consultas en vistas materializadas
    • Ejecutar declaraciones DML en vistas materializadas
  • Una vista materializada debe residir en la misma organización que la tabla base o en el mismo proyecto si este no pertenece a una organización.

  • Se puede hacer referencia a cada tabla base por hasta 20 vistas materializadas del mismo conjunto de datos, hasta 100 vistas materializadas del mismo proyecto y hasta 500 vistas materializadas de toda la organización.

  • Solo se consideran las vistas materializadas del mismo conjunto de datos para la reescritura automática de consultas (o el ajuste inteligente).

  • Las vistas materializadas admiten una sintaxis de SQL restringida y un conjunto limitado de funciones de agregación. Para obtener más información, consulta Vistas materializadas admitidas.

  • Una vista materializada solo puede hacer referencia a una sola tabla y no puede usar uniones.

  • Las vistas materializadas no se pueden anidar en otras vistas materializadas.

  • Solo puedes usar el dialecto de SQL estándar para las vistas materializadas.

  • Las declaraciones DDL SHOW no son compatibles con las vistas materializadas.

  • Las declaraciones DDL ALTER que no sean ALTER con SET OPTIONS no son compatibles con las vistas materializadas.

  • Si borras la tabla base sin borrar primero la vista materializada, las consultas sobre la vista materializada fallarán, al igual que las actualizaciones. Si decides volver a crear la tabla base, también debes volver a crear la vista materializada.

  • Después de crear una vista materializada sobre una tabla base particionada, el vencimiento de la partición de la tabla no se puede cambiar. Para cambiar el vencimiento de la partición de la tabla base, primero debes borrar todas las vistas materializadas que se basan en la tabla particionada.

  • Hay algunas limitaciones en el uso de las declaraciones ARRAY_AGG y JOIN en las vistas materializadas. Para obtener más información, consulta las consideraciones de ARRAY_AGG y las consideraciones de JOIN.

Precios de vistas materializadas

Los costos se asocian con los siguientes aspectos de las vistas materializadas de BigQuery:

  • Consulta de vistas materializadas
  • Mantenimiento de vistas materializadas, como cuando se actualizan las vistas materializadas
  • Almacenamiento de tablas de vistas materializadas
Componente Precios a pedido Tasa fija
Consultas Bytes procesados por las vistas materializadas y las partes necesarias de las tablas base.1 Las ranuras se consumen con el tiempo de consulta.
Mantenimiento Bytes procesados durante el tiempo de actualización. Las ranuras se consumen con el tiempo de actualización.
Almacenamiento Bytes almacenados en vistas materializadas. Bytes almacenados en vistas materializadas.

1 Si la tabla base es solo para agregar, de esta solo se procesa el delta desde la última actualización de la vista materializada. Para obtener más información, consulta Actualizaciones incrementales.

Detalles del costo de almacenamiento

Para los valores agregados AVG, ARRAY_AGG y APPROX_COUNT_DISTINCT de una vista materializada, el valor final no se almacena directamente. En cambio, BigQuery almacena de forma interna una vista materializada como un boceto intermedio, que se usa para producir el valor final.

Por ejemplo, considera una vista materializada que se crea con el siguiente comando:

CREATE MATERIALIZED VIEW project-id.my_dataset.my_mv_table AS
SELECT date, AVG(net_paid) AS avg_paid
FROM project-id.my_dataset.my_base_table
GROUP BY date

Aunque la columna avg_paid se procesa como NUMERIC o FLOAT64 para el usuario, se almacena como BYTES de forma interna, y su contenido es un boceto intermedio de formato propietario. Para el cálculo de tamaño de datos, la columna se trata como BYTES.

Próximos pasos