Vistas materializadas continuas

En este documento se ofrece una descripción general de las vistas materializadas continuas y de los casos prácticos habituales. Antes de leer esta página, debes familiarizarte con la descripción general de Bigtable.

En Bigtable, una vista materializada continua es el resultado totalmente gestionado y precalculado de una consulta de SQL que se ejecuta de forma continua y que actualiza de forma incremental la vista materializada continua. La consulta de SQL puede incluir agregaciones y transformaciones en la tabla de Bigtable subyacente. El uso de vistas materializadas continuas puede aumentar el rendimiento y la eficiencia.

Los datos de una vista materializada continua incluyen lo siguiente:

  • Valores agregados o transformados que se derivan de los datos de la tabla de origen.
  • Valores sin agregar que definen la clave de agrupación

Las vistas materializadas continuas te permiten preagregar tus datos a medida que los ingieres. Además, una vista materializada continua tiene un esquema diferente al de su tabla de origen, que presenta los datos de la tabla de origen en una estructura optimizada para consultas con patrones de búsqueda diferentes a los que se usan en la tabla de origen.

Estas son las características principales de las vistas materializadas continuas en Bigtable:

  • Mantenimiento cero: una vista materializada continua se precalcula en segundo plano. Los cambios en los datos de la tabla de origen, incluidas las actualizaciones y las eliminaciones, se propagan automáticamente en segundo plano a la vista materializada continua, sin que los usuarios tengan que hacer nada.
  • Patrones de desarrollo de SQL: las vistas materializadas continuas se basan en GoogleSQL para las consultas de Bigtable, incluidas las funciones, los filtros y las agregaciones de SQL.
  • Sincronización con la recogida de elementos no utilizados: una vista materializada continua se mantiene sincronizada con las políticas de recogida de elementos no utilizados de su tabla de origen y se actualiza automáticamente a medida que los datos de la tabla caducan o se eliminan.
  • La latencia de lectura y escritura no se ve afectada: una vista materializada continua tiene un impacto mínimo en el rendimiento de la tabla de origen cuando los clústeres de la instancia se aprovisionan adecuadamente o usan el escalado automático.
  • Coherencia final: las vistas materializadas continuas se calculan en segundo plano. Las actualizaciones de una vista materializada continua pueden retrasarse, pero los resultados de la vista materializada continua siempre son coherentes a lo largo del tiempo.

La clave de fila, el calificador de columna y los valores de columna que se usan para definir una vista materializada continua se tratan como datos de servicio. Por este motivo, no cree una vista materializada continua con claves de fila, calificadores de columna o valores de columna que contengan información sensible. Para obtener información sobre cómo se tratan los datos del servicio, consulta el Google Cloud Aviso de Privacidad.

Puedes crear una vista materializada continua con la CLI de Google Cloud, el editor de consultas de Bigtable Studio en la Google Cloud consola o las bibliotecas de cliente de Bigtable para Java y Go.

Puedes leer desde una vista materializada continua mediante lo siguiente:

Para obtener más información, consulta Leer de una vista materializada continua.

Cuándo usar vistas materializadas continuas

Las vistas materializadas continuas te permiten definir una nueva representación de tus datos de Bigtable mediante SQL. Una vez creada, una vista materializada continua reestructura de forma continua y automática los datos de la tabla de origen en el formato definido por la consulta SQL. De esta forma, en lugar de consultar la tabla y transformar o agregar los datos después de leerlos, puedes consultar la vista materializada continua.

Las vistas materializadas continuas pueden mejorar el rendimiento de las consultas en los siguientes casos prácticos:

  • Preagregación de datos: puedes usar una vista materializada continua para agregar datos entrantes en las filas. Esto le permite recuperar rápidamente datos resumidos y agregados, como las métricas de los paneles de control.
  • Automatización de arquitecturas lambda y kappa: si tu aplicación requiere una combinación de datos de flujos de procesamiento en tiempo real y de flujos de procesamiento por lotes que contengan datos históricos, utiliza vistas materializadas continuas. Estas vistas ofrecen una perspectiva de todas las fuentes de datos que se actualiza con el tiempo para reflejar los cambios en los datos subyacentes, sin necesidad de usar herramientas de procesamiento de flujo adicionales ni trabajos de ETL personalizados.
  • Patrones de acceso secundarios: las vistas materializadas continuas crean una representación alternativa de tus datos. Esta representación se puede optimizar para consultas con patrones de búsqueda diferentes a los que se usan en las consultas de la tabla de origen. Para obtener más información sobre estos patrones, consulta Crear un índice secundario asíncrono.

