Tables et vues

Dans Bigtable, vous stockez vos données dans des tables et vous pouvez créer plusieurs types de vues de vos tables. Le type de vue que vous utilisez dépend de votre cas d'utilisation.

Tables

Une table Bigtable est un mappage clé-valeur trié qui stocke les données dans des lignes et des colonnes. Chaque ligne est indexée par une clé de ligne unique. Les colonnes liées les unes aux autres sont généralement regroupées dans une famille de colonnes.

Bigtable dispose d'un modèle de données flexible et ses tables sont creuses. Cela signifie que si une colonne n'est pas utilisée dans une ligne, aucune donnée n'est stockée pour cette colonne. Vous n'avez pas besoin de stocker des valeurs NULL pour les colonnes inutilisées comme vous le feriez avec une base de données relationnelle. Dans une table Bigtable, une ligne donnée peut comporter une colonne, tandis que la ligne suivante peut en comporter 100.

Dans une ligne, une colonne peut contenir plusieurs cellules, chacune identifiée par le quatre-tuple (clé de ligne, famille de colonnes, qualificatif de colonne, code temporel). Le stockage de plusieurs cellules dans une colonne permet de répertorier les modifications apportées aux données stockées pour cette ligne et cette colonne au fil du temps.

Une table Bigtable n'accepte pas les jointures, et les transactions ne sont possibles qu'au sein d'une même ligne.

Une table est une ressource au niveau de l'instance qui est automatiquement répliquée dans chaque cluster de l'instance. La conservation des données est contrôlée par des règles de récupération de mémoire définies au niveau de la famille de colonnes.

Pour en savoir plus, consultez la présentation de Bigtable et les bonnes pratiques de conception de schémas.

Vues

Bigtable est compatible avec trois types de vues de table : les vues logiques, les vues matérialisées continues et les vues autorisées. Les vues vous permettent de partager des données de table avec des utilisateurs et des groupes particuliers sans leur donner accès aux données sources sous-jacentes.

Vues logiques

Une vue logique (souvent appelée simplement vue) est le résultat d'une requête SQL. Elle fonctionne comme une table virtuelle pouvant être interrogée par d'autres requêtes SQL. Pour en savoir plus, consultez Créer et gérer des vues logiques.

Vues matérialisées continues

Une vue matérialisée continue est créée en exécutant en continu une requête SQL sur une table Bigtable. Bigtable crée une table en fonction du résultat de la requête et la synchronise avec la table source.

Les vues matérialisées continues peuvent vous aider à améliorer les performances des requêtes. La nouvelle table (la vue matérialisée continue) a un schéma différent de celui de la table source. Elle contient des données préagrégées ou transformées, optimisées pour des requêtes différentes de celles utilisées sur la table source.

Les vues matérialisées continues sont en lecture seule. Le stockage d'une vue matérialisée continue vous est facturé, tout comme le traitement nécessaire pour créer la deuxième table, la maintenir synchronisée avec la table source et la répliquer.

Pour en savoir plus, consultez Vues matérialisées continues.

Vues autorisées

Les vues autorisées sont des vues de tables que vous configurez pour inclure des données de table spécifiques, puis vous accordez l'accès à ces vues séparément de l'accès à la table source. Une vue autorisée est définie par un fichier de définition au format JSON.

Contrairement aux vues matérialisées continues ou aux vues logiques, les vues autorisées Bigtable peuvent être utilisées pour contrôler l'accès en lecture et en écriture.

Les vues autorisées sont utiles lorsque vous stockez les données de plusieurs clients dans une table Bigtable et que vous souhaitez accorder à chaque client l'accès uniquement à un sous-ensemble de la table contenant ses données.

Les vues autorisées n'entraînent pas de frais de stockage supplémentaires.

Pour en savoir plus, consultez Présentation des vues autorisées.

Comparaisons

Le tableau suivant fournit des informations supplémentaires sur les différences entre les vues de table Bigtable.

Vues logiques Vues matérialisées continues Vues autorisées
Structure Table virtuelle représentant les résultats d'une requête SQL Table en lecture seule basée sur une table source Sous-ensemble d'une table
Définition Requête SQL Requête SQL Fichier de définition JSON
Cohérence avec la table source Cohérent lorsque la requête est exécutée Cohérence à terme Cohérent lorsque la requête est exécutée
Options de requête Doit utiliser SQL API SQL ou Bigtable Data API Bigtable Data
Writable Non Non Oui
Stockage Les données restent dans la table source Les données sont dupliquées, agrégées ou transformées, puis stockées dans une nouvelle table en lecture seule. Les données restent dans la table source
Coûts d'utilisation Ressources de calcul pour exécuter la requête Coûts de traitement et de stockage lors de la synchronisation Ressources de calcul pour exécuter la requête

Étapes suivantes