Crea y actualiza contadores en Bigtable
Aprende a crear y actualizar contadores en Bigtable con agregados, celdas de tabla que agregan valores en el momento de la escritura. En esta guía de inicio rápido, se usa la consola deGoogle Cloud , Google Cloud CLI o la CLI de cbt para crear los siguientes contadores:
- Un contador que mantiene una suma en ejecución
- Es un contador que registra el valor mínimo de todos los valores agregados.
- Es un contador que registra el máximo de todos los valores agregados.
Antes de comenzar
-
Accede a tu Cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Después de inicializar gcloud CLI, actualízala y, luego, instala los componentes necesarios:
gcloud components update gcloud components install cbt
-
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu proyecto de Google Cloud .
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita las APIs de Cloud Bigtable y Cloud Bigtable Admin:
Roles necesarios para habilitar las APIs
Para habilitar APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com -
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Después de inicializar gcloud CLI, actualízala y, luego, instala los componentes necesarios:
gcloud components update gcloud components install cbt
-
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu proyecto de Google Cloud .
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita las APIs de Cloud Bigtable y Cloud Bigtable Admin:
Roles necesarios para habilitar las APIs
Para habilitar APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com - Ejecuta los siguientes comandos para asegurarte de que la gcloud CLI esté actualizada y que incluya la CLI de
cbt:gcloud components updategcloud components install cbt
Crea una instancia de Bigtable
Console
En la consola de Google Cloud , ve a la página Crear instancia.
En el campo Nombre de la instancia, ingresa
Counters quickstart instance.En el campo ID de instancia, ingresa
counters-quickstart-instance.Haz clic en Continuar.
En la sección Selecciona tu edición, elige Enterprise.
Haz clic en Continuar.
En la sección Tipo de almacenamiento, selecciona SSD.
Haz clic en Continuar.
En el campo ID del clúster, ingresa
counters-quickstart-cluster.En la lista Región, selecciona us-east1 (Carolina del Sur).
En la lista Zona, selecciona us-east1-c.
En la sección de ajuste de escala de nodos, selecciona Ajuste de escala automático y, luego, haz lo siguiente:
- En la cantidad mínima de nodos, ingresa
1. - En la cantidad máxima de nodos, ingresa
3.
- En la cantidad mínima de nodos, ingresa
Haz clic en Crear para crear la instancia.
gcloud
Usa el comando
bigtable instances createpara crear una instancia.gcloud bigtable instances create counters-quickstart-instance \ --display-name="Counters quickstart instance" \ --edition=ENTERPRISE \ --cluster-config=id="counters-quickstart-cluster",zone="us-east1-c"
Conéctate a la instancia
Configura la CLI de
cbtpara que use tu instancia y proyecto. Para ello, crea un archivo.cbtrc.echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrcReemplaza PROJECT_ID por el ID del proyecto que estás usando.
Verifica que hayas configurado correctamente el archivo
.cbtrc.cat ~/.cbtrcLa 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
cbtcon tu instancia.
Crea una tabla con familias de columnas de agregación
Console
En el panel de navegación izquierdo de la consola de Google Cloud , haz clic en Tablas.
Haz clic en Crear tabla.
En el campo ID de tabla, ingresa
counters_quickstart_table.En Familias de columnas, para cada familia de columnas que desees agregar, haz clic en Agregar una familia de columnas y, luego, ingresa los siguientes parámetros de configuración:
sum_family:- En el campo Nombre de la familia de columnas, ingresa
sum_family. - En la sección Tipo de familia de columnas, selecciona Agregado.
- En la lista Agregador, selecciona Suma.
- En la sección Configura la política de recolección de elementos no utilizados, selecciona Nunca recolectar elementos no utilizados.
- Haz clic en Listo.
- En el campo Nombre de la familia de columnas, ingresa
min_family:- En el campo Nombre de la familia de columnas, ingresa
min_family. - En la sección Tipo de familia de columnas, selecciona Agregado.
- En la lista Agregador, selecciona Min.
- En la sección Configura la política de recolección de elementos no utilizados, selecciona Nunca recolectar elementos no utilizados.
- Haz clic en Listo.
- En el campo Nombre de la familia de columnas, ingresa
max_family:- En el campo Nombre de la familia de columnas, ingresa
max_family. - En la sección Tipo de familia de columnas, selecciona Agregado.
- En la lista Agregador, selecciona Máx.
- En la sección Configura la política de recolección de elementos no utilizados, selecciona Nunca recolectar elementos no utilizados.
- Haz clic en Listo.
- En el campo Nombre de la familia de columnas, ingresa
Haz clic en Crear.
Para ver tus nuevas familias de columnas y sus configuraciones agregadas, haz lo siguiente:
- En el menú de navegación, haz clic en Bigtable Studio.
- En el árbol del Explorador de objetos de la izquierda, expande Tablas, luego
counters_quickstart_tabley, por último, Familias de columnas.
cbt
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 del tipoMaxcon un tipo de entrada deInt64. - La familia de columnas
min_familyes del tipoMincon un tipo de entrada deInt64. - La familia de columnas
sum_familyes del tipoSumcon un tipo de entrada deInt64.
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 lspara generar una lista de tus familias de columnas.cbt ls counters_quickstart_tableLa 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 addtocellpara escribir un valor inicial de5en una columna nueva de cada una de las tres familias de columnas, con una clave de fila derow-key1y una marca de tiempo de0. 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
Cómo leer los datos
Puedes leer los datos de tu tabla consultándola con SQL en la consola de Google Cloud o con la CLI decbt.
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-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 aparecen en la tabla Resultados y son similares a los siguientes:
_key max_family min_family sum_family row-key1 { "max_column": 5 } { "min_column": 5 } { "sum_column": 5 }
Lectura con la CLI de cbt
Para ver los valores del contador como números enteros en lugar de bytes, define un archivo YAML que la CLI de
cbtpueda 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.yamlVerifica que hayas configurado correctamente el archivo
cbtformat.yaml.cat ~/cbtformat.yamlLa 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: INT64Usa el comando
cbt readpara pasar el archivo YAML y leer los datos que agregaste a la tabla. Ahora, la tabla tiene tres columnas, cada una con un tipo de agregación diferente.cbt read counters_quickstart_table format-file=$HOME/cbtformat.yamlLa 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@0Vuelve a usar el comando
cbt readpara leer los datos de la tabla. Cada celda ahora contiene 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 escribieron en él (3) ymax_columncontiene 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
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página, borra el proyecto de Google Cloud que tiene los recursos.
Console
Borra la tabla
counters_quickstart_table:En la consola de Google Cloud , ve a la página Instancias de Bigtable.
En la lista de instancias, haz clic en Counters quickstart instance.
En el panel de navegación izquierdo, haz clic en Tablas.
Haz clic en junto a
counters_quickstart_tabley, luego, en Borrar.Ingresa
counters_quickstart_tablepara confirmar y, luego, haz clic en Borrar.
Borra la instancia:
En la consola de Google Cloud , ve a la página Instancias de Bigtable.
Haz clic en Counters quickstart instance.
Haz clic en Borrar instancia.
Ingresa
counters-quickstart-instancepara confirmar y, luego, haz clic en Borrar.
En la terminal, borra los archivos de configuración y las credenciales opcionales:
Borra el archivo
.cbtrc:rm ~/.cbtrcBorra el archivo de formato:
rm ~/cbtformat.yamlOpcional: Revoca credenciales desde gcloud CLI:
gcloud auth revoke
cbt
En la terminal, borra la tabla
counters_quickstart_table:cbt deletetable counters_quickstart_tableBorra la instancia:
cbt deleteinstance counters-quickstart-instanceBorra el archivo
.cbtrc:rm ~/.cbtrcBorra el archivo de formato:
rm ~/cbtformat.yamlOpcional: Revoca credenciales desde gcloud CLI:
gcloud auth revoke