Para comparar las vistas materializadas continuas con otros tipos de vistas de Bigtable, consulta Tablas y vistas.

Cuándo usar contadores

Otra forma de pre-agregar los datos es crear contadores distribuidos con celdas de agregación.

Las operaciones de escritura en celdas agregadas se pueden leer inmediatamente desde el clúster en el que se escriben. Las vistas materializadas continuas se procesan después de escribir los datos y, con el tiempo, se vuelven coherentes con la tabla de origen.

Usa contadores en lugar de vistas materializadas continuas para lo siguiente:

  • Agregaciones que no requieren filtros y no tienen que ser entre filas
  • Si necesitas leer inmediatamente las escrituras del clúster en el que se escriben

Usa vistas materializadas continuas cuando quieras hacer lo siguiente:

  • Generar una clave diferente para las consultas en tus agregaciones
  • Ver los cambios en la tabla base reflejados en las agregaciones
  • Combinar automáticamente datos de varias filas

Usa una combinación de contadores y vistas materializadas continuas en casos prácticos como los siguientes:

  • Capturar métricas actualizadas en una celda agregada, pero conservar los resúmenes históricos de esas métricas
  • Combinar métricas en una vista materializada continua

Aprovisionamiento de recursos y rendimiento

El procesamiento continuo de las vistas materializadas se lleva a cabo como una tarea en segundo plano de baja prioridad. Por lo tanto, tiene un impacto mínimo en el rendimiento de las aplicaciones y en la latencia de lectura y escritura de la tabla de origen, siempre que los clústeres tengan el tamaño adecuado.

Para que los datos de la vista materializada continua se mantengan actualizados, te recomendamos que habilites el autoescalado en los clústeres de la instancia que contiene la vista materializada continua. El autoescalado añade automáticamente suficientes nodos para gestionar la sobrecarga de procesamiento y, a continuación, los elimina cuando ya no son necesarios. De esta forma, te aseguras de que haya suficiente capacidad de cálculo disponible durante la ejecución de la consulta de SQL que se ejecuta continuamente. El autoescalado también puede asegurar que tengas suficientes nodos para cubrir las necesidades de almacenamiento de tus vistas materializadas continuas.

Las vistas materializadas continuas se incluyen en el límite de 1000 tablas por instancia.

Almacenamiento

En cada vista materializada continua, Bigtable almacena lo siguiente:

  • Los datos de la vista materializada continua
  • Almacenamiento intermedio

Al igual que cualquier tabla de Bigtable, una vista materializada continua se encuentra en todos los clústeres de la instancia que la contiene. Los clústeres de tu instancia deben tener suficientes nodos para almacenar la tabla de origen y las vistas materializadas continuas basadas en la tabla. El autoescalado permite que tus clústeres aumenten o disminuyan de tamaño a medida que cambian los requisitos de almacenamiento.

Una vista materializada continua debe crearse en la misma instancia que la tabla de origen, aunque el almacenamiento de la vista materializada continua sea distinto del de la tabla de origen.

Almacenamiento de vistas materializadas continuas

Una vista materializada continua contiene datos resultantes de la consulta SQL en la que se basa. Esto significa que contiene valores agregados definidos por cláusulas de agregación en la consulta SQL y valores sin agregar que definen la clave de agrupación.

Almacenamiento intermedio

Para admitir la sincronización de una vista materializada continua con su tabla de origen, Bigtable usa el almacenamiento intermedio para almacenar copias de los datos que necesita para actualizar de forma incremental la vista materializada continua.

La cantidad de datos del almacenamiento intermedio es aproximadamente equivalente a la cantidad de datos que se analizan en la tabla de origen para generar el resultado de la consulta SQL que define la vista materializada continua. Por ejemplo, si tu consulta agrega datos de toda la tabla, Bigtable almacena el equivalente de toda la tabla en el almacenamiento intermedio. Una vista materializada continua basada en una consulta de intervalos o columnas de claves de fila específicos solo conserva esas filas o columnas en el almacenamiento intermedio.

