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
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install cbt -
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:
gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install cbt -
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:
gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com - 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
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
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.
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
Utilisez la commande
cbt createtable
pour créer une table nomméecounters_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 typeMax
avec un type d'entréeInteger
. - La famille de colonnes
min_family
est de typeMin
avec un type d'entréeInteger
. - La famille de colonnes
sum_family
est de typeSum
avec un type d'entréeInteger
.
cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
- La famille de colonnes
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
Utilisez la commande
cbt addtocell
pour écrire une valeur initiale de5
dans une nouvelle colonne de chacune des trois familles de colonnes, en utilisant une clé de ligne derow-key1
et un code temporel de0
. 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
Pour afficher les valeurs de compteur sous forme d'entiers plutôt que d'octets, définissez un fichier
yaml
que la CLIcbt
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
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
Utilisez la commande
cbt read
pour transmettre le fichieryaml
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
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
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) etmax_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
Facultatif: Interrogez la table dans la console Google Cloud avec SQL.
Dans la console Google Cloud, ouvrez la page Instances Bigtable.
Sélectionnez
counters-quickstart-instance
dans la liste.Dans le menu de navigation, cliquez sur Bigtable Studio.
Cliquez sur l'onglet Éditeur.
Collez cette requête dans l'éditeur:
SELECT * FROM `counters_quickstart_table`
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": 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.
Dans le terminal, supprimez la table
counters_quickstart_table
:cbt deletetable counters_quickstart_table
Supprimez l'instance :
cbt deleteinstance counters-quickstart-instance
Supprimez le fichier
.cbtrc
:rm ~/.cbtrc
Supprimez le fichier de mise en forme:
rm ~/cbtformat.yaml
Facultatif : Révoquez les identifiants de gcloud CLI :
gcloud auth revoke