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 lógicas 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 cuando es posible lee solo los cambios que de la tabla base para procesar 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 las tablas 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.
Las siguientes son características clave de las vistas materializadas:
- No requieren mantenimiento. Las vistas materializadas se precalculan en segundo plano cuando las tablas base cambian. Cualquier cambio en los datos incrementales de las tablas base se agrega de forma automática a las vistas materializadas, sin necesidad de que el usuario realice ninguna acción.
- Datos nuevos. Las vistas materializadas muestran datos nuevos. Si los cambios en las tablas base pueden invalidar la vista materializada, los datos se leen de forma directa desde las tablas base. Si los cambios en las tablas base no invalidan la vista materializada, los demás datos se leerán desde la vista materializada y solo se leerán los cambios desde las tablas base.
- Ajuste inteligente. Si alguna parte de una consulta en la tabla de base se puede resolver mediante una consulta en la vista materializada, se redirige la consulta con BigQuery para usar la vista materializada y así mejorar el rendimiento y la eficiencia.
Casos de uso
Las vistas materializadas pueden optimizar las consultas con un costo de procesamiento elevado y resultados con conjuntos de datos pequeños. Los procesos que se benefician de las vistas materializadas incluyen operaciones de procesamiento analítico en línea (OLAP) que requieren un procesamiento significativo con consultas predecibles y repetidas, como las de procesos de extracción, transformación y carga (ETL) o las canalizaciones de inteligencia empresarial (IE).
En los siguientes casos de uso, se destaca el valor de las vistas materializadas. Las vistas materializadas pueden mejorar el rendimiento de las consultas si sueles requerir lo siguiente:
- Agregación previa de datos. Agregación de datos de transmisión.
- Filtro previo de datos. Ejecuta consultas que solo lean un subconjunto específico de la tabla.
- Unión previa de datos. Uniones de consultas, en especial entre tablas grandes y pequeñas.
- Reagrupación de los datos en clústeres. Ejecuta consultas que se beneficiarían de un esquema de agrupamiento en clústeres que difiera de las tablas base.
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 lógicas y las vistas materializadas de BigQuery.
Componente | Almacenamiento en caché | Consultas programadas | Vistas lógicas | Vistas materializadas |
---|---|---|---|---|
Optimiza el procesamiento | Sí | No | No | Sí |
Compatibilidad con consultas | Todos | Todos | Todos | Limitado1 |
Partición y agrupamiento en clústeres | No | Sí | N/A | Sí |
Actualización incremental | No | No | No | Sí |
Almacenamiento adicional | No | Sí | No | Sí |
Reescritura de consultas | No | No | No | Sí |
Costos de mantenimiento | No | Sí | N/A | Sí |
Inactividad de los datos | Nunca | Sí | Nunca | Opcional 2 |
1 La opción --allow_non_incremental_definition
admite un rango expandido de consultas de SQL para crear vistas materializadas.
2 La opción --max_staleness
proporciona un rendimiento alto constante con costos controlados cuando se procesan conjuntos de datos grandes que cambian con frecuencia.
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 consultas refleja las vistas materializadas que se analizan (si las hay) y muestra cuántos bytes se leen de las vistas materializadas y las tablas base combinadas.
Almacenamiento de consultas en caché: Los resultados de una consulta que BigQuery 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 las tablas base, etcétera).
Restricción de costos: Si estableciste un valor para la cantidad máxima de bytes facturados y una consulta lee una cantidad de bytes que supera el límite, la consulta falla sin incurrir en cargos, sin importar si la consulta usa vistas materializadas, las tablas base o ambas.
Estimación de costos mediante ejecuciones de prueba: Una ejecución de prueba repite la lógica de reescritura de la consulta con 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 usa vistas materializadas.
Tablas habilitadas para caché de metadatos de BigLake
Vistas materializadas enTablas habilitadas para caché de metadatos de BigLake puede hacer referencia a datos estructurados almacenados en Cloud Storage y Amazon Simple Storage Service (Amazon S3). Estas vistas materializadas funcionan como vistas materializadas en tablas de almacenamiento administradas por BigQuery, incluidos los beneficios de actualización automática y ajuste inteligente. Otros beneficios incluyen la agregación, el filtrado previo y la unión previa de los datos almacenados fuera de BigQuery. Las vistas materializadas en tablas de BigLake se almacenan en el almacenamiento administrado de BigQuery y tienen todas las características de este.
Cuando creas una vista materializada en una tabla de BigLake de Amazon S3, los datos de la vista materializada no están disponibles para las uniones con datos de BigQuery. Si deseas que los datos de Amazon S3 en una vista materializada estén disponibles para las uniones, crea una réplica de la vista materializada. Solo puedes crear réplicas de vistas materializadas en vistas de materiales autorizadas.
Réplicas de vista materializadas
BigQuery te permite crear vistas materializadas en tablas habilitadas para caché de metadatos de BigLake en datos de Amazon Simple Storage Service (Amazon S3), Apache Iceberg o Salesforce Data Cloud.
Una réplica de vista materializada te permite usar los datos de vista materializadas de Amazon S3, Iceberg o Data Cloud en las consultas y, al mismo tiempo, evitar los costos de salida de datos y mejorar el rendimiento de las consultas. Una réplica de vista materializada hace esto mediante la replicación de los datos de Amazon S3, Iceberg o Data Cloud en un conjunto de datos en una región de BigQuery compatible, de modo que los datos estén disponibles de forma local en BigQuery.
Obtén información sobre cómo crear réplicas de vista materializadas.
Actualidad de los datos
Después de crear la réplica de vista materializada, el proceso de replicación sondea la vista materializada de origen para detectar cambios y replica los datos en la réplica de vista materializada. Los datos se replican en el intervalo que especificaste en la opción replication_interval_seconds
de la declaración CREATE MATERIALIZED VIEW AS REPLICA OF
.
Además del intervalo de replicación, la actualidad de los datos de réplica de vista materializadas también se ve afectada por la frecuencia con la que se actualiza la vista materializada de origen y con qué frecuencia se actualiza la caché de metadatos de la tabla de Amazon S3, Iceberg o Data Cloud que usa la vista materializada.
Puedes comprobar la actualidad de los datos de la réplica de vista materializada y los recursos en los que se basa mediante la consola de Google Cloud:
- Para actualizar la réplica de vista materializada, consulta el campo Última modificación en el panel Detalles de la réplica de vista materializada.
- Para obtener información actualizada de la vista materializada de origen, consulta el campo Última modificación en el panel Detalles de la vista materializada.
- Para obtener información sobre la actualización de la caché de metadatos de la tabla de origen de Amazon S3, Iceberg o Data Cloud, consulta el campo Inactividad máxima en el panel Detalles de la vista materializada.
Regiones admitidas
Usa las asignaciones de ubicación en la siguiente tabla cuando crees réplicas de vista materializadas:
Ubicación de la vista materializada de origen | Ubicación de la réplica de vista materializada |
---|---|
aws-us-east-1 |
La multirregión US o cualquiera de las siguientes regiones:
|
aws-us-west-2 |
La multirregión US o cualquiera de las siguientes regiones:
|
aws-eu-west-1 |
La multirregión EU o cualquiera de las siguientes regiones:
|
aws-ap-northeast-2 |
Cualquiera de las siguientes regiones:
|
aws-ap-southeast-2 |
Cualquiera de las siguientes regiones:
|
Limitaciones
- Es posible que se apliquen límites a las referencias de tablas base y otras restricciones. Para obtener más información sobre los límites de vistas materializadas, consulta Cuotas y límites.
- Los datos de una vista materializada no se pueden actualizar ni manipular directamente mediante operaciones como
COPY
,EXPORT
,LOAD
,WRITE
o declaraciones de lenguaje de manipulación de datos (DML). - No puedes reemplazar una vista materializada existente con una vista del mismo nombre.
- La vista de SQL no se puede actualizar después de crear la vista materializada.
- Una vista materializada debe residir en la misma organización que las tablas base o en el mismo proyecto si este no pertenece a una organización.
- Solo se consideran las vistas materializadas del mismo conjunto de datos para 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.
- Las vistas materializadas no se pueden anidar en otras vistas materializadas.
- Las vistas materializadas no pueden consultar tablas comodín o externas, vistas lógicas1, instantáneas o tablas con captura de datos modificados habilitada.
- Solo se admite el dialecto de GoogleSQL para las vistas materializadas.
- Puedes establecer descripciones para las vistas materializadas, pero no puedes establecer descripciones de las columnas individuales en la vista materializada.
- Si borras una tabla base sin borrar primero la vista materializada, las consultas y las actualizaciones de la vista materializada fallarán. Si vuelves a crear la tabla base, también debes volver a crear la vista materializada.
1La compatibilidad con referencias de vistas lógicas se encuentra en vista previa. Para obtener más información, consulta Vistas lógicas de referencia.
Limitaciones de las vistas materializadas en tablas de BigLake
- No se admite la partición de la vista materializada. Las tablas base pueden usar la partición en Hive, pero el almacenamiento de vista materializada no se puede particionar en tablas de BigLake. Esto significa que cualquier eliminación de una tabla base provoca una actualización completa de la vista materializada. Para obtener más detalles, consulta Actualizaciones incrementales.
- El valor de la opción
-max_staleness
de la vista materializada debe ser mayor que el de la tabla base de BigLake. - Las uniones entre las tablas administradas de BigQuery y las tablas de BigLake no son compatibles con una sola definición de vista materializada.
Limitaciones de las réplicas de vistas materializadas
- No puedes crear réplicas de vistas materializadas para las vistas materializadas que se basan en tablas que usen la seguridad a nivel de la fila o la seguridad a nivel de la columna.
- No puedes usar claves de encriptación administradas por el cliente (CMEK) con la vista materializada de origen o la réplica de vista materializada.
- Solo puedes crear réplicas de vistas materializadas para las vistas materializadas que se basan en cualquier tabla que use el almacenamiento en caché de metadatos.
- Puedes crear solo una réplica de vista materializada para una vista materializada de origen determinada.
- Solo puedes crear réplicas de vistas materializadas para las vistas materializadas autorizadas.
Precios de las vistas materializadas
Los costos se asocian con los siguientes aspectos de las vistas materializadas:
- Consulta de vistas materializadas
- Mantenimiento de vistas materializadas, como cuando se actualizan las vistas materializadas. El costo de la actualización automática se factura al proyecto en el que reside la vista. El costo de la actualización manual se factura al proyecto en el que se ejecuta el trabajo de actualización manual. Para obtener más información sobre cómo controlar el costo de mantenimiento, consulta Actualiza el mantenimiento del trabajo.
- Almacenamiento de tablas de vistas materializadas
Componente | Precios según demanda | Precios basados en la capacidad |
---|---|---|
Realiza 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. |
1Cuando es posible, BigQuery solo lee los cambios desde la última vez que se actualizó la vista. 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 el cálculo del tamaño de los datos, la columna se trata como BYTES
.
Costos de réplicas de vista materializadas
El uso de réplicas de vistas materializadas genera costos de procesamiento, transferencia de datos salientes y almacenamiento.