El almacenamiento intermedio se mantiene durante la vida útil de la vista materializada continua para admitir de forma eficiente las actualizaciones incrementales de la vista y propagar las eliminaciones de la tabla de origen a la vista materializada continua. No puedes leer los datos del almacenamiento intermedio. Para obtener información valiosa sobre el uso del almacenamiento intermedio, consulta Métricas de vistas materializadas continuas.

Replicación

En las instancias que usan la replicación, las vistas materializadas continuas no se replican de la misma forma que las tablas. En su lugar, cada clúster de una instancia procesa la vista materializada continua de forma independiente, usando su propia copia de la tabla de origen. Por ejemplo, los datos que se escriben en una tabla de origen del clúster A se replican en la tabla del clúster B y, a continuación, en la vista materializada continua del clúster B.

Costes

No se cobra ningún coste por recurso por usar vistas materializadas continuas. Sin embargo, la creación y la sincronización de vistas materializadas continuas requieren procesamiento y almacenamiento, y se te cobrará según las tarifas estándar. Cuando creas una vista materializada continua, puedes esperar que aumenten los siguientes elementos:

  • Almacenamiento: se te cobra por almacenar los datos en la vista materializada continua y por el almacenamiento intermedio. Para obtener más información, consulta Almacenamiento.
  • Computación: la sincronización continua de la tabla de origen y la vista materializada requiere procesamiento de CPU, por lo que es posible que tus clústeres necesiten más nodos para gestionar el trabajo en segundo plano adicional.

Al mismo tiempo, es posible que observes una disminución del procesamiento en la tabla de origen, por ejemplo, cuando ya no realices análisis de intervalos de los datos para llevar a cabo cálculos repetidos y otras consultas menos eficientes. También puedes eliminar la necesidad de ejecutar tareas de la canalización, como Dataflow o Spark, para agregar datos de origen y volver a escribirlos en Bigtable.

Para obtener más información sobre los precios, consulta los precios de Bigtable. Para ver las métricas que pueden ayudarte a monitorizar el uso de tus vistas materializadas continuas, consulta Métricas.

Métricas

Una vista materializada continua registra varias métricas clave en Cloud Logging que puedes usar para monitorizar tus vistas materializadas continuas.

Métrica Descripción
materialized_view/max_delay Límite superior del retraso del procesamiento de la vista materializada continua.
materialized_view/storage Cantidad de datos usados para el almacenamiento de vistas materializadas continuas en bytes.
materialized_view/intermediate_storage Cantidad de datos que usa el procesamiento intermedio de la vista materializada continua, en bytes.
table/materialized_view_intermediate_storage Cantidad de datos que usa el procesamiento intermedio de las vistas materializadas continuas definidas en esta tabla.
materialized_view/user_errors Número de errores de los datos de usuario de la vista materializada continua. Los errores de los usuarios impiden que los datos se propaguen a la vista.
materialized_view/system_errors Número de errores del sistema de la vista materializada continua

También puede usar muchas métricas de tabla de Bigtable para monitorizar una vista materializada continua. Para ello, utilice el ID de la vista materializada continua en lugar del ID de la tabla. En concreto, las vistas materializadas continuas se incluyen en el desglose de las métricas de CPU, lo que puede ayudarte a comprender su impacto. Las métricas de Bigtable de solicitudes por segundo, latencia y rendimiento se generan cuando lees una vista materializada continua mediante el método ReadRows de la API Data. Para obtener más información, consulta Métricas.

Para empezar a usar Cloud Logging, consulta el artículo Información general sobre las consultas y la visualización de registros.

Limitaciones

  • Solo puedes crear una vista materializada continua por tabla.
  • Cuando creas una vista sin un _key especificado, las columnas seleccionadas en la tabla de origen no deben ser NULL. Para obtener más información, consulta Claves de fila definidas por la cláusula GROUP BY.
  • No puedes modificar la consulta SQL que define una vista materializada continua. Debes eliminar la vista materializada continua y crear una nueva con los cambios.
  • No puedes crear una vista materializada continua de otra vista materializada continua ni de una vista lógica.
  • No puedes configurar políticas de recogida de elementos no utilizados para una vista materializada continua. La conservación de todos los datos se rige por las políticas de recogida de elementos no utilizados de la tabla de origen, y la recogida de elementos no utilizados del origen se refleja automáticamente en la vista materializada continua.

Siguientes pasos