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 de clés/valeurs triées 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 avoir une colonne et la ligne suivante 100 colonnes.
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, horodatage). Le stockage de plusieurs cellules dans une colonne fournit un enregistrement de la façon dont les données stockées pour cette ligne et cette colonne ont changé 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 sur 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 les types de vues de table suivants : vues logiques, vues matérialisées continues et vues autorisées. Les vues vous permettent de partager des données de table avec des utilisateurs et des groupes spécifiques 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 qui peut être interrogée par d'autres requêtes SQL. Pour en savoir plus, consultez la section Créer et gérer des vues logiques.
Vues paramétrées
Une vue paramétrée est un type de vue logique qui filtre dynamiquement les plages de données en fonction du contexte de l'application. Cette approche protège vos applications contre l'injection SQL et réduit le besoin de plusieurs vues statiques.
Pour en savoir plus, consultez la présentation des vues paramétrées .
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 nouvelle table basée sur le résultat de la requête et la synchronise avec la table source.
Les vues matérialisées continues peuvent améliorer les performances des requêtes. La nouvelle table (la vue matérialisée continue) possède 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. Vous êtes facturé pour le stockage d'une vue matérialisée continue, ainsi que pour le travail de traitement nécessaire à la création de la deuxième table, à sa synchronisation avec la table source et à sa réplication.
Pour en savoir plus, consultez la section 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 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 des données pour plusieurs clients dans une table Bigtable et que vous souhaitez n'accorder à chaque client l'accès qu'à 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 la 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 paramétrées | Vues matérialisées continues | Vues autorisées | |
|---|---|---|---|---|
| Structure | Table virtuelle représentant les résultats d'une requête SQL | 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 utilisant VIEW_PARAMETERS() |
Requête SQL | Fichier de définition JSON |
| Cohérence avec la table source | Cohérente lors de l'exécution de la requête | Cohérente lors de l'exécution de la requête | Cohérente à terme | Cohérente lors de l'exécution de la requête |
| Options de requête | Doit utiliser SQL | SQL | SQL ou API Bigtable Data | API Bigtable Data |
| Écriture possible | Non | Non | Non | Oui |
| Stockage | Les données restent dans la table source | 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 | Traitement de calcul pour exécuter la requête | Traitement de calcul pour exécuter la requête | Traitement de calcul lors de la synchronisation, coûts de stockage | Traitement de calcul pour exécuter la requête |