Agrégation des valeurs au moment de l'écriture
Ce document présente les différentes manières d'agréger vos données Bigtable au moment de l'écriture. Avant de lire ce document, assurez-vous de connaître la présentation de Bigtable.
De nombreuses applications suivent les métriques opérationnelles qui génèrent des cas d'utilisation, y compris les rapports dans l'application, les recommandations en temps réel et la limitation de débit. Voici quelques exemples de métriques opérationnelles:
- Utilisateurs actifs chaque semaine
- Nombre d'impressions d'annonces
- Nombre de vues ou de partages de contenus sur les réseaux sociaux
- Nombre de flux multimédias
Vous pouvez utiliser ces métriques dans des applications destinées aux utilisateurs ou comme entrées pour des modèles d'apprentissage automatique. Leur utilisation nécessite généralement une faible latence et un débit élevé. Étant donné qu'il est difficile de calculer ces types de métriques au moment de la requête à grande échelle, l'agrégation préalable lors de l'ingestion de données est l'approche privilégiée pour les systèmes en temps réel.
Bigtable propose plusieurs façons d'agréger des données au moment de l'écriture, y compris des types de données répliqués sans conflit, des requêtes ReadModifyWriteRow
et des vues matérialisées continues.
L'agrégation de vos données Bigtable au moment de l'écriture vous évite d'avoir à utiliser un logiciel d'extraction, de transformation et de chargement (ETL) ou de traitement en flux continu pour agréger vos données avant ou après les avoir écrites dans Bigtable. Par exemple, si votre application a déjà publié des messages dans Pub/Sub, puis utilisé Dataflow pour lire les messages et agréger les données avant de les écrire dans Bigtable, vous pouvez plutôt envoyer les données directement aux cellules d'agrégation dans Bigtable.
Types de données répliqués sans conflit
Bigtable vous permet de créer des familles de colonnes ne contenant que des cellules de type agrégation. Les cellules agrégées sont des structures de type de données répliquées sans conflit optimisées pour les mises à jour incrémentielles.
Si vous migrez vers Bigtable à partir de bases de données telles qu'Apache Cassandra, Redis ou Valkey, les structures similaires de ces systèmes sont appelées compteurs.
Le tableau suivant liste les opérations acceptées et la manière dont les nouvelles valeurs écrites sont gérées.
Opération |
Description |
---|---|
Somme |
La valeur de la cellule est remplacée par la somme de la valeur nouvellement ajoutée et de la valeur actuelle de la cellule. |
Minimum |
La valeur de la cellule est remplacée par la valeur la plus basse entre la valeur nouvellement ajoutée et la valeur actuelle de la cellule. |
Maximum |
La valeur de la cellule est remplacée par la valeur la plus élevée entre la valeur nouvellement ajoutée et la valeur actuelle de la cellule. |
HyperLogLog |
La valeur écrite est ajoutée à un ensemble probabiliste de toutes les valeurs ajoutées depuis la réinitialisation la plus récente. La valeur de la cellule représente l'état de cet ensemble. Pour en savoir plus sur l'algorithme HLL, consultez HyperLogLog. Vous pouvez lire les valeurs HLL à l'aide de la bibliothèque Zetasketch. |
Les types de mutation que vous pouvez envoyer pour créer et mettre à jour des cellules agrégées sont AddToCell
et MergeToCell
.
Pour commencer à compter dans Bigtable, consultez le guide de démarrage rapide Créer et mettre à jour des compteurs dans Bigtable.
Lire, puis écrire
Vous pouvez également agréger vos données au moment de l'écriture à l'aide d'une requête ReadModifyWriteRow, qui vous permet de manipuler la valeur d'une cellule en l'incrémentant ou en l'ajoutant de manière transactionnelle. Pour en savoir plus sur les cas d'utilisation de cette approche, consultez la section Ajouts.
Vues matérialisées continues
Une vue matérialisée continue est le résultat précalculé d'une requête SQL qui agrège les données d'une table source. La vue traite les données en continu à mesure qu'elles sont ingérées dans la table source et regroupe les mises à jour. Cela inclut les mises à jour et les suppressions. L'utilisation de vues matérialisées continues peut améliorer les performances et l'efficacité. Pour en savoir plus, consultez Vues matérialisées continues.
Étape suivante
- Consultez des exemples de code montrant comment ajouter une valeur à une cellule agrégative.
- Passez en revue les concepts liés à la conception de schémas.