Vistas materializadas continuas
En este documento, se proporciona una descripción general de las vistas materializadas continuas y sus casos de uso 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 previamente calculado 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 subyacente de Bigtable. El uso de vistas materializadas contínuas 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 no agregados que definen la clave de agrupación
Las vistas materializadas continuas te permiten agregar previamente tus datos a medida que los transfieres. Además, una vista materializada continua tiene un esquema diferente al de su tabla de origen, lo que presenta los datos de la tabla de origen en una estructura optimizada para consultas con patrones de búsqueda diferentes a 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 base, incluidas las actualizaciones y 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 las consultas de GoogleSQL para 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 permanece 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 los datos de la tabla vencen o se borran.
- 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 fuente 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 materializados continuos siempre son coherentes con el tiempo.
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 de una vista materializada continua con lo siguiente:
- Editor de consultas de Bigtable Studio
- Las bibliotecas cliente de Bigtable que admiten consultas 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 representación nueva de tus datos de Bigtable con SQL. Después de crearse, una vista materializada continua reestructura de forma automática y continua los datos de la tabla fuente en el formato que define la consulta de 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 de material 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 datos entrantes en filas. Esto es útil cuando deseas 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 contienen datos históricos, las vistas materializadas continuas proporcionan una vista coherente de todas las fuentes de datos, sin necesidad de herramientas adicionales de procesamiento de transmisión ni trabajos ETL personalizados.
Para comparar las vistas materializadas continuas con otros tipos de vistas de Bigtable, consulta Tablas y vistas.
Cuándo usar contadores
Otra forma de agregar previamente tus datos es crear contadores distribuidos con celdas agregadas.
Las operaciones de escritura 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, 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 es necesario que se apliquen a varias filas
- Si necesitas leer de inmediato las operaciones de escritura del clúster en el que se escribieron
Usa vistas materializadas continuas cuando quieras hacer lo siguiente:
- Genera una clave diferente para las consultas a tus agregaciones
- Consulta los cambios en la tabla base reflejados en tus agregaciones
- Combina 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 actualizadas 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 continuo de las vistas materializadas continuas se produce como un trabajo en segundo plano de prioridad baja. Como resultado, tiene un impacto mínimo en el rendimiento de la aplicación y 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 permanezcan actualizados, habilita el ajuste de escala automático para los clústeres de la instancia que contiene tu vista materializada continua. El escalamiento automático agrega automáticamente suficientes 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 controlar las necesidades de almacenamiento de tus vistas materializadas continuas.
Las vistas materializadas se consideran 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, existe una vista materializada continua en todos los clústeres de la instancia que la contiene. Los clústeres de tu instancia deben tener nodos suficientes para almacenar la tabla de origen y cualquier vista materializada continua basada en la tabla. El ajuste de escala automático garantiza que tus clústeres aumenten o disminuyan de 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 de la tabla de origen.
Almacenamiento de vistas materializadas continuas
Una vista materializada continua contiene datos que resultan de la consulta de 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 no agregados que definen la clave de agrupación.
Almacenamiento intermedio
Para admitir la sincronización de una vista materializada continua con su tabla fuente, Bigtable usa 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 SQL que define la vista materializada continua. Por ejemplo, si tu consulta agrega datos de toda la tabla, Bigtable contiene el equivalente de toda la tabla en el almacenamiento intermedio. Una vista materializada continua basada en una consulta de rangos o columnas de claves de fila específicos solo conserva esas filas o columnas en el almacenamiento intermedio.
El almacenamiento intermedio persiste durante el ciclo de vida de la vista materializada continua para admitir de manera eficiente las actualizaciones incrementales de la vista materializada 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 de 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 fuente. Esto significa, por ejemplo, que los datos que se escriben en una tabla fuente del 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 un costo por recurso por usar vistas materializadas continuas. Sin embargo, la creación y sincronización de vistas materializadas continuas requieren procesamiento y almacenamiento, y se te cobrará según las tarifas estándar. Cuando crees una vista materializada continua, es posible que veas aumentos en lo siguiente:
- 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.
- Cálculo: La sincronización continua de la tabla de origen y la vista materializada continua requiere 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, como cuando ya no realizas análisis de rango de los datos para realizar 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. Si deseas obtener información sobre las métricas que pueden ayudarte a supervisar el uso continuo de las vistas materializadas, 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 de procesamiento de la vista materializada continua |
materialized_view/storage |
Cantidad de datos utilizados para el almacenamiento continuo de vistas materializadas en bytes |
materialized_view/intermediate_storage |
Cantidad de datos que usa el procesamiento intermedio para la vista materializada contínua 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 |
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 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 la CPU, lo que puede ayudarte a comprender su impacto. Las métricas de Bigtable para las solicitudes por segundo, la latencia y la capacidad de procesamiento se generan cuando lees una vista materializada continua con el método ReadRows
de la API de datos. Para obtener más información, consulta Métricas.
Para comenzar a usar Cloud Logging, consulta Descripción general de consultas y registros.
Limitaciones
- No puedes modificar la consulta de SQL que define una vista materializada continua. Debes borrar la vista materializada continua y crear una nueva con tus cambios.
- No puedes crear una vista materializada continua de otra vista materializada continua o de una vista lógica.
- No puedes configurar políticas de recolección de elementos no utilizados para una vista materializada continua. Toda la retención de datos se rige por las políticas de recolección de basura de la tabla de origen, y la recolección de basura de la fuente se refleja automáticamente en la vista materializada continua.
¿Qué sigue?
- Consulta continua de vistas materializadas
- Crea y administra vistas materializadas continuas
- Prácticas recomendadas sobre el diseño del esquema
- Cálculo distribuido en Bigtable