Créer et gérer des vues logiques
Les vues logiques dans Bigtable vous permettent d'enregistrer des requêtes SQL en tant que tables virtuelles auxquelles d'autres requêtes SQL peuvent faire référence, tandis que les données restent dans la table source. Ces vues vous permettent d'effectuer les opérations suivantes :
- Éviter de répéter la logique de requête
- Présenter les données dans un format relationnel
- Limiter l'accès en lecture à des lignes ou des colonnes spécifiques
Vous pouvez créer et gérer des vues logiques à l'aide de la Google Cloud CLI ou de l'éditeur de requêtes Bigtable Studio dans la console Google Cloud . Vous pouvez interroger des vues logiques à l'aide de l'éditeur de requête ou de l'une des bibliothèques clientes Bigtable compatibles avec SQL. Pour une comparaison avec les vues matérialisées continues et les vues autorisées, consultez Tables et vues.
À propos des vues logiques
Les vues logiques vous permettent d'effectuer les opérations suivantes avec vos données Bigtable :
- Éviter la répétition des requêtes : vous pouvez stocker et faire évoluer la logique de mappage et de conversion des colonnes dans une vue logique, que d'autres vues logiques peuvent utiliser au lieu de copier et coller cette logique ou d'avoir besoin de la comprendre.
- Intégration à des systèmes conçus pour lire des bases de données relationnelles : les vues logiques vous permettent de lire vos données Bigtable comme une table de base de données relationnelle ou une table Cassandra.
- Exécuter la même vue logique sur plusieurs tables : en modifiant la clause
FROM, vous pouvez utiliser la même vue pour interroger n'importe quelle table de votre instance Bigtable. - Fournir une interface cohérente : votre application peut utiliser une vue logique même si la table source change.
- Limiter l'accès en lecture à des colonnes ou des lignes spécifiques : vous pouvez n'exposer que les données que vous souhaitez autoriser les utilisateurs à lire, sans leur donner accès à l'intégralité de la table.
Une vue logique est une ressource au niveau de l'instance présentant les caractéristiques suivantes :
- Vous devez utiliser les fonctionnalités SQL compatibles avec GoogleSQL pour Bigtable.
- La requête SQL qui définit une vue logique ne peut pas utiliser
SELECT *. - Lecture seule
- Doit être lue avec SQL plutôt qu'avec un appel à
ReadRows - Peut être interrogé à l'aide de n'importe quelle bibliothèque cliente Bigtable compatible avec SQL.
- Utilise les droits du créateur. Vous pouvez interroger une vue logique si vous disposez des autorisations nécessaires pour la lire, même si vous n'êtes pas autorisé à lire la table source.
La clé de ligne, le qualificatif de colonne et les valeurs de colonne que vous utilisez pour définir une vue logique sont traités comme des données de service. Pour cette raison, ne créez pas de vue logique à l'aide d'une clé de ligne, d'un qualificatif de colonne ou de valeurs de colonne contenant des informations sensibles. Pour en savoir plus sur le traitement des données de service, consultez l'Avis de confidentialité deGoogle Cloud .
Avant de commencer
Si vous prévoyez d'utiliser la gcloud CLI, procédez comme suit :
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init
Rôles requis
Pour utiliser des vues logiques, vous devez disposer des autorisations suivantes :
Pour gérer les vues logiques :
- Pour créer, mettre à jour ou supprimer des vues logiques, vous devez disposer du rôle Administrateur Bigtable (
roles/bigtable.admin) sur l'instance. - Vous pouvez également demander à votre administrateur de vous accorder les autorisations suivantes au niveau de l'instance :
- Créer :
bigtable.logicalViews.create - Mise à jour :
bigtable.logicalViews.update - Supprimer :
bigtable.logicalViews.delete
- Créer :
Pour afficher et interroger des vues logiques :
- Pour lister ou décrire des vues logiques, vous devez disposer du rôle Lecteur Bigtable (
roles/bigtable.reader) sur l'instance. Vous pouvez également demander à votre administrateur de vous accorder les autorisations suivantes au niveau de l'instance :
- Liste :
bigtable.logicalViews.list - Décrire :
bigtable.logicalViews.get
- Liste :
Pour interroger une vue logique, vous devez disposer de l'autorisation
bigtable.logicalViews.readRowssur cette vue.
Pour créer une vue logique :
- Vous devez disposer au moins de l'autorisation
bigtable.tables.readRowssur la table source.
Pour accorder un accès en lecture à une vue spécifique :
Vous pouvez accorder à un utilisateur l'autorisation de lire une vue logique spécifique, même s'il ne dispose d'aucune autre autorisation Bigtable. Pour ce faire, utilisez une condition IAM afin d'accorder l'autorisation bigtable.logicalViews.readRows uniquement sur cette vue :
- Attribuez à l'utilisateur le rôle
bigtable.readersur le projet. Créez une condition IAM qui limite l'autorisation
bigtable.logicalViews.readRowsà la vue logique spécifique. Exemple :resource.name == projects/PROJECT_ID/instances/INSTANCE_ID/logicalViews/VIEWRemplacez les éléments suivants :
PROJECT_ID: projet Google Cloud dans lequel se trouve votre instance Bigtable.VIEW: ID de 128 caractères maximum pour la nouvelle vue logique. L'ID doit être unique parmi les ID de table et de vue de l'instance.INSTANCE_ID: ID de l'instance dans laquelle créer la vue logique.
Pour en savoir plus, consultez Gérer l'accès aux ressources à l'aide de conditions IAM.
Pour en savoir plus sur tous les rôles et autorisations disponibles, consultez Contrôle des accès Bigtable avec IAM.
Créer une vue logique
Console
Dans la console Google Cloud , ouvrez la liste des instances Bigtable.
Sélectionnez une instance.
Dans le volet de navigation, cliquez sur Bigtable Studio.
Ouvrez un nouvel onglet en cliquant sur , puis en sélectionnant Éditeur.
Dans l'éditeur de requête, rédigez votre requête. Si la requête est une requête SQL valide, un message Valide s'affiche.
Facultatif : Pour mettre en forme votre instruction au format SQL, cliquez sur Format.
Cliquez sur Exécuter. Les résultats de votre requête s'affichent dans la table Résultats.
Lorsque vous êtes satisfait de la requête, cliquez sur la flèche de développement Enregistrer sous, puis sélectionnez Enregistrer en tant que vue logique.
Dans la boîte de dialogue Enregistrer votre vue logique, saisissez un nom pour la vue, puis cliquez sur Enregistrer.
Pour en savoir plus sur l'utilisation de l'éditeur de requête, consultez Gérer vos données à l'aide de Bigtable Studio.
gcloud
Pour créer une vue logique, utilisez la commande gcloud bigtable logical-views create.
gcloud bigtable logical-views create VIEW \
--instance=INSTANCE --query=QUERY
Remplacez les éléments suivants :
VIEW: ID de 128 caractères maximum pour la nouvelle vue logique. L'ID doit être unique parmi les ID de table et de vue de l'instance.QUERY: requête GoogleSQL valide pour Bigtable. La requête ne peut pas utiliserSELECT *.INSTANCE: ID de l'instance dans laquelle créer la vue logique.
Facultatif :
- Pour protéger la vue logique contre la suppression, ajoutez l'option
--deletion-protectionà la commande. Si vous n'appliquez pas ce paramètre, la vue logique peut être supprimée. Vous pouvez également autoriser explicitement la suppression de la vue logique en ajoutant--no-deletion-protection. Pour en savoir plus, consultez la section Mettre à jour une vue logique de ce document.
Mettre à jour une vue logique
Console
Vous ne pouvez pas mettre à jour la protection contre la suppression d'une vue logique dans la consoleGoogle Cloud . Pour activer ou désactiver la protection contre la suppression, utilisez la Google Cloud CLI.
Dans la console Google Cloud , ouvrez la liste des instances Bigtable.
Sélectionnez une instance dans la liste.
Dans le volet de navigation, cliquez sur Bigtable Studio. La liste des vues s'affiche dans l'explorateur.
Facultatif : Les 10 premières vues de l'instance sont listées. Pour en afficher 10 de plus, cliquez sur Afficher plus.
À côté de la vue que vous souhaitez mettre à jour, cliquez sur le menu d'actions more_vert, puis sur Afficher la définition.
Modifiez la requête.
Cliquez sur Exécuter.
Après avoir vérifié que le volet des résultats affiche les données qui doivent être incluses dans la vue, cliquez sur Enregistrer sous.
Dans la boîte de dialogue, saisissez l'ID de la vue que vous avez modifiée.
La boîte de dialogue affiche un message vous avertissant que vous allez écraser la vue existante.
Cliquez sur Enregistrer.
gcloud
Pour mettre à jour une vue logique afin d'exécuter une autre requête ou de modifier la protection contre la suppression, utilisez la commande gcloud bigtable logical-views update. Vous devez spécifier la requête, la protection contre la suppression ou les deux.
Pour mettre à jour la requête d'une vue logique :
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE --query=QUERY
Pour activer la protection contre la suppression d'une vue logique :
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--deletion-protection=true
Pour désactiver la protection contre la suppression pour une vue logique :
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--deletion-protection=false
Remplacez les éléments suivants :
VIEW: ID de la vue logique à mettre à jour.INSTANCE: ID de l'instance contenant la vue logiqueQUERY: requête GoogleSQL valide.
Supprimer une vue logique
Cette action est définitive.
Si la protection contre la suppression est activée pour une vue logique, vous ne pouvez pas la supprimer. Pour supprimer une vue logique pour laquelle la protection contre la suppression est activée, vous devez mettre à jour la vue logique pour désactiver la protection contre la suppression. Pour en savoir plus, consultez la section Mettre à jour une vue logique de ce document.
Console
Dans la console Google Cloud , ouvrez la liste des instances Bigtable.
Sélectionnez une instance dans la liste.
Dans le volet de navigation, cliquez sur Bigtable Studio. La liste des vues s'affiche dans l'explorateur.
Facultatif : Les 10 premières vues de l'instance sont listées. Pour en afficher 10 de plus, cliquez sur Afficher plus.
Développez Vues.
À côté de la vue que vous souhaitez supprimer, cliquez sur le menu d'actions more_vert, puis sur Supprimer.
gcloud
Pour supprimer une vue logique, utilisez la commande gcloud bigtable logical-views delete.
gcloud bigtable logical-views delete VIEW \
--instance=INSTANCE
Remplacez les éléments suivants :
VIEW: ID de la vue logique à mettre à jour.INSTANCE: ID de l'instance contenant la vue logique
Obtenir la liste des vues logiques d'une instance
Vous pouvez afficher la liste des vues logiques d'une instance.
Console
Dans la console Google Cloud , ouvrez la liste des instances Bigtable.
Sélectionnez une instance dans la liste.
Dans le volet de navigation, cliquez sur Bigtable Studio. La liste des vues s'affiche dans l'explorateur.
Facultatif : Les 10 premières vues de l'instance sont listées. Pour en afficher 10 de plus, cliquez sur Afficher plus.
gcloud
Pour afficher la liste des vues logiques d'une instance, utilisez la commande gcloud bigtable logical-views list.
gcloud bigtable logical-views list --instance=INSTANCE
Remplacez INSTANCE par l'ID de l'instance.
Décrire une vue logique
Pour obtenir des détails sur une vue logique, utilisez la commande gcloud bigtable logical-views
describe.
gcloud bigtable logical-views describe VIEW \
--instance=INSTANCE
Le terminal affiche des détails semblables à ceux-ci :
createTime: '2025-03-07T19:49:56.316578Z'
etag: W/"/v1/17919275593532352351"
name: projects/my-project/instances/my-instance/logicalViews/my-view
query: SELECT street FROM addresses
updateTime: '2025-03-07T19:49:56.316578Z'
deletion_protection: true
Interroger une vue logique
Une fois que vous avez créé une vue logique, vous pouvez l'interroger à l'aide de SQL, comme vous le feriez pour une table standard. Vous pouvez utiliser des vues logiques dans la clause FROM des instructions SELECT.
Dans l'éditeur de requête, saisissez une requête GoogleSQL qui fait référence au nom de la vue. Par exemple, si votre vue s'appelle MyLogicalView :
SELECT *
FROM MyLogicalView
LIMIT 100;
Pour en savoir plus sur l'exécution de requêtes SQL dans Bigtable, consultez Interroger vos données avec SQL dans l'éditeur de requête.
Limites
- Vous ne pouvez pas créer de vues logiques sur des tables avec une précision de code temporel en microsecondes.
Étapes suivantes
- Pour en savoir plus sur l'interrogation de données Bigtable avec SQL, consultez la présentation de GoogleSQL pour Bigtable.
- Pour précalculer et mettre en cache les résultats de requête d'une table source, consultez Vues matérialisées continues.
- Pour configurer un accès en lecture et en écriture précis à des sous-ensembles de données spécifiques, consultez la page Présentation des vues autorisées.
- Pour filtrer de manière dynamique les données de vue logique en fonction du contexte de l'application, consultez la présentation des vues paramétrées.