Créer et mettre à jour des compteurs dans Bigtable

Découvrez comment créer et mettre à jour des compteurs dans Bigtable à l'aide d'agrégats, c'est-à-dire des cellules de table qui agrègent des valeurs au moment de l'écriture. Ce guide de démarrage rapide utilise la consoleGoogle Cloud , la Google Cloud CLI ou la CLI cbt pour créer les compteurs suivants :

  • Un compteur qui conserve une somme cumulée
  • Compteur qui suit le minimum de toutes les valeurs ajoutées
  • Compteur qui suit le maximum de toutes les valeurs ajoutées

Avant de commencer

  1. Installez la Google Cloud CLI.

  2. Configurez la gcloud CLI afin d'utiliser votre identité fédérée.

    Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.

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

    gcloud init
  4. Après avoir initialisé la gcloud CLI, mettez-la à jour et installez les composants requis :

    gcloud components update
    gcloud components install cbt
  5. Créez ou sélectionnez un projet Google Cloud .

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un projet Google Cloud  :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Google Cloud que vous créez.

    • Sélectionnez le projet Google Cloud que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud .

  6. Vérifiez que la facturation est activée pour votre projet Google Cloud .

  7. Activez les API Cloud Bigtable et Cloud Bigtable Admin :

    Rôles requis pour activer les API

    Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  8. Exécutez les commandes suivantes pour vous assurer que gcloud CLI est à jour et inclut la CLI cbt :
    gcloud components update
    gcloud components install cbt

Créer une instance Bigtable

Console

  1. Dans la console Google Cloud , accédez à la page Créer une instance.

    Accéder à la page Créer une instance

  2. Dans le champ Nom de l'instance, saisissez Counters quickstart instance.

  3. Dans le champ ID d'instance, saisissez counters-quickstart-instance.

  4. Cliquez sur Continuer.

  5. Dans la section Sélectionnez votre édition, sélectionnez Enterprise.

  6. Cliquez sur Continuer.

  7. Dans la section Type de stockage, sélectionnez SSD.

  8. Cliquez sur Continuer.

  9. Dans le champ ID du cluster, saisissez counters-quickstart-cluster.

  10. Dans la liste Région, sélectionnez us-east1 (Caroline du Sud).

  11. Dans la liste Zone, sélectionnez us-east1-c.

  12. Dans la section "Scaling des nœuds", sélectionnez Autoscaling, puis procédez comme suit :

    1. Pour le nombre minimal de nœuds, saisissez 1.
    2. Pour le nombre maximal de nœuds, saisissez 3.
  13. Cliquez sur Créer pour créer l'instance.

gcloud

  1. Utilisez la commande bigtable instances create pour créer une instance.

    gcloud bigtable instances create counters-quickstart-instance \
        --display-name="Counters quickstart instance" \
        --edition=ENTERPRISE \
        --cluster-config=id="counters-quickstart-cluster",zone="us-east1-c"
    

Se connecter à l'instance

  1. Configurez la CLI cbt pour utiliser votre projet et votre instance en créant un fichier .cbtrc.

    echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrc
    

    Remplacez PROJECT_ID par l'ID du projet que vous utilisez.

  2. Vérifiez que vous avez correctement configuré le fichier .cbtrc.

    cat ~/.cbtrc
    

    Le terminal affiche le contenu du fichier .cbtrc, qui doit ressembler à ce qui suit :

    project = PROJECT_ID
    instance = counters-quickstart-instance

    Vous pouvez maintenant utiliser la CLI cbt avec l'instance.

Créer une table avec des familles de colonnes agrégées

