Créer et gérer des vues matérialisées continues

Ce document explique comment créer et effectuer des opérations sur une vue matérialisée continue dans Bigtable. Avant de lire ce document, consultez la présentation des vues matérialisées continues.

Vous pouvez créer une vue matérialisé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.

Avant de commencer

Si vous prévoyez d'utiliser la gcloud CLI, procédez comme suit :

  1. Installez la Google Cloud CLI.

  2. 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.

  3. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init

Si la gcloud CLI renvoie un message Method not found, exécutez à nouveau la commande gcloud auth login.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer et gérer des vues matérialisées continues, demandez à votre administrateur de vous accorder le rôle Administrateur Bigtable (roles/bigtable.admin) sur l'instance. Sinon, demandez les autorisations suivantes au niveau de l'instance, en fonction de l'opération que vous souhaitez effectuer :

  • Créer : bigtable.materializedViews.create
  • Mise à jour : bigtable.materializedViews.update
  • Supprimer : bigtable.materializedViews.delete
  • Liste : bigtable.materializedViews.list

Pour créer une vue matérialisée continue, vous devez également disposer au minimum de l'autorisation bigtable.tables.readRows sur la table source.

Pour afficher tous les rôles et autorisations disponibles, consultez Contrôle des accès à Bigtable avec IAM.

Créer une vue matérialisée continue

Avant de créer une vue matérialisée continue, procédez comme suit :

  • Facultatif : Nous vous recommandons d'activer l'autoscaling pour les clusters de votre instance. Vous vous assurez ainsi qu'ils peuvent évoluer si nécessaire pendant que Bigtable traite et synchronise la vue matérialisée continue, et pour gérer toute utilisation de l'espace de stockage supplémentaire.
  • Facultatif : Décidez si vous souhaitez que votre vue matérialisée continue soit disponible sur tous les clusters ou si vous souhaitez isoler sa disponibilité pour le traitement et les requêtes sur un seul cluster. Pour en savoir plus, consultez Fonctions SQL non déterministes.
  • Identifiez une table Bigtable que vous êtes autorisé à lire et que vous souhaitez utiliser comme source pour la vue matérialisée continue.
  • Préparez la requête SQL qui définit votre vue matérialisée continue. Pour connaître les exigences concernant les requêtes, consultez Requêtes de vues matérialisées continues.

Console

  1. Dans la console Google Cloud , ouvrez la liste des instances Bigtable.

    Ouvrir la liste des instances

  2. Sélectionnez une instance.

  3. Dans le volet de navigation, cliquez sur Bigtable Studio.

  4. Ouvrez un nouvel onglet en cliquant sur , puis en sélectionnant Éditeur.

    1. Lorsque l'éditeur de requête s'affiche, rédigez votre requête. Si la requête est une requête SQL valide, le message Valide s'affiche.

    2. (Facultatif) Pour mettre en forme votre instruction au format SQL, cliquez sur Mettre en forme.

    3. Cliquez sur Exécuter. Les résultats de votre requête s'affichent dans la table Résultats.

    4. Lorsque vous êtes satisfait de la requête, cliquez sur la flèche de l'expandeur Enregistrer sous, puis sélectionnez Enregistrer en tant que vue matérialisée.

  5. Dans la boîte de dialogue Enregistrer votre vue matérialisée, saisissez un nom pour la vue, puis cliquez sur Enregistrer.

    Pour en savoir plus sur l'utilisation de l'éditeur de requêtes, consultez Gérer vos données à l'aide de Bigtable Studio.

gcloud

Pour créer une vue matérialisée continue, utilisez la commande gcloud bigtable materialized-views create :

    gcloud bigtable materialized-views create VIEW \
            --instance=INSTANCE --query=QUERY

Remplacez les éléments suivants :

  • VIEW : identifiant unique de la vue matérialisée continue. Vous devez utiliser cet ID comme ID de table lorsque vous interrogez la vue matérialisée continue.
  • INSTANCE : identifiant de l'instance dans laquelle créer la vue matérialisée continue. Doit être la même instance que la table source.
  • QUERY : instruction SQL valide qui définit la vue matérialisée continue.

Facultatif : Activer la protection contre la suppression

Pour activer la protection contre la suppression de la vue matérialisée continue, ajoutez --deletion-protection=DELETION_PROTECTION à la commande. Remplacez DELETION_PROTECTION par true ou false.

Facultatif : Créer une vue isolée à un seul cluster

