Crea y actualiza contadores en Bigtable
Aprende a crear y actualizar contadores en Bigtable con totales,
células de tabla que agregan valores en el momento de la escritura. En esta guía de inicio rápido, se usa Google Cloud CLI y la CLI de cbt
para crear tres contadores:
- Un contador que mantiene una suma en curso
- Un contador que realiza un seguimiento del mínimo de todos los valores agregados
- Un contador que realiza un seguimiento del máximo de todos los valores agregados
Antes de comenzar
-
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 - Ejecuta los siguientes comandos para asegurarte de que gcloud CLI esté actualizada y que incluya la CLI de
cbt
:gcloud components update
gcloud components install cbt
Crear una instancia de Bigtable.
Usa el comando
bigtable instances create
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"
Conéctese a su instancia
Configura la CLI de
cbt
para que use tu instancia y proyecto. Para ello, crea un archivo.cbtrc
.echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrc
Reemplaza PROJECT_ID por el ID del proyecto que estás usando.
Verifica que hayas configurado correctamente el archivo
.cbtrc
.cat ~/.cbtrc
La terminal muestra el contenido del archivo
.cbtrc
, que es similar a lo siguiente:project = PROJECT_ID instance = counters-quickstart-instance
Ahora puedes usar la CLI de
cbt
con tu instancia.
Crea una tabla con familias de columnas agregadas
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 del tipoMax
con un tipo de entrada deInteger
. - La familia de columnas
min_family
es del tipoMin
con un tipo de entrada deInteger
. - La familia de columnas
sum_family
es del tipoSum
con un tipo de entrada deInteger
.
cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
- La familia de columnas
Ejecuta el comando
cbt ls
para generar una lista de tus familias de columnas.cbt ls counters_quickstart_table
La shell muestra un resultado similar al siguiente:
Family Name GC Policy ----------- --------- max_family <never> min_family <never> sum_family <never>
Crea contadores en la tabla
Usa el comando
cbt addtocell
para escribir un valor inicial de5
en una columna nueva en cada una de las tres familias de columnas, con una clave de fila derow-key1
y una marca de tiempo de0
. Esta operación crea celdas agregadas, que puedes usar 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
Lee los datos
Para ver los valores del contador como números enteros en lugar de bytes, define un archivo
yaml
que la CLI decbt
pueda usar 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
Verifica que hayas configurado correctamente el archivo
cbtformat.yaml
.cat ~/cbtformat.yaml
La terminal muestra el contenido del archivo
cbtformat.yaml
, que es similar a lo 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 pasar el archivoyaml
y leer los datos que agregaste 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
La shell muestra un resultado similar al siguiente. Los valores tienen formato de números enteros 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
Actualiza los contadores
Agrega un valor de 3 a cada columna de la tabla con las mismas marcas de tiempo que usaste cuando creaste las celdas. En cada columna, el valor de la celda se combina con el valor existente según el 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 ahora contiene 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 escribieron en él (3) ymax_column
contiene el máximo de los dos valores que se escribieron en él (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 consola de Google Cloud con SQL.
En la consola de Google Cloud, 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 se ven de la siguiente manera:
_key max_family min_family sum_family row-key1 { "max_column": 5 } { "min_column": 5 } { "sum_column": 8 }
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en esta página, borra el proyecto de Cloud que tiene los recursos.
En la terminal, borra la tabla
counters_quickstart_table
:cbt deletetable counters_quickstart_table
Borra la instancia:
cbt deleteinstance counters-quickstart-instance
Borra el archivo
.cbtrc
:rm ~/.cbtrc
Borra el archivo de formato:
rm ~/cbtformat.yaml
Opcional: Revoca credenciales desde gcloud CLI:
gcloud auth revoke