Crear y actualizar contadores en Bigtable
Consulta cómo crear y actualizar contadores en Bigtable mediante agregaciones, celdas de tabla que agregan valores en el momento de la escritura. En esta guía de inicio rápido se usan la CLI de Google Cloud y la CLI cbt
para crear tres contadores:
- Un contador que mantiene una suma continua.
- Contador que registra el mínimo de todos los valores añadidos.
- Un contador que registra el máximo de todos los valores añadidos.
Antes de empezar
-
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 utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Después de inicializar gcloud CLI, actualízala e instala los componentes necesarios:
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.create
permission. Learn how to grant roles.
-
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.
-
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.enable
permission. Learn how to grant roles.gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Después de inicializar gcloud CLI, actualízala e instala los componentes necesarios:
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.create
permission. Learn how to grant roles.
-
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.
-
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.enable
permission. Learn how to grant roles.gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com - Ejecuta los siguientes comandos para asegurarte de que gcloud CLI está actualizado e incluye la CLI de
cbt
:gcloud components update
gcloud components install cbt
Usa el
bigtable instances create
comando para crear una instancia.gcloud bigtable instances create counters-quickstart-instance \ --display-name="Counters quickstart instance" \ --cluster-config=id="counters-quickstart-cluster",zone="us-east1-c"
Configura la CLI de
cbt
para que use tu proyecto e instancia creando un archivo.cbtrc
.echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrc
Sustituye PROJECT_ID por el ID del proyecto que estés usando.
Comprueba que has configurado el archivo
.cbtrc
correctamente.cat ~/.cbtrc
En el terminal se muestra el contenido del archivo
.cbtrc
, que es similar al siguiente:project = PROJECT_ID instance = counters-quickstart-instance
Ahora puedes usar la CLI
cbt
con tu instancia.Usa el comando
cbt createtable
para crear una tabla llamadacounters_quickstart_table
que tenga tres familias de columnas agregadas. Configura cada familia de columnas con un tipo de agregación diferente:- La familia de columnas
max_family
es de tipoMax
con un tipo de entradaInteger
. - La familia de columnas
min_family
es de tipoMin
con un tipo de entradaInteger
. - La familia de columnas
sum_family
es de tipoSum
con un tipo de entradaInteger
.
cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
- La familia de columnas
Muestra tus familias de columnas ejecutando el comando
cbt ls
.cbt ls counters_quickstart_table
El shell muestra un resultado similar al siguiente:
Family Name GC Policy ----------- --------- max_family <never> min_family <never> sum_family <never>
Usa el comando
cbt addtocell
para escribir un valor inicial de5
en una columna nueva de cada una de las tres familias de columnas. Para ello, usa la clave de filarow-key1
y la marca de tiempo0
. Esta operación crea celdas agregadas, que se usan como contadores.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
Para ver los valores del contador como números enteros en lugar de bytes, define un archivo
yaml
que pueda usar lacbt
CLI para dar formato al resultado. Ejecuta lo siguiente: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
Comprueba que has configurado el archivo
cbtformat.yaml
correctamente.cat ~/cbtformat.yaml
En el terminal se muestra el contenido del archivo
cbtformat.yaml
, que es similar al siguiente: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
Usa el comando
cbt read
para transferir el archivoyaml
y leer los datos que has añadido a la tabla. La tabla ahora tiene tres columnas, cada una con un tipo de agregación diferente.cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
El shell muestra un resultado similar al siguiente. Los valores tienen formato de número entero y las marcas de tiempo están en formato 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
Añade el valor 3 a cada columna de la tabla con las mismas marcas de tiempo que usaste al crear las celdas. En cada columna, el valor de la celda se combina con el valor que ya había en función del tipo de agregación de la celda.
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
Vuelve a usar el comando
cbt read
para leer los datos de la tabla. Cada celda contiene ahora un valor agregado.cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
sum_column
contiene la suma de 5 y 3 (8),min_column
contiene el mínimo de los dos valores que se le han asignado (3) ymax_column
contiene el máximo de los dos valores que se le han asignado (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
Opcional: Consulta la tabla en la Google Cloud consola con SQL.
En la Google Cloud consola, abre la página Instancias de Bigtable.
Selecciona
counters-quickstart-instance
en la lista.En el menú de navegación, haz clic en Bigtable Studio.
Haz clic en la pestaña Editor.
Pega esta consulta en el editor:
SELECT * FROM `counters_quickstart_table`
Haz clic en Ejecutar. Los resultados de la consulta se muestran en la tabla Resultados y tienen un aspecto similar al siguiente:
_key max_family min_family sum_family row-key1 { "max_column": 5 } { "min_column": 5 } { "sum_column": 8 } En la terminal, elimina la tabla
counters_quickstart_table
:cbt deletetable counters_quickstart_table
Elimina la instancia:
cbt deleteinstance counters-quickstart-instance
Elimina el archivo
.cbtrc
:rm ~/.cbtrc
Elimina el archivo de formato:
rm ~/cbtformat.yaml
Opcional: Revoca las credenciales de gcloud CLI:
gcloud auth revoke
Crear una instancia de Bigtable
Conectarse a la instancia
Crear una tabla con familias de columnas agregadas
Crear contadores en la tabla
Leer los datos
Actualizar los contadores
Limpieza
Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en esta página, elimina el Google Cloud proyecto con los recursos.