Agrega valores en el momento de la escritura

En este documento, se proporciona una descripción general de las formas en que puedes agregar tus datos de Bigtable en el momento de la escritura. Antes de leer este documento, asegúrate de estar familiarizado con la descripción general de Bigtable.

Muchas aplicaciones hacen un seguimiento de las métricas operativas que impulsan los casos de uso, incluidos los informes en la app, las recomendaciones en tiempo real y el límite de frecuencia. Estos son algunos ejemplos de métricas operativas:

  • Usuarios activos por semana
  • Cantidad de impresiones de anuncios
  • Vistas o acciones de contenido en redes sociales
  • Cantidad de transmisiones de contenido multimedia

Puedes usar estas métricas en aplicaciones para usuarios o como entradas para modelos de aprendizaje automático, y su uso suele requerir baja latencia y alta productividad. Debido a que calcular estos tipos de métricas en el momento de la consulta es poco práctico a gran escala, la agregación previa durante la transferencia de datos es el enfoque preferido para los sistemas en tiempo real.

Bigtable ofrece varias formas de agregar datos en el momento de la escritura, como tipos de datos replicados sin conflictos, solicitudes ReadModifyWriteRow y vistas materializadas continuas.

Agregar tus datos de Bigtable en el momento de la escritura te permite evitar la necesidad de usar software de procesamiento de transmisión o extracción, transformación y carga (ETL) para agregar tus datos antes o después de escribirlos en Bigtable. Por ejemplo, si tu aplicación publicó mensajes en Pub/Sub anteriormente y, luego, usó Dataflow para leer los mensajes y agregar los datos antes de escribirlos en Bigtable, puedes enviar los datos directamente a las celdas agregadas en Bigtable.

Tipos de datos replicados sin conflictos

Bigtable te permite crear familias de columnas que contengan solo celdas de tipo aggregate. Las celdas agregadas son estructuras de tipo de datos replicados sin conflictos que están optimizadas para actualizaciones incrementales.

Si migras a Bigtable desde bases de datos como Apache Cassandra, Redis o Valkey, las estructuras similares en esos sistemas se denominan contadores.

En la siguiente tabla, se enumeran las operaciones admitidas y cómo se manejan los valores escritos recientemente.


Operación

Descripción

Suma

El valor de la celda se reemplaza por la suma del valor agregado recientemente y el valor de la celda actual.

Mínimo

El valor de la celda se reemplaza por el valor más bajo entre el valor agregado recientemente y el valor de la celda actual.

Máxima

El valor de la celda se reemplaza por el valor más alto entre el valor agregado recientemente y el valor actual de la celda.

HyperLogLog

El valor escrito se agrega a un conjunto probabilístico de todos los valores que se agregaron desde el restablecimiento más reciente. El valor de la celda representa el estado de ese conjunto. Para obtener información más general sobre el algoritmo de HLL, consulta HyperLogLog.

Puedes leer valores de HLL con la biblioteca de Zetasketch.

Los tipos de mutación que puedes enviar para crear y actualizar celdas agregadas son AddToCell y MergeToCell.

Para comenzar a contar en Bigtable, consulta la guía de inicio rápido Cómo crear y actualizar contadores en Bigtable.

Lectura y escritura

Otra forma de agregar tus datos en el momento de la escritura es usar una solicitud ReadModifyWriteRow, que te permite manipular el valor de una celda incrementando o agregando el valor de forma transaccional. Para obtener más información sobre cuándo usar este enfoque, consulta Anexos.

Vistas materializadas continuas

Una vista materializada continua es un resultado preprocesado de una consulta en SQL que agrega datos en una tabla fuente. La vista procesa datos de forma continua a medida que se transfieren a la tabla de origen y agrupa las actualizaciones. Esto incluye las actualizaciones y eliminaciones. El uso de vistas materializadas continuas puede aumentar el rendimiento y la eficiencia. Para obtener más información, consulta Vistas materializadas continuas.

¿Qué sigue?