Console

  1. Dans le volet de navigation de la console Google Cloud , cliquez sur Tables.

  2. Cliquez sur Créer une table.

  3. Dans le champ ID de la table, saisissez counters_quickstart_table.

  4. Sous Familles de colonnes, pour chaque famille de colonnes que vous souhaitez ajouter, cliquez sur Ajouter une famille de colonnes, puis saisissez les paramètres suivants :

    • sum_family :

      1. Dans le champ Nom de la famille de colonnes, saisissez sum_family.
      2. Dans la section Type de famille de colonnes, sélectionnez Aggregate (Agrégat).
      3. Dans la liste Agrégateur, sélectionnez Somme.
      4. Dans la section Définir la stratégie de récupération de mémoire, sélectionnez Ne jamais récupérer de mémoire.
      5. Cliquez sur OK.
    • min_family :

      1. Dans le champ Nom de la famille de colonnes, saisissez min_family.
      2. Dans la section Type de famille de colonnes, sélectionnez Aggregate (Agrégat).
      3. Dans la liste Agrégateur, sélectionnez Min.
      4. Dans la section Définir la stratégie de récupération de mémoire, sélectionnez Ne jamais récupérer de mémoire.
      5. Cliquez sur OK.
    • max_family :

      1. Dans le champ Nom de la famille de colonnes, saisissez max_family.
      2. Dans la section Type de famille de colonnes, sélectionnez Aggregate (Agrégat).
      3. Dans la liste Agrégateur, sélectionnez Max.
      4. Dans la section Définir la stratégie de récupération de mémoire, sélectionnez Ne jamais récupérer de mémoire.
      5. Cliquez sur OK.
  5. Cliquez sur Créer.

  6. Pour afficher vos nouvelles familles de colonnes et leurs configurations globales :

    1. Dans le menu de navigation, cliquez sur Bigtable Studio.
    2. Dans l'arborescence de l'explorateur d'objets à gauche, développez Tables, puis counters_quickstart_table, puis Familles de colonnes.

cbt

  1. Exécutez la commande cbt createtable pour créer une table nommée counters_quickstart_table comportant trois familles de colonnes agrégées. Configurez chaque famille de colonnes avec un type d'agrégation différent :

    • La famille de colonnes max_family est de type Max avec un type d'entrée Int64.
    • La famille de colonnes min_family est de type Min avec un type d'entrée Int64.
    • La famille de colonnes sum_family est de type Sum avec un type d'entrée Int64.
    cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
    
  2. Listez vos familles de colonnes en exécutant la commande cbt ls.

    cbt ls counters_quickstart_table
    

    Le shell affiche un résultat semblable à celui-ci :

    Family Name     GC Policy
    -----------     ---------
    max_family      <never>
    min_family      <never>
    sum_family      <never>
    

Créer des compteurs dans le tableau

  1. Utilisez la commande cbt addtocell pour écrire une valeur initiale de 5 dans une nouvelle colonne de chacune des trois familles de colonnes, en utilisant une clé de ligne de row-key1 et un code temporel de 0. Cette opération crée des cellules agrégées, que vous utilisez comme compteurs.

    cbt addtocell counters_quickstart_table row-key1 sum_family:sum_column=5@0
    cbt addtocell counters_quickstart_table row-key1 min_family:min_column=5@0
    cbt addtocell counters_quickstart_table row-key1 max_family:max_column=5@0
    

Lire les données

Vous pouvez lire les données de votre table en les interrogeant avec SQL dans la console Google Cloud ou à l'aide de la CLI cbt.

Interroger la table dans la console Google Cloud avec SQL

  1. Dans la console Google Cloud , ouvrez la page Instances Bigtable.

    Accéder à la liste des instances

  2. Sélectionnez counters-quickstart-instance dans la liste.

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

  4. Cliquez sur l'onglet Éditeur.

  5. Collez cette requête dans l'éditeur :

    SELECT * FROM `counters_quickstart_table`
    
  6. Cliquez sur Exécuter. Les résultats de la requête s'affichent dans le tableau Résultats et ressemblent à ce qui suit :

    _key max_family min_family sum_family
    row-key1 { "max_column": 5 } { "min_column": 5 } { "sum_column": 5 }

