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
- Instances, clusters et nœuds
- Présentation de SQL dans Bigtable
- Contrôle des accès à Bigtable avec IAM