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 Google Cloud CLI et la CLI cbt pour créer trois compteurs :
- 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
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
Install the 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 -
Après avoir initialisé la gcloud CLI, mettez-la à jour et installez les composants requis :
gcloud components update gcloud components install cbt
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith 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_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com -
Install the 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 -
Après avoir initialisé la gcloud CLI, mettez-la à jour et installez les composants requis :
gcloud components update gcloud components install cbt
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith 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_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.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 updategcloud components install cbt Utilisez la commande
bigtable instances createpour 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"Configurez la CLI
cbtpour utiliser votre projet et votre instance en créant un fichier.cbtrc.echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrcRemplacez PROJECT_ID par l'ID du projet que vous utilisez.
Vérifiez que vous avez correctement configuré le fichier
.cbtrc.cat ~/.cbtrcLe 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
cbtavec votre instance.Exécutez la commande
cbt createtablepour créer une table nomméecounters_quickstart_tablecomportant 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_familyest de typeMaxavec un type d'entréeInteger. - La famille de colonnes
min_familyest de typeMinavec un type d'entréeInteger. - La famille de colonnes
sum_familyest de typeSumavec 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_tableLe shell affiche un résultat semblable à celui-ci :
Family Name GC Policy ----------- --------- max_family <never> min_family <never> sum_family <never>Utilisez la commande
cbt addtocellpour écrire une valeur initiale de5dans une nouvelle colonne de chacune des trois familles de colonnes, en utilisant une clé de ligne derow-key1et 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@0Pour afficher les valeurs des compteurs sous forme d'entiers plutôt que d'octets, définissez un fichier
yamlque la CLIcbtpeut 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.yamlVérifiez que vous avez correctement configuré le fichier
cbtformat.yaml.cat ~/cbtformat.yamlLe 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: INT64Utilisez la commande
cbt readpour transmettre le fichieryamlet 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.yamlLe 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 5Ajoutez 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@0Utilisez à nouveau la commande
cbt readpour 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.yamlsum_columncontient la somme de 5 et 3 (8),min_columncontient le minimum des deux valeurs qui y ont été écrites (3) etmax_columncontient 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 8Facultatif : Interrogez la table dans la console Google Cloud avec SQL.
Dans la console Google Cloud , ouvrez la page Instances Bigtable.
Sélectionnez
counters-quickstart-instancedans 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 } Dans le terminal, supprimez la table
counters_quickstart_table:cbt deletetable counters_quickstart_tableSupprimez l'instance :
cbt deleteinstance counters-quickstart-instanceSupprimez le fichier
.cbtrc:rm ~/.cbtrcSupprimez le fichier de mise en forme :
rm ~/cbtformat.yamlFacultatif : Révoquez les identifiants de gcloud CLI :
gcloud auth revoke
Créer une instance Bigtable
Se connecter à l'instance
Créer une table avec des familles de colonnes agrégées
Créer des compteurs dans le tableau
Lire les données
Mettre à jour les compteurs
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.