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.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 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.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 - Ejecuta los siguientes comandos para asegurarte de que gcloud CLI está actualizado e incluye la CLI de
cbt:gcloud components updategcloud components install cbt Usa el
bigtable instances createcomando 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
cbtpara que use tu proyecto e instancia creando un archivo.cbtrc.echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrcSustituye PROJECT_ID por el ID del proyecto que estés usando.
Comprueba que has configurado el archivo
.cbtrccorrectamente.cat ~/.cbtrcEn 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
cbtcon tu instancia.Usa el comando
cbt createtablepara crear una tabla llamadacounters_quickstart_tableque tenga tres familias de columnas agregadas. Configura cada familia de columnas con un tipo de agregación diferente:- La familia de columnas
max_familyes de tipoMaxcon un tipo de entradaInteger. - La familia de columnas
min_familyes de tipoMincon un tipo de entradaInteger. - La familia de columnas
sum_familyes de tipoSumcon 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_tableEl shell muestra un resultado similar al siguiente:
Family Name GC Policy ----------- --------- max_family <never> min_family <never> sum_family <never>Usa el comando
cbt addtocellpara escribir un valor inicial de5en una columna nueva de cada una de las tres familias de columnas. Para ello, usa la clave de filarow-key1y 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@0Para ver los valores del contador como números enteros en lugar de bytes, define un archivo
yamlque pueda usar lacbtCLI 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.yamlComprueba que has configurado el archivo
cbtformat.yamlcorrectamente.cat ~/cbtformat.yamlEn 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: INT64Usa el comando
cbt readpara transferir el archivoyamly 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.yamlEl 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 5Añ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@0Vuelve a usar el comando
cbt readpara leer los datos de la tabla. Cada celda contiene ahora un valor agregado.cbt read counters_quickstart_table format-file=$HOME/cbtformat.yamlsum_columncontiene la suma de 5 y 3 (8),min_columncontiene el mínimo de los dos valores que se le han asignado (3) ymax_columncontiene 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 8Opcional: 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-instanceen 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_tableElimina la instancia:
cbt deleteinstance counters-quickstart-instanceElimina el archivo
.cbtrc:rm ~/.cbtrcElimina el archivo de formato:
rm ~/cbtformat.yamlOpcional: 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.