Vues matérialisées continues
Ce document présente les vues matérialisées continues et leurs cas d'utilisation courants. Avant de lire cette page, vous devez avoir lu la présentation de Bigtable.
Dans Bigtable, une vue matérialisée continue est un résultat précalculé et entièrement géré d'une requête SQL exécutée en continu qui met à jour de manière incrémentielle la vue matérialisée continue. La requête SQL peut inclure des agrégations et des transformations sur la table Bigtable sous-jacente. L'utilisation de vues matérialisées continues peut améliorer les performances et l'efficacité.
Les données d'une vue matérialisée continue incluent les éléments suivants:
- Valeurs agrégées ou transformées dérivées des données de la table source
- Valeurs non agrégées qui définissent la clé de regroupement
Les vues matérialisées continues vous permettent de pré-agréger vos données à mesure que vous les ingérez. De plus, une vue matérialisée continue a un schéma différent de celui de sa table source, présentant les données de la table source dans une structure optimisée pour les requêtes avec des modèles de recherche différents de ceux utilisés sur la table source.
Voici les principales caractéristiques des vues matérialisées continues dans Bigtable:
- Aucune maintenance: une vue matérialisée continue est précalculée en arrière-plan. Les modifications apportées aux données de la table de base, y compris les mises à jour et les suppressions, sont automatiquement propagées en arrière-plan dans la vue matérialisée continue, sans aucune action de l'utilisateur.
- Modèles de développement SQL: les vues matérialisées continues sont basées sur les requêtes GoogleSQL pour Bigtable, y compris les fonctions, les filtres et les agrégations SQL.
- Synchronisation avec la récupération de mémoire: une vue matérialisée continue reste synchronisée avec les règles de récupération de mémoire de sa table source, et se met automatiquement à jour lorsque les données de la table expirent ou sont supprimées.
- La latence de lecture et d'écriture n'est pas affectée: une vue materialisée continue a un impact minimal sur les performances de la table source lorsque les clusters de l'instance sont provisionnés de manière appropriée ou utilisent l'autoscaling.
- Cohérence à terme:les vues matérialisées continues sont calculées en arrière-plan. Les mises à jour d'une vue matérialisée continue peuvent être retardées, mais les résultats matérialisés continus sont toujours cohérents au fil du temps.
Vous pouvez créer une vue materialisée continue à l'aide de la Google Cloud CLI, de l'éditeur de requêtes Bigtable Studio dans la console Google Cloud ou des bibliothèques clientes Bigtable pour Java et Go.
Vous pouvez lire à partir d'une vue matérialisée continue en procédant comme suit:
- Éditeur de requête Bigtable Studio
- Bibliothèques clientes Bigtable compatibles avec les requêtes SQL
- Appel d'API
ReadRows
à l'aide des bibliothèques clientes Bigtable pour Java et Go
Pour en savoir plus, consultez Lire à partir d'une vue matérialisée continue.
Quand utiliser des vues matérialisées continues ?
Les vues matérialisées continues vous permettent de définir une nouvelle représentation de vos données Bigtable à l'aide de SQL. Une fois créée, une vue materialisée continue restructure automatiquement et en continu les données de la table source au format défini par la requête SQL. Ensuite, au lieu d'interroger votre table et de transformer ou d'agréger les données après les avoir lues, vous pouvez interroger la vue matérialisée continue.
Les vues matérielles peuvent améliorer les performances des requêtes pour les cas d'utilisation suivants:
- Pré-agrégation des données: vous pouvez utiliser une vue materialisée continue pour agréger les données entrantes sur plusieurs lignes. Cela est utile lorsque vous souhaitez récupérer rapidement des données résumées et agrégées, telles que des métriques pour les tableaux de bord.
- Automatisation des architectures lambda et kappa: si votre application nécessite un mélange de données de pipeline de streaming en temps réel et de données de pipeline par lot contenant des données historiques, les vues matérialisées continues fournissent une vue cohérente à terme de toutes les sources de données, sans avoir besoin d'outils de traitement de flux supplémentaires ni de tâches ETL personnalisées.
Pour comparer les vues matérialisées continues à d'autres types de vues Bigtable, consultez Tables et vues.
Quand utiliser des compteurs ?
Vous pouvez également pré-agréger vos données en créant des compteurs distribués à l'aide de cellules agrégées.
Les écritures dans les cellules agrégées sont immédiatement lisibles à partir du cluster dans lequel elles sont écrites. Les vues matérialisées continues sont traitées après l'écriture des données et deviennent finalement cohérentes avec la table source.
Utilisez des compteurs au lieu de vues matérialisées continues pour les cas suivants:
- Agrégations qui ne nécessitent pas de filtres et qui ne doivent pas s'étendre sur plusieurs lignes
- Si vous devez lire immédiatement les données écrites à partir du cluster sur lequel elles sont écrites
Utilisez des vues matérialisées continues lorsque vous souhaitez effectuer les opérations suivantes:
- Générer une clé différente pour les requêtes sur vos agrégations
- Voir les modifications apportées à la table de base reflétées dans vos agrégations
- Combiner automatiquement les données de plusieurs lignes
Utilisez une combinaison de compteurs et de vues matérialisées continues pour les cas d'utilisation suivants:
- Capturez des métriques récentes dans une cellule agrégée, mais conservez les récapitulatifs historiques de ces métriques.
- Combiner des métriques dans une vue matérialisée continue
Provisionnement de ressources et performances
Le traitement en cours des vues matérialisées continues se produit en tant que tâche en arrière-plan de faible priorité. Par conséquent, cela a un impact minimal sur les performances de l'application et la latence de lecture et d'écriture sur la table source, à condition que vos clusters soient de taille appropriée.
Pour vous assurer que les données de la vue matérialisée continue restent à jour, nous vous recommandons d'activer l'autoscaling pour les clusters de l'instance contenant votre vue matérialisée continue. L'autoscaling ajoute automatiquement suffisamment de nœuds pour gérer les coûts de traitement, puis les supprime lorsqu'ils ne sont plus nécessaires. Cela permet de s'assurer qu'une capacité de calcul suffisante est disponible lors de l'exécution de la requête SQL en cours d'exécution. L'autoscaling peut également vous assurer que vous disposez de suffisamment de nœuds pour répondre aux besoins de stockage de vos vues materialisées continues.
Les vues matérialisées sont comptabilisées dans la limite de 1 000 tables par instance.
Stockage
Pour chaque vue matérialisée continue, Bigtable stocke les éléments suivants:
- Données de la vue matérialisée continue
- Stockage intermédiaire
Comme pour toute table Bigtable, une vue matérialisée continue existe sur tous les clusters de l'instance qui la contient. Les clusters de votre instance doivent disposer de suffisamment de nœuds pour stocker la table source et les vues matérialisées continues basées sur la table. L'autoscaling garantit que la taille de vos clusters augmente ou diminue à mesure que les exigences de stockage évoluent.
Une vue matérialisée continue doit être créée dans la même instance que la table source, même si l'espace de stockage de la vue matérialisée continue est distinct de celui de la table source.
Stockage de vues matérialisées continues
Une vue matérialisée continue contient les données issues de la requête SQL sur laquelle elle est basée. Cela signifie qu'il contient des valeurs agrégées définies par des clauses d'agrégation dans la requête SQL et des valeurs non agrégées qui définissent la clé de regroupement.
Stockage intermédiaire
Pour permettre la synchronisation d'une vue matérialisée continue avec sa table source, Bigtable utilise un espace de stockage intermédiaire pour stocker des copies des données dont il a besoin pour mettre à jour de manière incrémentielle la vue matérialisée continue.
La quantité de données dans l'espace de stockage intermédiaire est à peu près équivalente à la quantité de données analysées dans la table source pour générer le résultat de la requête SQL qui définit la vue matérialisée continue. Par exemple, si votre requête agrège les données de l'ensemble de la table, Bigtable stocke l'équivalent de l'ensemble de la table dans un espace de stockage intermédiaire. Une vue matérialisée continue basée sur une requête de plages ou de colonnes de clé de ligne spécifiques ne conserve que ces lignes ou colonnes dans l'espace de stockage intermédiaire.
Le stockage intermédiaire persiste pendant toute la durée de vie de la vue matérialisée continue afin de prendre en charge efficacement les mises à jour incrémentielles de la vue matérialisée et de propager les suppressions de la table source vers la vue matérialisée continue. Vous ne pouvez pas lire les données dans l'espace de stockage intermédiaire. Pour en savoir plus sur votre utilisation du stockage intermédiaire, consultez la section Métriques de vue matérialisée continue.
Réplication
Dans les instances qui utilisent la réplication, les vues matérialisées continues ne sont pas répliquées de la même manière que les tables. À la place, chaque cluster d'une instance traite la vue materialisée continue indépendamment, à l'aide de sa propre copie de la table source. Cela signifie, par exemple, que les données écrites dans une table source du cluster A sont répliquées dans la table du cluster B, puis dans la vue matérialisée continue du cluster B.
Coûts
L'utilisation de vues matérialisées continues n'entraîne aucun coût par ressource. Toutefois, la création et la synchronisation de vues matérialisées continues nécessitent un traitement et un stockage, et vous êtes facturé aux tarifs standards. Vous pouvez vous attendre à une augmentation des éléments suivants lorsque vous créez une vue matérialisée continue:
- Stockage : le stockage des données dans la vue materialisée continue et le stockage intermédiaire vous sont facturés. Pour en savoir plus, consultez la section Stockage.
- Calcul : la synchronisation continue de la table source et de la vue materialisée continue nécessite un traitement par le processeur. Vos clusters peuvent avoir besoin de plus de nœuds pour gérer le travail en arrière-plan supplémentaire.
En même temps, vous pouvez constater une diminution du traitement sur la table source, par exemple lorsque vous n'effectuez plus de balayages de plage des données pour effectuer des calculs répétés et d'autres requêtes moins efficaces. Vous pouvez également vous dispenser d'exécuter des tâches de pipeline, telles que Dataflow ou Spark, pour agréger les données sources et les réécrire dans Bigtable.
Pour en savoir plus sur la tarification, consultez la section Tarifs de Bigtable. Pour connaître les métriques qui peuvent vous aider à surveiller l'utilisation de vos vues materialisées continues, consultez la section Métriques.
Métriques
Une vue materialisée continue enregistre plusieurs métriques clés dans Cloud Logging que vous pouvez utiliser pour surveiller vos vues materialisées continues.
Métrique | Description |
---|---|
materialized_view/max_delay |
Limite supérieure du délai de traitement pour la vue matérialisée continue |
materialized_view/storage |
Quantité de données utilisées pour le stockage de la vue matérialisée continue en octets |
materialized_view/intermediate_storage |
Quantité de données utilisées par le traitement intermédiaire pour la vue materialisée continue en octets |
table/materialized_view_intermediate_storage |
Quantité de données utilisées par le traitement intermédiaire pour les vues matérialisées continues définies sur ce tableau |
materialized_view/user_errors |
Nombre d'erreurs provenant des données utilisateur pour la vue materialisée continue. Les erreurs utilisateur empêchent la propagation des données vers la vue. |
materialized_view/system_errors |
Nombre d'erreurs du système pour la vue matérialisée continue |
Vous pouvez également utiliser de nombreuses métriques de table Bigtable pour surveiller une vue matérialisée continue, en utilisant l'ID de la vue matérialisée continue à la place de l'ID de la table. En particulier, les vues materialisées continues sont incluses dans la répartition des métriques de processeur, ce qui peut vous aider à comprendre leur impact. Les métriques Bigtable pour les requêtes par seconde, la latence et le débit sont générées lorsque vous lisez une vue materialisée continue à l'aide de la méthode ReadRows
de l'API Data. Pour en savoir plus, consultez la section Métriques.
Pour commencer à utiliser Cloud Logging, consultez la page Présentation de l'interrogation et de l'affichage des journaux.
Limites
- Vous ne pouvez pas modifier la requête SQL qui définit une vue matérialisée continue. Vous devez supprimer la vue matérialisée continue et en créer une autre avec vos modifications.
- Vous ne pouvez pas créer de vue matérialisée continue à partir d'une autre vue matérialisée continue ou d'une vue logique.
- Vous ne pouvez pas configurer de stratégies de récupération de mémoire pour une vue matérialisée continue. Toute la conservation des données est régie par les règles de récupération des déchets pour la table source, et la récupération des déchets de la source est automatiquement reflétée dans la vue matérialisée continue.
Étape suivante
- Requête de vue matérialisée continue
- Créer et gérer des vues matérialisées continues
- Bonnes pratiques relatives à la conception de schémas
- Comptage distribué dans Bigtable