Vistas materializadas continuas
En este documento, se proporciona una descripción general de las vistas materializadas continuas y sus casos de uso más comunes. Antes de leer esta página, debes familiarizarte con la descripción general de Bigtable.
En Bigtable, una vista materializada continua es un resultado completamente administrado y calculado previamente de una consulta en SQL que se ejecuta de forma continua y que actualiza de manera incremental la vista materializada continua. La consulta en SQL puede incluir agregaciones y transformaciones en la tabla subyacente de Bigtable. 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 agregar previamente tus datos a medida que los ingieres. Además, una vista materializada continua tiene un esquema diferente al de su tabla de origen, y presenta los datos de la tabla de origen en una estructura optimizada para consultas con diferentes patrones de búsqueda que las consultas que se usan en la tabla de origen.
Las siguientes son características clave de las vistas materializadas continuas en Bigtable:
- No requieren mantenimiento: Una vista materializada continua se precalcula en segundo plano. Los cambios de datos en la tabla de origen, incluidas las actualizaciones y las eliminaciones, se propagan automáticamente en segundo plano a la vista materializada continua, sin necesidad de que el usuario realice ninguna acción.
- 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 recolección de elementos no utilizados: Una vista materializada continua se mantiene sincronizada con las políticas de recolección de elementos no utilizados de su tabla de origen y se actualiza automáticamente a medida que caducan o se borran los datos de la tabla.
- 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 de forma adecuada o usan el ajuste de escala automático.
- Coherencia eventual: Las vistas materializadas continuas se calculan en segundo plano. Es posible que las actualizaciones de una vista materializada continua se retrasen, 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 usas para definir una vista materializada continua se tratan como datos de servicio. Por este motivo, no crees una vista materializada continua con clave de fila, calificadores de columna o valores de columna que contengan información sensible. Para obtener información sobre cómo se manejan los datos de servicio, consulta el Google Cloud Aviso de Privacidad.
Puedes crear una vista materializada continua con Google Cloud CLI, el editor de consultas de Bigtable Studio en la consola de Google Cloud o las bibliotecas cliente de Bigtable para Java y Go.
Puedes leer desde una vista materializada continua con lo siguiente:
- Editor de consultas de Bigtable Studio
- Las bibliotecas cliente de Bigtable que admiten consultas en SQL
- Llamada a la API de
ReadRows
con las bibliotecas cliente de Bigtable para Java y Go
Para obtener más información, consulta Cómo leer desde 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 con SQL. Una vez creada, una vista materializada continua reestructura de forma continua y automática los datos de la tabla fuente en el formato definido por la consulta en SQL. Luego, en lugar de consultar tu 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 de uso:
- Agregación previa de datos: Puedes usar una vista materializada continua para agregar los datos entrantes en todas las filas. Esto te permite recuperar rápidamente datos resumidos y agregados, como las métricas de los paneles.
- Automatización de arquitecturas lambda y kappa: Si tu aplicación requiere una combinación de datos de canalización de transmisión en tiempo real y datos de canalización por lotes que contengan datos históricos, usa vistas materializadas continuas. Estas vistas proporcionan 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 herramientas adicionales de procesamiento de transmisiones 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 las búsquedas con patrones diferentes de los que usas en las búsquedas en la tabla de origen. Para obtener más información sobre estos patrones, consulta Crea un índice secundario global.
Para comparar las vistas materializadas continuas con otros tipos de vistas de Bigtable, consulta Tablas y vistas.
Cuándo usar los contadores
Otra forma de agregar previamente tus datos es crear contadores distribuidos con celdas de agregación.
Las escrituras en celdas agregadas se pueden leer de inmediato desde el clúster en el que se escriben. Las vistas materializadas continuas se procesan después de que se escriben los datos y, finalmente, 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 necesitan abarcar varias filas
- Si necesitas leer de inmediato tus escrituras desde el clúster en el que se escribieron
Usa vistas materializadas continuas cuando quieras hacer lo siguiente:
- Genera una clave diferente para las consultas en tus agregaciones
- Cómo ver los cambios en la tabla base reflejados en tus agregaciones
- Cómo combinar datos automáticamente en varias filas
Usa una combinación de contadores y vistas materializadas continuas para casos de uso como los siguientes:
- Captura métricas nuevas en una celda agregada, pero conserva los resúmenes históricos de esas métricas.
- Combina métricas en una vista materializada continua
Aprovisionamiento y rendimiento de recursos
El procesamiento en curso de las vistas materializadas continuas se realiza como un trabajo en segundo plano de baja prioridad. Como resultado, tiene un impacto mínimo en el rendimiento de la aplicación y en la latencia de lectura y escritura en la tabla de origen, siempre que tus clústeres tengan el tamaño adecuado.
Como práctica recomendada para asegurarte de que los datos de la vista materializada continua se mantengan actualizados, habilita el ajuste de escala automático para los clústeres de la instancia que contiene tu vista materializada continua. El ajuste de escala automático agrega automáticamente la cantidad suficiente de nodos para controlar la sobrecarga de procesamiento y, luego, los quita cuando ya no son necesarios. Esto ayuda a garantizar que haya suficiente capacidad de procesamiento disponible durante la ejecución de la consulta en SQL que se ejecuta de forma continua. El ajuste de escala automático también puede garantizar que tengas suficientes nodos para satisfacer las necesidades de almacenamiento de tus vistas materializadas continuas.
Las vistas materializadas continuas se incluyen en el límite de 1,000 tablas por instancia.
Almacenamiento
Para 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 existe 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 ajuste de escala automático permite que tus clústeres aumenten o disminuyan su tamaño a medida que cambian los requisitos de almacenamiento.
Se debe crear una vista materializada continua 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 que resultan de la consulta en SQL en la que se basa la vista materializada continua. Esto significa que contiene valores agregados definidos por cláusulas de agregación en la consulta en 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 en el 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 en SQL que define la vista materializada continua. Por ejemplo, si tu consulta agrega datos en toda la tabla, Bigtable mantiene el equivalente de toda la tabla en el almacenamiento intermedio. Una vista materializada continua basada en una consulta de rangos o columnas de clave de fila específicos solo conserva esas filas o columnas en el almacenamiento intermedio.
El almacenamiento intermedio persiste durante la vida útil de la vista materializada continua para admitir de manera 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 en el almacenamiento intermedio. Para obtener estadísticas 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 manera que las tablas. En cambio, cada clúster de una instancia procesa la vista materializada continua de forma independiente, con su propia copia de la tabla de origen. Esto significa, por ejemplo, que los datos que se escriben en una tabla de origen en el clúster A se replican en la tabla del clúster B y, luego, en la vista materializada continua del clúster B.
Costos
No hay costos 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án las tarifas estándar. Cuando crees una vista materializada continua, es posible que observes aumentos en los siguientes aspectos:
- 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.
- Procesamiento: La sincronización continua de la tabla de origen y la vista materializada continua requieren procesamiento de CPU, y es posible que tus clústeres necesiten más nodos para controlar el trabajo en segundo plano adicional.
Al mismo tiempo, es posible que veas una disminución en el procesamiento de la tabla de origen, por ejemplo, cuando ya no realices análisis de rangos de los datos para llevar a cabo cálculos repetidos y otras consultas menos eficientes. También puedes eliminar la necesidad de ejecutar trabajos de 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 supervisar el uso de tus vistas materializadas continuas, consulta Métricas.
Métricas
Una vista materializada continua informa varias métricas clave a Cloud Logging que puedes usar para supervisar tus vistas materializadas continuas.
Métrica | Descripción |
---|---|
materialized_view/max_delay |
Límite superior de la demora en el procesamiento de la vista materializada continua |
materialized_view/storage |
Cantidad de datos utilizados para el almacenamiento de la vista materializada continua en bytes |
materialized_view/intermediate_storage |
Cantidad de datos que utiliza el procesamiento intermedio para la vista materializada continua en bytes |
table/materialized_view_intermediate_storage |
Cantidad de datos que usa el procesamiento intermedio para las vistas materializadas continuas definidas en esta tabla |
materialized_view/user_errors |
Es la cantidad de errores de los datos del usuario para la vista materializada continua. Los errores del usuario impiden que los datos se propaguen a la vista. |
materialized_view/system_errors |
Cantidad de errores del sistema para la vista materializada continua |
También puedes usar muchas métricas de tablas de Bigtable para supervisar una vista materializada continua, con el ID de la vista materializada continua en lugar del ID de la tabla. En particular, 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 para las solicitudes por segundo, la latencia y el rendimiento se generan cuando lees una vista materializada continua con el método ReadRows
de la API de Data. Para obtener más información, consulta Métricas.
Para comenzar a usar Cloud Logging, consulta Descripción general de consultas y 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 serNULL
. Para obtener más información, consulta Claves de filas definidas por la cláusulaGROUP BY
. - No puedes modificar la consulta en SQL que define una vista materializada continua. Debes borrar 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 recolección de elementos no utilizados para una vista materializada continua. Todas las políticas de retención de datos se rigen por las políticas de recolección de elementos no utilizados de la tabla de origen, y la recolección de elementos no utilizados del origen se refleja automáticamente en la vista materializada continua.
¿Qué sigue?
- Consulta continua de vistas materializadas
- Crea y administra vistas materializadas continuas
- Crea un índice secundario global
- Prácticas recomendadas sobre el diseño del esquema
- Recuento distribuido en Bigtable