Descripción general de las vistas lógicas y materializadas

BigQuery admite dos tipos de vistas, las lógicas (estándar) y las vistas materializadas, que comparten una interfaz de consulta común, pero difieren en su mecanismo, rendimiento y costo subyacentes. En este documento, se comparan las características, los beneficios y las limitaciones de cada tipo para ayudarte a elegir la vista adecuada para tu carga de trabajo.

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 su lugar, 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 a su consulta subyacente. Este proceso significa que BigQuery vuelve a ejecutar la vista cada vez que se llama.

Entre los beneficios de las vistas lógicas, se incluyen los siguientes:

  • No hay sobrecarga de almacenamiento. Como no se almacenan datos adicionales, solo pagas por el almacenamiento de las tablas base.
  • Precisión en tiempo real. Debido a 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 la seguridad a nivel de fila sin duplicar datos.
  • Flexibilidad de SQL. Admite toda la gama de SQL de BigQuery, incluidas las funciones analíticas complejas, las funciones definidas por el usuario (UDF) y todos los tipos de uniones.

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 calculados, lo que permite que BigQuery entregue resultados con mayor rapidez 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 de las consultas de uso frecuente.

Las vistas materializadas de BigQuery combinan la velocidad de los datos calculados previamente con la exactitud 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 produce una consulta mientras hay una actualización en segundo plano pendiente, BigQuery compensa automáticamente los cambios de la tabla base sin procesar 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 en términos de 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 velocidad y costos
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

  • Capas semánticas. Cambiar el nombre de las columnas complejas por términos empresariales para 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 Data Studio o BigQuery sharing (anteriormente Analytics Hub)

Cuándo usar vistas materializadas

  • Procesamiento previo de datos. Mejorar el rendimiento de las consultas preparando agregaciones, filtros, uniones y clústeres
  • Aceleración del panel. Potencia 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 las 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 intensa.

Para aprender a supervisar el uso y el rendimiento de las vistas materializadas, consulta la vista MATERIALIZED_VIEWS.

¿Qué sigue?