Administra tablas

La forma más fácil de administrar las tablas de Cloud Bigtable es cuando usas la herramienta de línea de comandos de cbt. En esta página, se explica cómo usar cbt para crear, modificar y borrar tablas, y cómo obtener información sobre tablas existentes con cbt o Google Cloud Console.

La herramienta de cbt admite varios comandos que no se describen en esta página. Consulta la referencia de cbt para obtener una lista completa de comandos.

También puedes administrar tablas de manera programática mediante una de las bibliotecas cliente o API de servicio de Cloud Bigtable, o puedes administrar las tablas con la herramienta de línea de comandos de la shell de HBase. Consulta la sección sobre la documentación de HBase para obtener instrucciones para usar la shell de HBase.

Antes de comenzar

Antes de comenzar, debes Instalar la herramienta de cbt.

Configura la herramienta de cbt

Puedes especificar valores predeterminados para los siguientes parámetros de configuración de cbt:

  • El proyecto en el que está ubicada tu instancia de Cloud Bigtable.
  • La instancia de Cloud Bigtable a la que te vas a conectar.
  • El archivo de credenciales, en formato JSON, que debes usar cuando te conectes a tu instancia. Consulta las instrucciones para crear una clave de cuenta de servicio. Si hiciste la autenticación mediante la ejecución de gcloud auth application-default login, o si usas la herramienta de cbt en una instancia de Compute Engine, no necesitas un archivo de credenciales.
  • Los extremos de la API que vas a usar. Por lo general, no necesitarás cambiar estos valores.

A fin de especificar valores predeterminados para estos parámetros, crea un archivo .cbtrc en tu directorio de inicio. Puedes anular los valores predeterminados en .cbtrc mediante marcas de línea de comandos.

Para crear un archivo .cbtrc, ejecuta el siguiente comando y reemplaza [PROJECT_ID] y [INSTANCE_ID] con los valores adecuados:

echo -e "project = [PROJECT_ID]\ninstance = [INSTANCE_ID]" > ~/.cbtrc

Por simplicidad, para el resto de las instrucciones de esta página, se supone que has establecido el ID del proyecto y el ID de la instancia en tu archivo .cbtrc. También puedes usar las marcas -project y -instance para establecer estos valores cada vez que ejecutes cbt.

Crea una tabla

Cuando creas una tabla con la herramienta de cbt, no necesitas especificar las familias de columnas que deseas usar en la tabla. Después, puedes agregar o borrar familias de columnas.

Para crear una tabla, usa el siguiente comando y reemplaza [TABLE_NAME] con el nombre de tu tabla:

cbt createtable [TABLE_NAME]

Divide la tabla por clave de fila

Una característica de Cloud Bigtable como un servicio completamente administrado es la división automática de tablas en varios nodos. Siempre que sea posible, esta característica distribuye de manera uniforme la cantidad de datos almacenados en cada nodo y mantiene las filas de acceso frecuente separadas a fin de optimizar el rendimiento.

Cuando creas una tabla, puedes elegir las claves de fila para dividir la tabla antes. Por ejemplo, puedes designar filas específicas para dividir la tabla antes si vas a escribir una gran cantidad de filas en ella. No es esencial dividir la tabla antes, pero es beneficioso ya que proporciona información de Cloud Bigtable sobre dónde es probable que lleguen la carga y la huella de datos cuando la tabla se crea. La división previa evita que Cloud Bigtable tenga que dividir las tablas y volver a balancear la carga de una sola vez a medida que llegan los datos.

La tabla no permanece dividida en las claves de fila que eliges dividir antes cuando creas la tabla. Con el tiempo, Cloud Bigtable divide tu tabla en diferentes claves de fila, según la cantidad de datos que hay en la tabla y la frecuencia con que se accede a cada fila.

A fin de dividir una tabla antes según la clave de fila, usa la siguiente sintaxis para crear la tabla, y reemplaza [TABLE_NAME] con el nombre de la tabla y [SPLITS] con una lista separada por comas de los prefijos de clave de fila que se usarán para las divisiones previas:

cbt createtable [TABLE_NAME] splits=[SPLITS]

Por ejemplo, para dividir antes la tabla my-table en las claves de fila que comienzan con 10 y 20, ingresa el siguiente comando:

cbt createtable my-table splits=10,20

Modifica las familias de columnas en una tabla

Puedes usar la herramienta de cbt para agregar o borrar familias de columnas en una tabla existente.

Agrega familias de columnas