Par défaut, Bigtable réplique une vue matérialisée continue sur tous les clusters d'une instance. Pour conserver une vue dans un cluster spécifique uniquement, définissez votre vue avec CLUSTER_ATTRIBUTE et transmettez l'indicateur --ignore-warnings :

gcloud bigtable materialized-views create VIEW \
  --instance=INSTANCE \
  --query="SELECT ... WHERE CLUSTER_ATTRIBUTE('cluster_id') = 'CLUSTER_ID'" \
  --ignore-warnings

Remplacez les éléments suivants :

  • VIEW : identifiant unique de la vue matérialisée continue. Vous devez utiliser cet ID comme ID de table lorsque vous interrogez la vue matérialisée continue.
  • INSTANCE : identifiant de l'instance dans laquelle créer la vue matérialisée continue. Doit être la même instance que la table source.
  • CLUSTER_ID : identifiant du cluster dans lequel vous souhaitez conserver la vue.

Étant donné que CLUSTER_ATTRIBUTE produit des résultats différents selon les clusters, vous devez inclure l'indicateur --ignore-warnings pour reconnaître ces différences. Pour en savoir plus sur la syntaxe et les exigences des requêtes, consultez Isoler une vue sur un seul cluster.

Interroger une vue matérialisée continue

Une fois qu'une vue matérialisée continue est active, vous pouvez l'interroger comme n'importe quelle autre table à l'aide de Bigtable Studio dans la console Google Cloud ou des bibliothèques clientes compatibles. Pour en savoir plus sur la syntaxe et les exigences des requêtes, consultez Requêtes de vues matérialisées continues.

Pour tester et interroger une vue avant la fin du remplissage initial, utilisez l'indication de requête @{allow_incomplete_view=true}. Pour en savoir plus, consultez Lire les données lors du remplissage initial.

Mettre à jour une vue matérialisée continue

Vous pouvez modifier la protection contre la suppression pour une vue matérialisée continue. Vous ne pouvez pas mettre à jour la requête SQL qui définit une vue matérialisée continue. Si vous devez modifier la requête, vous devez supprimer la vue matérialisée continue, puis en créer une autre qui inclut vos modifications.

Console

Vous ne pouvez pas mettre à jour une vue matérialisée continue dans la console. Utilisez plutôt gcloud CLI.

gcloud

Pour activer ou désactiver la protection contre la suppression pour une vue matérialisée continue, utilisez la commande gcloud bigtable materialized-views update.

gcloud bigtable materialized-views update VIEW \
        --instance=INSTANCE --deletion-protection=DELETION_PROTECTION

Remplacez les éléments suivants :

  • VIEW : identifiant unique de la vue matérialisée continue que vous souhaitez mettre à jour
  • INSTANCE : identifiant de l'instance contenant la vue matérialisée continue
  • DELETION_PROTECTION : true ou false

Supprimer une vue matérialisée continue

Vous pouvez supprimer une vue matérialisée continue pour laquelle la protection contre la suppression n'est pas activée. Cette opération est irréversible.

Console

  1. Dans la console Google Cloud , ouvrez la liste des instances Bigtable.

    Ouvrir la liste des instances

  2. Sélectionnez une instance dans la liste.

  3. Dans le volet de navigation, cliquez sur Bigtable Studio.

  4. Développez Vues matérialisées.

  5. À 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 matérialisée continue, utilisez la commande gcloud bigtable materialized-views delete :

gcloud bigtable materialized-views delete VIEW \
      --instance=INSTANCE

Remplacez les éléments suivants :

  • VIEW : identifiant unique de la vue matérialisée continue que vous souhaitez supprimer
  • INSTANCE : identifiant de l'instance contenant la vue matérialisée continue

Obtenir la liste des vues matérialisées continues

Vous pouvez afficher la liste des vues matérialisées continues pour une instance.

Console

  1. Dans la console Google Cloud , ouvrez la liste des instances Bigtable.

    Ouvrir la liste des instances

  2. Sélectionnez une instance dans la liste.

  3. Dans le volet de navigation, cliquez sur Bigtable Studio. Une liste de vues matérialisées continues s'affiche.

  4. Facultatif : Les 10 premières vues de l'instance sont listées. Pour en afficher 10 autres, cliquez sur Afficher plus.

gcloud

Pour lister toutes les vues matérialisées continues d'une instance, utilisez la commande gcloud bigtable materialized-views list.

gcloud bigtable materialized-views list --instance=INSTANCE

Remplacez INSTANCE par l'ID de l'instance.

Étapes suivantes