Descripción general de las vistas lógicas y materializadas
En este documento, se describen y comparan las vistas lógicas y materializadas en BigQuery. En el almacenamiento de datos moderno, las vistas actúan como una importante capa de abstracción entre los datos sin procesar y la inteligencia empresarial. En BigQuery, los arquitectos suelen elegir entre dos tipos: vistas lógicas (estándar) y vistas materializadas. Si bien estas vistas comparten una interfaz común, sus mecanismos subyacentes, perfiles de rendimiento y costos difieren.
Vistas lógicas
Una vista lógica (estándar) es una tabla virtual definida por una consulta en SQL. No almacena ningún dato físico. En cambio, almacena la lógica de consulta necesaria para recuperar datos de las tablas base subyacentes. Cuando consultas una vista lógica, el motor de consultas de BigQuery expande la vista en su consulta subyacente. Este proceso significa que BigQuery vuelve a ejecutar la vista cada vez que se la llama.
Los beneficios de las vistas lógicas incluyen los siguientes:
- Sin sobrecarga de almacenamiento Como no se almacenan datos adicionales, solo pagas por el almacenamiento de las tablas base.
- Precisión en tiempo real: Dado que la consulta se ejecuta en el momento de la ejecución, los resultados siempre reflejan el estado más actual de las tablas base.
- Abstracción lógica. Simplifica las uniones complejas o aplica seguridad a nivel de las filas sin duplicar los datos.
- Flexibilidad de SQL. Admite el rango completo de SQL de BigQuery, incluidas las funciones de ventana complejas, las funciones definidas por el usuario (UDF) y todos los tipos de combinación.
Vistas materializadas
Las vistas materializadas son vistas procesadas previamente que almacenan periódicamente los resultados de una consulta en SQL. A diferencia de las vistas lógicas, almacenan físicamente los datos calculados, lo que permite que BigQuery proporcione resultados más rápido sin procesar repetidamente los datos base sin procesar. Esto puede reducir la latencia de las consultas para los conjuntos de datos grandes, ya que se preprocesan las consultas, y puede reducir los costos de procesamiento para las consultas que se usan con frecuencia.
Las vistas materializadas de BigQuery combinan la velocidad de los datos precalculados con la precisión de una vista en vivo. Para lograrlo, hacen lo siguiente:
- Actualización automática: Un proceso en segundo plano actualiza las vistas materializadas cuando cambian las tablas base.
- Actualidad de los datos: Si se realiza una consulta mientras hay una actualización en segundo plano pendiente, BigQuery compensa automáticamente los cambios no procesados de la tabla base para proporcionar resultados actualizados.
- Ajuste inteligente. El optimizador de consultas puede redirigir automáticamente las consultas de las tablas base a la vista materializada si determina que esta puede proporcionar la respuesta de manera más eficiente.
Comparación de vistas lógicas y materializadas
Si bien las vistas lógicas son el tipo de vista predeterminado, si realizas consultas frecuentes en una vista grande o costosa en cuanto al procesamiento, deberías considerar crear una vista materializada. Las vistas lógicas son virtuales y proporcionan una referencia reutilizable a un conjunto de datos, pero no almacenan datos físicamente. Las vistas materializadas se definen con SQL, como una vista lógica, pero almacenan de forma física los datos que BigQuery usa para mejorar el rendimiento.
En la siguiente tabla, se resumen las similitudes y diferencias entre las vistas lógicas y las vistas materializadas de BigQuery:
| Dimensión | Vista lógica | Vista materializada |
|---|---|---|
| Persistencia de datos | Ninguna (virtual) | Físico (almacenado en el disco) |
| Ejecución | Cada vez que se llama a la vista | Precalculado; actualización en segundo plano |
| Antigüedad de los datos | Nunca | Opcional 1 (a través de la actualización) |
| Rendimiento | Variable (depende de la tabla base) | Coherente y rápida |
| Complejidad de SQL | Ilimitado | Limitado |
| Optimizado para | Seguridad y abstracción | Reducción de costos y tiempos |
| Costos de mantenimiento y almacenamiento | No | Sí |
1 La opción --max_staleness mejora el rendimiento de las consultas con costos controlados cuando se procesan conjuntos de datos grandes que cambian con frecuencia.
Cuándo usar vistas lógicas
- Estructura semántica Cambia el nombre de las columnas complejas por términos comerciales para los usuarios sin conocimientos técnicos.
- Desarrollo rápido. Úsalo cuando la lógica esté en constante cambio y no quieras administrar la sobrecarga del almacenamiento físico.
- Fuentes de datos consolidadas Proporcionar una fuente de datos para herramientas de visualización, como Looker Studio o BigQuery sharing (anteriormente Analytics Hub)
Cuándo usar vistas materializadas
- Preprocesar datos. Mejora el rendimiento de las consultas preparando agregaciones, filtros, uniones y clústeres.
- Aceleración del panel Potenciar las herramientas de IE, como Looker, que consultan con frecuencia las mismas métricas agregadas (por ejemplo, los usuarios activos por día)
- Análisis en tiempo real de transmisiones grandes. Puede proporcionar respuestas más rápidas en tablas que reciben datos de transmisión de alta velocidad.
- Administración de costos Reducir el costo de las consultas repetitivas y costosas en conjuntos de datos grandes
Vistas autorizadas
También puedes crear una vista autorizada para compartir un subconjunto de datos de un conjunto de datos de origen en una vista de un conjunto de datos secundario. Luego, puedes compartir esta vista con usuarios y grupos específicos (principales) que pueden ver los datos que compartes y ejecutar consultas sobre ellos, pero que no pueden acceder directamente al conjunto de datos de origen.
Puedes crear una vista autorizada para una vista lógica o materializada. Una vista autorizada para una vista materializada se denomina vista materializada autorizada.
Prácticas recomendadas
Para un entorno de BigQuery bien diseñado, las vistas lógicas son una herramienta útil para consolidar los datos que necesitas. Reserva las vistas materializadas para usarlas como herramienta de optimización del rendimiento en patrones de consultas específicos y de alto tráfico que impliquen una agregación pesada.
Para obtener información sobre cómo supervisar el uso y el rendimiento de las vistas materializadas, consulta la vista MATERIALIZED_VIEWS.
¿Qué sigue?
- Introducción a las vistas lógicas
- Crea vistas lógicas
- Introducción a las vistas materializadas
- Crea vistas materializadas