Para agregar una familia de columnas, usa el siguiente comando y reemplaza [TABLE_NAME] con el nombre de la tabla y [FAMILY_NAME] con el nombre de la familia de columnas:

cbt createfamily [TABLE_NAME] [FAMILY_NAME]

Por ejemplo, ingresa el siguiente comando para agregar las familias de columnas cf1 y cf2 a la tabla my-table:

cbt createfamily my-table cf1
cbt createfamily my-table cf2

Borra familias de columnas

Usa el siguiente comando para borrar una familia de columnas de una tabla y reemplaza [TABLE_NAME] con el nombre de la tabla y [FAMILY_NAME] con el nombre de la familia de columnas:

cbt deletefamily [TABLE_NAME] [FAMILY_NAME]

Por ejemplo, ingresa el siguiente comando para borrar la familia de columnas cf2 de la tabla my-table:

cbt deletefamily my-table cf2

Visualiza una lista de tablas

Console

Sigue estos pasos para ver una lista de tablas en una instancia:

  1. Abre la lista de instancias de Cloud Bigtable en Cloud Console.

    Abrir la lista de instancias

  2. Haz clic en la instancia que tiene las tablas deseas ver.

  3. Haz clic en Tablas en el panel izquierdo.

    La página Tablas muestra una lista de tablas en la instancia.

    • Haz clic en la flecha al lado del ID de la tabla para expandir una lista de replicaciones de la tabla.
    • Haz clic en Ver métricas junto al nombre de una tabla para ver los datos de supervisión de la tabla.

cbt

Ejecuta el siguiente comando para ver una lista de tablas en una instancia:

cbt ls

Visualiza información sobre una tabla

Puedes usar la herramienta de cbt para obtener una lista de las familias de columnas existentes en una tabla.

Usa el siguiente comando para ver las familias de columnas de una tabla y reemplaza [TABLE_NAME] con el nombre de la tabla:

cbt ls [TABLE_NAME]

Configura políticas de recolección de elementos no utilizados

En esta sección, se explica cómo usar la herramienta de cbt para controlar cuántas versiones de cada valor se retienen en Cloud Bigtable y cómo proporcionar una fecha de vencimiento para los valores. También puedes establecer políticas de recolección de elementos no utilizados de manera programática cuando usas una biblioteca cliente de Cloud Bigtable.

Retención de varias versiones de cada valor

Puedes especificar cuántas versiones de cada valor deseas retener en una familia de columnas al momento de crearla. Si no especificas esta configuración, Cloud Bigtable usa una de las siguientes opciones de configuración predeterminada:

  • Si creas la familia de columnas con el cliente de HBase para Java, la shell de HBase o cualquier otra herramienta que use este cliente, Cloud Bigtable retiene solo 1 versión de cada valor en la familia de columnas. Esta configuración predeterminada es coherente con HBase.
  • Si creas la familia de columnas con cualquier otra biblioteca cliente o herramienta, que incluye cbt, Cloud Bigtable conserva una cantidad infinita de versiones de cada valor.

Usa el siguiente comando para cambiar la cantidad de versiones que se encuentran retenidas dentro de una familia de columnas y reemplaza [TABLE_NAME] por el nombre de la tabla, [FAMILY_NAME] por el nombre de la familia de columnas y [VERSIONS] por la cantidad de versiones que se desea retener:

cbt setgcpolicy [TABLE_NAME] [FAMILY_NAME] maxversions=[VERSIONS]

Por ejemplo, ingresa el siguiente comando para actualizar la familia de columnas cf1 en la tabla my-table de modo que conserven cinco versiones de cada valor:

cbt setgcpolicy my-table cf1 maxversions=5

Configuración de plazo de vencimiento para los valores

Cuando creas una familia de columnas, puedes especificar el momento del vencimiento de cada valor. Si no especificas esta configuración, los valores de la familia de columnas no tendrán vencimiento.

Para hacer que los valores caduquen después de un período específico, usa el siguiente comando y reemplaza [TABLE_NAME] por el nombre de la tabla, [FAMILY_NAME] por el nombre de la familia de columnas y [DAYS] por la cantidad de días que desees conservar cada valor:

cbt setgcpolicy [TABLE_NAME] [FAMILY_NAME] maxage=[DAYS]d

Por ejemplo, ingresa el siguiente comando para quitar valores de la familia de columnas cf1 después de un día:

cbt setgcpolicy my-table cf1 maxage=1d

Borra una tabla

Para borrar una tabla, usa el siguiente comando y reemplaza [TABLE_NAME] por el nombre de la tabla:

cbt deletetable [TABLE_NAME]