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 el Google Cloud CLI y la cbt CLI para crear tres contadores:

  • Un contador que mantiene una suma acumulada
  • Un contador que hace un seguimiento del mínimo de todos los valores agregados
  • Un contador que hace un seguimiento del máximo de todos los valores agregados

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. Instala Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Después de inicializar gcloud CLI, actualízala y, luego, instala los componentes necesarios:

    gcloud components update
    gcloud components install cbt
  6. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Seleccionar 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 resourcemanager.projects.create permiso. Obtén información para otorgar roles.
    • Crea un proyecto de: Google Cloud

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el Google Cloud proyecto de que estás creando.

    • Selecciona el Google Cloud proyecto de que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto de.

  7. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  8. Habilita las APIs de Cloud Bigtable y Cloud Bigtable Admin:

    Roles necesarios para habilitar las APIs

    Para habilitar las 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 información para otorgar roles.

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  9. Instala Google Cloud CLI.

  10. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  12. Después de inicializar gcloud CLI, actualízala y, luego, instala los componentes necesarios:

    gcloud components update
    gcloud components install cbt
  13. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Seleccionar 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 resourcemanager.projects.create permiso. Obtén información para otorgar roles.
    • Crea un proyecto de: Google Cloud

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el Google Cloud proyecto de que estás creando.

    • Selecciona el Google Cloud proyecto de que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto de.

  14. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  15. Habilita las APIs de Cloud Bigtable y Cloud Bigtable Admin:

    Roles necesarios para habilitar las APIs

    Para habilitar las 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 información para otorgar roles.

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  16. Ejecuta los siguientes comandos para asegurarte de que gcloud CLI esté actualizada y que incluya la cbt CLI :
    gcloud components update
    gcloud components install cbt

Crear una instancia de Bigtable.

  1. 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"
    

Conéctate a la instancia

  1. 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.

  2. Verifica que hayas configurado el archivo .cbtrc correctamente.

    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 cbt CLI con tu instancia.

Crea una tabla con familias de columnas agregadas

  1. Usa el cbt createtable comando para crear una tabla llamada counters_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 tipo Max con un tipo de entrada Integer.
    • La familia de columnas min_family es de tipo Min con un tipo de entrada Integer.
    • La familia de columnas sum_family es de tipo Sum con un tipo de entrada Integer.
    cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
    
  2. 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

  1. Usa el cbt addtocell comando para escribir un valor inicial de 5 en una columna nueva de cada una de las tres familias de columnas, con una clave de fila de row-key1 y una marca de tiempo de 0. Esta operación crea celdas agregadas, que usas 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

  1. Para ver los valores del contador como números enteros en lugar de bytes, define un yaml archivo que cbt CLI 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
    
  2. Verifica que hayas configurado el archivo cbtformat.yaml correctamente.

    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
    
  3. Usa el comando cbt read para pasar el yaml archivo 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.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

  1. 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
    
  2. 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 ella (3) y max_column contiene el máximo de los dos valores que se escribieron en ella (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
    
  3. Opcional: Consulta la tabla en la Google Cloud consola de con SQL.

    1. En la Google Cloud consola de, abre la página Instancias de Bigtable.

      Ir a la lista de instancias

    2. Selecciona counters-quickstart-instance de la lista.

    3. En el menú de navegación, haz clic en Bigtable Studio.

    4. Haz clic en la pestaña Editor.

    5. Pega esta consulta en el editor:

      SELECT * FROM `counters_quickstart_table`
      
    6. Haz clic en Ejecutar. Los resultados de la consulta se muestran 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": 8 }

Limpia

Para evitar que se apliquen cargos a tu Google Cloud cuenta de por los recursos que usaste en esta página, borra el Google Cloud proyecto de que tiene los recursos.

  1. En la terminal, borra la tabla counters_quickstart_table:

    cbt deletetable counters_quickstart_table
    
  2. Borra la instancia:

    cbt deleteinstance counters-quickstart-instance
    
  3. Borra el archivo .cbtrc:

    rm ~/.cbtrc
    
  4. Borra el archivo de formato:

    rm ~/cbtformat.yaml
    
  5. Opcional: Revoca credenciales desde gcloud CLI:

    gcloud auth revoke
    

¿Qué sigue?