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 sirven 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 consecuencias en cuanto a los 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.

Entre los beneficios de las vistas lógicas, se 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. Como la consulta se ejecuta en el tiempo de 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 la fila sin duplicar datos.
  • Flexibilidad de SQL. Admite toda la gama de SQL de BigQuery, incluidas las funciones de ventana complejas, las funciones definidas por el usuario (UDF) y todos los tipos de unión.

Vistas materializadas

Las vistas materializadas son vistas procesadas previamente que almacenan de forma periódica los resultados de una consulta en SQL. A diferencia de las vistas lógicas, almacenan físicamente los datos procesados, lo que permite que BigQuery entregue resultados más rápido sin procesar repetidamente los datos base sin procesar. Esto puede reducir la latencia de las consultas para conjuntos de datos grandes mediante el procesamiento previo de 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. Esto se logra de la siguiente manera:

  • Actualización automática. Un proceso en segundo plano actualiza las vistas materializadas cuando cambian las tablas base.
  • Actualidad de los datos. Si se produce 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 la vista materializada puede proporcionar la respuesta de manera más eficiente.

Comparación de vistas lógicas y materializadas

Aunque las vistas lógicas son el tipo de vista predeterminado, si consultas con frecuencia una vista grande o costosa desde el punto de vista computacional, debes considerar crear una vista materializada. Las vistas lógicas son virtuales y proporcionan una referencia reutilizable a un conjunto de datos, pero no almacenan físicamente ningún dato. 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ísica (almacenada en el disco)
Ejecución Cada vez que se llama a la vista Procesamiento previo; 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ápido
Complejidad de SQL Ilimitado Limitado
Optimizado para Seguridad y abstracción Velocidad y reducción de costos
Costos de mantenimiento y almacenamiento No

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

  • Capas semánticas. Cambia el nombre de los nombres de columnas complejos por términos aptos para empresas para usuarios no técnicos.
  • Desarrollo rápido. Úsalo cuando la lógica esté en flujo y no quieras administrar la sobrecarga del almacenamiento físico.
  • Fuentes de datos consolidadas. Proporciona una fuente de datos para herramientas de visualización como Data Studio o BigQuery sharing (anteriormente Analytics Hub).

Cuándo usar vistas materializadas

  • Procesamiento previo de datos. Mejora el rendimiento de las consultas mediante la preparación de agregaciones, filtros, uniones y clústeres.
  • Aceleración del panel. Potencia las herramientas de BI como Looker que consultan con frecuencia las mismas métricas agregadas, por ejemplo, los usuarios activos diarios.
  • Análisis en tiempo real en transmisiones grandes. Puede proporcionar respuestas más rápidas en tablas que reciben datos de transmisión de alta velocidad.
  • Administración de costos. Reduce 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 en ellos, pero que no pueden acceder al conjunto de datos de origen directamente.

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 una herramienta de optimización del rendimiento para patrones de consulta 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?