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égations, des cellules de table qui agrégent des valeurs au moment de l'écriture. Ce guide de démarrage rapide utilise la Google Cloud CLI et la CLI cbt pour créer trois compteurs:

  • Un compteur qui calcule une somme cumulée
  • Compteur qui suit le minimum de toutes les valeurs ajoutées
  • Un compteur qui suit la valeur maximale de toutes les valeurs ajoutées

Avant de commencer

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Update and install gcloud components:

    gcloud components update
    gcloud components install cbt
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. Update and install gcloud components:

    gcloud components update
    gcloud components install cbt
  11. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Make sure that billing is enabled for your Google Cloud project.

  13. Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  14. 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

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

    gcloud bigtable instances create counters-quickstart-instance \
        --display-name="Counters quickstart instance" \
        --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 votre instance.

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

  1. Utilisez 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 Integer.
    • La famille de colonnes min_family est de type Min avec un type d'entrée Integer.
    • La famille de colonnes sum_family est de type Sum avec un type d'entrée Integer.
    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

  1. Pour afficher les valeurs de compteur sous forme d'entiers plutôt que d'octets, définissez un fichier yaml que la CLI cbt peut utiliser pour mettre en forme la sortie. 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 en tant qu'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 que vous avez utilisés lorsque vous avez créé les 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 la valeur minimale des deux valeurs qui y ont été écrites (3) et max_column contient la valeur maximale 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
    
  3. Facultatif: Interrogez 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 à ceci:

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

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page ne soient facturées sur votre compte Google Cloud, supprimez le projet Google Cloud contenant les ressources.

  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
    

Étape suivante