Introducción a las vistas materializadas

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

Descripción general

En BigQuery, las vistas materializadas son vistas procesadas con anterioridad que almacenan en caché de forma periódica los resultados de una consulta para aumentar el rendimiento y la eficiencia. BigQuery aprovecha los resultados procesados con anterioridad 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 de forma significativa el rendimiento de las cargas de trabajo que tienen la característica de consultas comunes y repetidas.

¿Por qué usar vistas materializadas?

Las vistas materializadas de BigQuery pueden ser beneficiosas 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 de consultas de BigQuery automática y transparente. El optimizador de BigQuery usa una vista materializada (si esta 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 a fin de realizar agregaciones en tiempo real y con información actualizada.

Funciones de vista previa de vistas materializadas

Además de las funciones de vistas materializadas disponibles de forma general, las siguientes características están disponibles en la vista previa:

Permisos necesarios

Si deseas obtener más información sobre los permisos necesarios para realizar operaciones en las 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 mediante una o más vistas materializadas y, como resultado, analiza menos bytes que en toda la tabla base, entonces es menos costosa.

  • Restricción de costos: Si estableciste un valor para la cantidad máxima de bytes facturados y una consulta lee una cantidad de bytes superior al límite, la consulta falla sin incurrir en cargos, sin importar si la consulta usa vistas materializadas, la tabla base o ambas.

  • Estimación de costos mediante pruebas de validación: una prueba de validación replica la lógica de reescritura de la consulta mediante las vistas materializadas disponibles y proporciona una estimación de costos. Puedes usar esta función como una forma de probar si una consulta específica utiliza 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.

  • Existen 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 ARRAY_AGG y las consideraciones JOIN.

Precios de las 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 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 momento de la 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 de 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 vez de eso, BigQuery almacena de forma interna una vista materializada como un esbozo intermedio que se usa para producir el valor final.

Por ejemplo, considera la 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 esbozo intermedio de formato propietario. Para efectos del cálculo del tamaño de los datos, la columna se trata como BYTES.

Ver la seguridad

Para controlar el acceso a las vistas de BigQuery, consulta Controla el acceso a las vistas.

Próximos pasos