Crea y administra tablas
En esta página, se explica cómo crear y realizar operaciones en las tablas de Bigtable con la consola de Google Cloud, Google Cloud CLI o la CLI de cbt
.
La CLI 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 crear y administrar tablas de manera programática con las bibliotecas cliente o las API de servicio de Cloud Bigtable.
Para obtener instrucciones sobre cómo crear y administrar vistas autorizadas de una tabla, consulta vistas autorizadas.
Antes de comenzar
Si planeas trabajar con tus tablas mediante herramientas de línea de comandos, sigue los pasos de esta sección.
Instala la CLI de gcloud
Opcional: Si planeas usar la CLI de
cbt
, sigue las instrucciones que se indican en Instala la CLI decbt
, incluido el paso para crear un archivo.cbtrc
.En las instrucciones de la CLI de
cbt
que se muestran en esta página, se da por sentado que estableciste el ID del proyecto y el ID de la instancia en tu archivo.cbtrc
. Como alternativa, puedes usar las marcas-project
y-instance
para establecer estos valores cada vez que ejecutes un comando de la CLI decbt
.
Crea una tabla
Cuando creas una tabla, no es necesario especificar las familias de columnas que se usarán en la tabla. Puedes agregar o borrar familias de columnas más adelante.
Console
Para crear una tabla nueva en una instancia, sigue estos pasos:
Abre la lista de instancias de Bigtable en la consola de Google Cloud.
Haz clic en la instancia que tiene las tablas deseas ver.
Haz clic en Tablas en el panel izquierdo.
En la página Tablas, se mostrará una lista de tablas de la instancia.
Ingresa un ID para la tabla.
Agrega familias de columnas (opcional)
Puedes agregar columnas ahora o más tarde. Una tabla debe tener al menos una familia de columnas antes de poder escribir datos en ella. Una tabla debe tener al menos una familia de columnas antes de poder escribir datos en ella o leer un flujo de cambios desde ella.
Opcional: Habilita un flujo de cambios para la tabla. Antes de habilitar un flujo de cambios, asegúrate de comprender las implicaciones, incluidos los costos de almacenamiento adicionales y los requisitos de uso del perfil de app. Para revisar estos detalles, consulta la descripción general de los flujos de cambios.
Selecciona Habilitar el flujo de cambios.
En el campo Tiempo de vencimiento, ingresa un número entre 1 y 7 para especificar la cantidad de días que se deben retener los datos del flujo de cambios.
Haz clic en Crear.
Opcional: Si no deseas que Bigtable cree una copia de seguridad diaria de la tabla, desmarca la casilla de verificación junto a Habilitar la copia de seguridad automática. Para obtener más información, consulta Cómo usar la copia de seguridad automática (versión preliminar).
Haz clic en Crea una tabla.
gcloud
Para crear una tabla, ejecuta el siguiente comando. Consulta gcloud bigtable instances tables create para obtener una lista completa de las opciones.
gcloud bigtable instances tables create TABLE_ID \
--instance=INSTANCE_ID \
--project=PROJECT_ID \
--column-families=COLUMN-FAMILIES
Reemplaza lo siguiente:
- TABLE_ID: Un ID único para la tabla nueva
- INSTANCE_ID: El ID de la instancia
- PROJECT_ID: Es el proyecto que contendrá la tabla nueva.
- COLUMN-FAMILIES: Es una lista separada por comas de nombres de familia de columnas. Puedes agregar más familias de columnas más adelante.
Opcional:
Para proteger la tabla contra la eliminación, agrega el comando con
--deletion-protection
. Si no aplicas este parámetro de configuración, se puede borrar la tabla. También puedes permitir de forma explícita la eliminación de tablas si agregas--no-deletion-protection
.Para habilitar un flujo de cambios para la tabla, especifica un período de retención para los datos del flujo de cambios. Antes de habilitar un flujo de cambios, asegúrate de comprender las implicaciones, incluidos los mayores costos de almacenamiento y los requisitos de uso del perfil de app. Para revisar estos detalles, consulta la descripción general de los flujos de cambios.
--change-stream-retention-period=RETENTION_PERIOD
Reemplaza RETENTION_PERIOD por el período durante el que Bigtable debe retener los datos del flujo de cambios de la tabla. El tiempo debe ser de uno a siete días. Las unidades aceptables son días (d), horas (h), minutos (m) y segundos (s). Ejemplos:
48h
o6d
Para permitir que Bigtable cree una copia de seguridad diaria de tu tabla, habilita la copia de seguridad automática (versión preliminar):
gcloud bigtable instances tables create TABLE_ID \ --instance=INSTANCE_ID \ --project=PROJECT_ID \ --column-families=COLUMN-FAMILIES \ --enable-automated-backup
cbt
Usa el siguiente comando y reemplaza TABLE_NAME
por el nombre de tu tabla. No puedes usar la CLI de cbt
para crear una tabla con un flujo de cambios habilitado.
cbt createtable TABLE_ID
Opcional: Para crear una familia de columnas aggregate en la tabla, agrega el nombre de la familia de columnas con el tipo de agregación. El siguiente fragmento de código crea una familia de columnas agregadas con una política de recolección de elementos no utilizados de never
.
cbt createtable TABLE_ID families=FAMILY_NAME:never:TYPE
Reemplaza lo siguiente:
- TABLE_ID: Un ID único para la tabla nueva
- FAMILY_NAME: Es una lista separada por comas de nombres de familia de columnas. Puedes agregar más familias de columnas más adelante.
- TYPE: Es el tipo de agregado. Debe ser
intsum
,intmin
,intmax
ointhll
.
Para obtener más opciones, consulta Cómo crear una tabla en la referencia de la CLI de cbt
.
Si borraste una tabla por error, no intentes crearla manualmente. Usa el comando bigtable instances tables undelete
de gcloud CLI para recuperar la tabla.
Opcional: Divide la tabla por clave de fila
Para optimizar el rendimiento, Bigtable divide las tablas de forma continua en varios nodos, distribuye de manera uniforme la cantidad de datos almacenados en cada nodo y mantiene las filas de acceso frecuente separadas siempre que sea posible. Este proceso continuo es automático.
Cuando creas una tabla nueva, puedes especificar las divisiones iniciales de la tabla. Bigtable divide la tabla en las claves de fila que proporciones. Si los espacios de claves son demasiado grandes, Bigtable divide aún más la tabla. Las divisiones iniciales se mantienen durante aproximadamente 24 horas después de que se completa la creación de la tabla. Puedes proporcionar hasta 100 claves de fila en las que deben ocurrir las divisiones iniciales.
Por ejemplo, puedes designar filas específicas para dividir la tabla antes si vas a escribir muchas filas en ella.
No es esencial dividir la tabla antes, pero es beneficioso, ya que proporciona información de 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 Bigtable tenga que dividir las tablas y volver a balancear la carga de una sola vez a medida que llegan los datos.
Console
No puedes dividir antes las filas cuando creas una tabla con la consola de Google Cloud.
gcloud
Para dividir una tabla por clave de fila, ejecuta el siguiente comando. Consulta gcloud bigtable instances tables create para obtener una lista completa de las opciones.
gcloud bigtable instances tables create TABLE_ID\
--instance=INSTANCE_ID \
--project=PROJECT_ID \
--column-families=COLUMN-FAMILIES \
--splits=SPLITS
Reemplaza lo siguiente:
- TABLE_ID: Un ID único para la tabla nueva
- INSTANCE_ID: El ID de la instancia
- PROJECT_ID: Es el proyecto que contendrá la tabla nueva.
- COLUMN-FAMILIES: Es una lista separada por comas de nombres de familia de columnas. Puedes agregar más familias de columnas más adelante.
- SPLITS: Son las claves de fila en las que la tabla debe dividirse inicialmente, por ejemplo,
10,20
.
cbt
Para dividir una tabla antes según la clave de fila, usa la siguiente sintaxis para crear la tabla. Reemplaza [TABLE_NAME]
por el nombre de la tabla y [SPLITS]
por 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 agregar familias de columnas en una tabla existente. Si la tabla no tiene habilitada la protección contra la eliminación, puedes borrar las familias de columnas de la tabla.
Agrega familias de columnas
Console
Abre la lista de instancias de Bigtable en la consola de Google Cloud.
Haz clic en la instancia que tiene las tablas deseas ver.
Haz clic en Tablas en el panel izquierdo.
En la página Tablas, se mostrará una lista de tablas de la instancia.
Haz clic en
Editar en la tabla que deseas modificar.Para cada familia de columnas que desees agregar, completa lo siguiente:
- Haz clic en Agregar familia de columnas.
- Proporciona un identificador único para la familia de columnas.
- Establece la política de recolección de elementos no utilizados para la familia de columnas.
- Haga clic en Listo.
- Haz clic en Guardar.
gcloud
No puedes usar gcloud CLI para agregar familias de columnas a una tabla.
cbt
Para agregar una familia de columnas a una tabla, usa el siguiente comando:
cbt createfamily TABLE_ID 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
Opcional: Para agregar una familia de columnas aggregate a la tabla, agrega el nombre de la familia de columnas con el tipo de agregación. El siguiente comando crea una tabla que tiene una familia de columnas agregadas con una política de recolección de elementos no utilizados de never
.
cbt createfamily TABLE_ID FAMILY_NAME:never:TYPE
Reemplaza lo siguiente:
- TABLE_ID: el ID de la tabla
- FAMILY_NAME: Es una lista separada por comas de nombres de familia de columnas. Puedes agregar más familias de columnas más adelante.
- TYPE: Es el tipo de agregación. Debe ser
intsum
,intmin
,intmax
ointhll
.
Borrar familias de columnas
Puedes borrar familias de columnas en una tabla que no tenga habilitada la protección contra la eliminación.
Console
Abre la lista de instancias de Bigtable en la consola de Google Cloud.
Haz clic en la instancia que tiene las tablas deseas ver.
Haz clic en Tablas en el panel izquierdo.
En la página Tablas, se mostrará una lista de tablas de la instancia.
Haz clic en
Editar en la tabla que deseas modificar.Para cada familia de columnas que desees borrar, completa los siguientes pasos:
- Coloca el cursor sobre la fila de la familia de columnas que desees borrar.
- Haga clic en .
Haz clic en Guardar.
Para confirmar que comprendes que la eliminación de una familia de columnas es permanente y que todos los datos en la familia de columnas se borrarán, escribe “Borrar familias de columnas” en el campo de texto.
Haz clic en Confirmar.
gcloud
No puedes usar gcloud CLI para borrar familias de columnas de una tabla.
cbt
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
Ve una lista de tablas
Console
Sigue estos pasos para ver una lista de tablas en una instancia:
Abre la lista de instancias de Bigtable en la consola de Google Cloud.
Haz clic en la instancia que tiene las tablas deseas ver.
Haz clic en Tablas en el panel izquierdo.
En la página Tablas, se mostrará una lista de tablas de 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.
gcloud
Para ver una lista de tablas, ejecuta el comando gcloud bigtable instances tables list.
gcloud bigtable instances tables list --instances=INSTANCE_IDS
Reemplaza lo siguiente:
- INSTANCE_IDS: Es una lista de IDs de instancias separadas por comas.
cbt
Ejecuta el siguiente comando para ver una lista de tablas en una instancia:
cbt ls INSTANCE_ID
Reemplaza lo siguiente:
INSTANCE_ID
: Es el identificador permanente de la instancia.
C++
Si deseas obtener información sobre cómo instalar y usar la biblioteca cliente de Bigtable, consulta las bibliotecas cliente de Bigtable.
Para autenticarte en Bigtable, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Si deseas obtener información sobre cómo instalar y usar la biblioteca cliente de Bigtable, consulta las bibliotecas cliente de Bigtable.
Para autenticarte en Bigtable, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Si deseas obtener información sobre cómo instalar y usar la biblioteca cliente de Bigtable, consulta las bibliotecas cliente de Bigtable.
Para autenticarte en Bigtable, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Si deseas obtener información sobre cómo instalar y usar la biblioteca cliente de Bigtable, consulta las bibliotecas cliente de Bigtable.
Para autenticarte en Bigtable, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Si deseas obtener información sobre cómo instalar y usar la biblioteca cliente de Bigtable, consulta las bibliotecas cliente de Bigtable.
Para autenticarte en Bigtable, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si deseas obtener información sobre cómo instalar y usar la biblioteca cliente de Bigtable, consulta las bibliotecas cliente de Bigtable.
Para autenticarte en Bigtable, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Si deseas obtener información sobre cómo instalar y usar la biblioteca cliente de Bigtable, consulta las bibliotecas cliente de Bigtable.
Para autenticarte en Bigtable, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ve información sobre una tabla
Console
Para ver información sobre una tabla, haz lo siguiente:
Abre la lista de instancias de Bigtable en la consola de Google Cloud.
Haz clic en la instancia que tiene las tablas deseas ver.
Haz clic en Tablas en el panel izquierdo.
En la página Tablas, se mostrará una lista de tablas de la instancia. Para cada tabla, la consola de Google Cloud muestra la cantidad de clústeres en los que se almacena la tabla, el estado de la tabla, el uso del almacenamiento y los identificadores de cualquier copia de seguridad actual de la tabla.
Para ver los nombres de las familias de columnas de la tabla, haz clic en
. Para cerrar el panel Editar tabla, haz clic en Cancelar.Para ver detalles adicionales sobre la tabla, incluidas las métricas a nivel de tabla y el estado de replicación, haz clic en el nombre de la tabla.
gcloud
Para ver información sobre una tabla, ejecuta el comando gcloud bigtable instances tables describe.
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID
Reemplaza lo siguiente:
- TABLE_ID: Un ID único de la tabla
- INSTANCE_ID: El ID de la instancia
cbt
Puedes usar la CLI de cbt
para obtener una lista de las familias de columnas existentes en una tabla.
Usa el siguiente comando y reemplaza [TABLE_NAME]
por el nombre de la tabla:
cbt ls [TABLE_NAME]
Configura políticas de recolección de elementos no utilizados
Una política de recolección de elementos no utilizados le indica a Bigtable qué datos conservar y cuáles marcar para su eliminación. Las políticas de recolección de elementos no utilizados se establecen a nivel de la familia de columnas. Puedes configurarlas cuando creas la tabla o después.
Cuando creas una familia de columnas, puedes especificar la cantidad de celdas que deseas retener en cada columna. Si no especificas este parámetro de configuración, Bigtable usa una de las siguientes opciones de configuración predeterminada:
Si creas la familia de columnas con el cliente de HBase de Cloud Bigtable para Java o la shell de HBase, o cualquier otra herramienta que utiliza el cliente de HBase para Java, Bigtable retiene solo 1 celda para cada una intersección entre fila y columna en la familia de columnas. Esta configuración predeterminada es coherente con HBase.
Si creas la familia de columnas con la consola de Google Cloud, cualquier otra biblioteca cliente o la CLI de
cbt
, Bigtable conserva una cantidad infinita de celdas en cada columna.
Consulta Configura políticas de recolección de elementos no utilizados para obtener instrucciones detalladas sobre cómo ver, configurar y actualizar las políticas de recolección de elementos no utilizados.
Crea una copia de seguridad de una tabla y restablécela
Consulta Administra copias de seguridad para obtener instrucciones sobre cómo crear una copia de seguridad de una tabla y restablecerla desde una copia de seguridad a una tabla nueva.
Si habilitaste la copia de seguridad automática mientras creabas una tabla, puedes modificar la configuración de la copia de seguridad automática de una tabla para habilitarla o inhabilitarla, o cambiar el período de retención a un máximo de 90 días desde la hora de creación de la copia de seguridad. Para obtener más información, consulta Cómo usar la copia de seguridad automática.
Habilita, inhabilita o configura un flujo de cambios
Si deseas obtener instrucciones para las siguientes tareas, consulta Configura un flujo de cambios.
- Habilita un flujo de cambios en una tabla existente
- Cómo inhabilitar un flujo de cambios
- Actualiza el período de retención de un flujo de cambios
Borra una tabla
Si borras una tabla, también se borran todas las vistas autorizadas de la tabla. No puedes borrar una tabla si alguna de las vistas autorizadas de la tabla tiene habilitada la protección contra la eliminación.
Console
Abre la lista de instancias de Bigtable en la consola de Google Cloud.
Haz clic en la instancia que tiene las tablas deseas ver.
Haz clic en Tablas en el panel izquierdo.
En la página Tablas, se mostrará una lista de tablas de la instancia.
Haz clic en
en la tabla que deseas borrar.Haz clic en Borrar.
Para confirmar que entiendes que esta acción borrará la tabla de todos los clústeres de la instancia y que solo tienes siete días a fin de recuperarla, escribe el ID de la tabla en el cuadro de texto.
Haz clic en Borrar.
gcloud
Para borrar tablas, ejecuta el comando gcloud bigtable instances tables delete.
gcloud bigtable instances tables delete --instance=INSTANCE_ID
Reemplaza lo siguiente:
- INSTANCE_ID: El ID de la instancia
En la terminal, ingresa
y
para confirmar la eliminación de la tabla.
cbt
Para borrar una tabla, usa el siguiente comando y reemplaza [TABLE_NAME]
por el nombre de la tabla:
cbt deletetable [TABLE_NAME]
Recupera una tabla
Si borras una tabla por accidente, puedes usar el comando bigtable instances tables undelete
de la CLI de gcloud para recuperar la tabla. No intentes crear manualmente la tabla borrada primero.
Para recuperar una tabla, ejecuta el siguiente comando en la terminal:
gcloud bigtable instances tables undelete TABLE_ID --instance=INSTANCE_ID
Reemplaza lo siguiente:
- TABLE_ID: el identificador único de la tabla
- INSTANCE_ID: El ID de la instancia
Se aplica la siguiente limitación:
- La capacidad de recuperar una tabla está disponible aproximadamente siete días desde el momento de la eliminación de la tabla.
- No puedes recuperar una tabla mediante la consola de Google Cloud, las bibliotecas cliente de Cloud Bigtable ni la CLI de
cbt
. - No puedes recuperar una tabla de una instancia que se borró.
- No puedes recuperar una tabla que tenga habilitadas las CMEK.
- Las vinculaciones de políticas de IAM detalladas que una tabla tiene antes de la eliminación no se restablecen cuando se anula la eliminación.
De forma opcional, puedes verificar el estado de la operación undelete
en los registros de auditoría.
Modifica la protección contra la eliminación
Puedes habilitar o inhabilitar la protección contra la eliminación de una tabla si eres una principal
en un rol que incluye el permiso bigtable.tables.update
, como roles/bigtable.admin
. La protección contra eliminación evita que se borren la tabla, todas las familias de columnas de la tabla y la instancia que la contiene.
Si habilitas la protección contra la eliminación para una tabla, no se habilitará para las vistas autorizadas de la tabla. Del mismo modo, inhabilitar la protección contra la eliminación de una tabla no la inhabilita para las vistas autorizadas de la tabla. Debes actualizar las vistas autorizadas de la tabla por separado.
Console
Abre la lista de instancias de Bigtable en la consola de Google Cloud.
Haz clic en la instancia que tiene las tablas deseas ver.
Haz clic en Tablas en el panel izquierdo.
En la página Tablas, se mostrará una lista de tablas de la instancia.
Haz clic en
junto al ID de la tabla.Para habilitar la protección contra la eliminación, haz clic en Evitar la eliminación. Para inhabilitar la protección contra la eliminación, haz clic en Habilitar eliminación. Solo se muestra la opción válida.
gcloud
Para habilitar la protección contra la eliminación de una tabla, ejecuta el comando gcloud bigtable instances
table update
:
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--deletion-protection
Para inhabilitar la protección contra la eliminación de una tabla, ejecuta lo siguiente:
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--no-deletion-protection
Reemplaza lo siguiente:
+ TABLE_ID: the unique identifier for the table
+ INSTANCE_ID: the ID of the instance
cbt
No puedes usar la CLI de cbt
para habilitar o inhabilitar la protección contra eliminación.