Lire avec la CLI cbt

  1. Pour afficher les valeurs des compteurs sous forme d'entiers plutôt que d'octets, définissez un fichier YAML que la CLI cbt peut utiliser pour mettre en forme le résultat. Exécutez la commande suivante :

    echo "families:" > ~/cbtformat.yaml
    echo "  max_family:" >> ~/cbtformat.yaml
    echo "    default_encoding: BigEndian" >> ~/cbtformat.yaml
    echo "    default_type: INT64" >> ~/cbtformat.yaml
    echo "  min_family:" >> ~/cbtformat.yaml
    echo "    default_encoding: BigEndian" >> ~/cbtformat.yaml
    echo "    default_type: INT64" >> ~/cbtformat.yaml
    echo "  sum_family:" >> ~/cbtformat.yaml
    echo "    default_encoding: BigEndian" >> ~/cbtformat.yaml
    echo "    default_type: INT64" >> ~/cbtformat.yaml
    
  2. Vérifiez que vous avez correctement configuré le fichier cbtformat.yaml.

    cat ~/cbtformat.yaml
    

    Le terminal affiche le contenu du fichier cbtformat.yaml, qui doit ressembler à ce qui suit :

    families:
      max_family:
        default_encoding: BigEndian
        default_type: INT64
      min_family:
        default_encoding: BigEndian
        default_type: INT64
      sum_family:
        default_encoding: BigEndian
        default_type: INT64
    
  3. Utilisez la commande cbt read pour transmettre le fichier YAML et lire les données que vous avez ajoutées à la table. Le tableau comporte désormais trois colonnes, chacune avec un type d'agrégation différent.

    cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
    

    Le shell affiche un résultat semblable à celui-ci. Les valeurs sont formatées sous forme d'entiers et les codes temporels sont au format UTC.

    row-key1
      max_family:max_column                    @ 1970/01/01-00:00:00.000000
        5
      min_family:min_column                    @ 1970/01/01-00:00:00.000000
        5
      sum_family:sum_column                    @ 1970/01/01-00:00:00.000000
        5
    

Mettre à jour les compteurs

  1. Ajoutez la valeur 3 à chaque colonne du tableau, en utilisant les mêmes codes temporels que ceux utilisés lors de la création des cellules. Dans chaque colonne, la valeur de la cellule est fusionnée avec la valeur existante en fonction du type d'agrégation de la cellule.

    cbt addtocell counters_quickstart_table row-key1 sum_family:sum_column=3@0
    cbt addtocell counters_quickstart_table row-key1 min_family:min_column=3@0
    cbt addtocell counters_quickstart_table row-key1 max_family:max_column=3@0
    
  2. Utilisez à nouveau la commande cbt read pour lire les données de la table. Chaque cellule contient désormais une valeur agrégée.

    cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
    

    sum_column contient la somme de 5 et 3 (8), min_column contient le minimum des deux valeurs qui y ont été écrites (3) et max_column contient le maximum des deux valeurs qui y ont été écrites (5).

    row-key1
      max_family:max_column                    @ 1970/01/01-00:00:00.000000
        5
      min_family:min_column                    @ 1970/01/01-00:00:00.000000
        3
      sum_family:sum_column                    @ 1970/01/01-00:00:00.000000
        8
    

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Google Cloud , supprimez le projet Google Cloud qui les contient.

Console

  1. Supprimez la table counters_quickstart_table :

    1. Dans la console Google Cloud , accédez à la page Instances Bigtable.

      Accéder à la liste des instances

    2. Dans la liste des instances, cliquez sur Instance de démarrage rapide des compteurs.

    3. Dans le volet de navigation de gauche, cliquez sur Tables.

    4. Cliquez sur à côté de counters_quickstart_table, puis sur Supprimer.

    5. Saisissez counters_quickstart_table pour confirmer, puis cliquez sur Supprimer.

  2. Supprimez l'instance :

    1. Dans la console Google Cloud , accédez à la page Instances Bigtable.

      Accéder à la liste des instances

    2. Cliquez sur Instance de guide de démarrage rapide des compteurs.

    3. Cliquez sur Supprimer l'instance.

    4. Saisissez counters-quickstart-instance pour confirmer, puis cliquez sur Supprimer.

  3. Dans le terminal, supprimez les fichiers de configuration et les identifiants facultatifs :

    1. Supprimez le fichier .cbtrc :

      rm ~/.cbtrc
      
    2. Supprimez le fichier de mise en forme :

      rm ~/cbtformat.yaml
      
    3. Facultatif : Révoquez les identifiants de gcloud CLI :

      gcloud auth revoke
      

cbt

  1. Dans le terminal, supprimez la table counters_quickstart_table :

    cbt deletetable counters_quickstart_table
    
  2. Supprimez l'instance :

    cbt deleteinstance counters-quickstart-instance
    
  3. Supprimez le fichier .cbtrc :

    rm ~/.cbtrc
    
  4. Supprimez le fichier de mise en forme :

    rm ~/cbtformat.yaml
    
  5. Facultatif : Révoquez les identifiants de gcloud CLI :

    gcloud auth revoke
    

Étapes suivantes