Eliminaciones
En este documento, se describe cómo borrar datos almacenados en Bigtable tablas, analiza cuándo debes usar cada enfoque y proporciona ejemplos. Antes de leer esta página, debes familiarizarte con Bigtable descripción general y comprender los conceptos involucrados en esquema el diseño de tu producto.
Para mantener la coherencia, las descripciones en esta página hacen referencia a los métodos de API que son para cada tipo de solicitud. Sin embargo, te recomendamos que siempre use una de las bibliotecas cliente de Bigtable para acceder a las APIs de Bigtable en lugar de usar REST o RPC.
Ejemplos en esta página datos de muestra similares a los que podría almacenar en Bigtable.
Para conocer la cantidad de veces que puedes usar las operaciones descritas en esta página por día, consulta Cuotas y límites.
Cómo borra los datos Bigtable
Cuando envías una solicitud de eliminación, las celdas se marcan para su eliminación y no se pueden leer. Los datos se quitan hasta una semana después durante compactación, un proceso en segundo plano que optimiza la tabla de forma continua. Los metadatos de eliminación pueden hacer que tus datos ocupen un poco más de espacio (varios KB por fila) durante unos días después de que envíes una solicitud de eliminación, hasta que se realice la próxima compactación.
Puedes enviar una solicitud de eliminación en cualquier momento, incluso si tu clúster superó el límite de almacenamiento y se bloquearon las operaciones de lectura y escritura.
Cómo borrar un rango de filas
Si quieres borrar una gran cantidad de datos almacenados en filas contiguas, usa
dropRowRange
Esta operación borra todas las filas de un rango de filas identificadas
con una fila inicial y final, o un prefijo de clave de fila.
Los valores de clave de fila que proporcionas cuando borras un rango de filas se consideran datos de servicio. Para obtener información sobre cómo se manejan los datos del servicio, consulta el Aviso de Privacidad de Google Cloud.
Una vez que se complete la eliminación correctamente y recibas una respuesta, podrás escribir datos de forma segura en el mismo rango de filas.
La operación dropRowRange
tiene las siguientes restricciones:
- No puedes descartar un rango de filas desde una vista autorizada.
- No puedes llamar al método
dropRowRange
de forma asíncrona. Si envías una solicituddropRowRange
a una tabla mientras otra solicitud está en curso, Bigtable muestra un errorUNAVAILABLE
con el mensajeA DropRowRange operation is already ongoing
. Para resolver el error, vuelve a enviar la solicitud. - En el caso de las instancias que usan la replicación, ten en cuenta que Bigtable podría tardar mucho tiempo en completar la operación debido al aumento de la latencia de replicación y el uso de CPU. Para borrar datos de una instancia que usa la replicación, usa la API de datos para leer y, luego, borrar tus datos.
En las siguientes muestras de código, se indica cómo descartar un rango de filas que comienzan con
el prefijo de clave de fila phone#5c10102
:
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 bibliotecas cliente.
Python
Para aprender a instalar y usar la biblioteca cliente de Bigtable, consulta 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 bibliotecas cliente.
Node.js
Para aprender a instalar y usar la biblioteca cliente de Bigtable, consulta 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 bibliotecas cliente.
Borra datos con los métodos de la API de datos
Si necesitas eliminar pequeñas cantidades de datos no contiguos, la eliminación de datos mediante un método que llame a la API de Cloud Bigtable (API de datos) suele ser el mejor es tu elección. Usa estos métodos si quieres borrar los MB, no los GB, de datos de una solicitud. Usar la API de datos es la única forma de borrar datos de una columna (no de la familia de columnas).
Los métodos de la API de datos llaman a MutateRows
con uno de los tres tipos de mutación:
- DeleteFromColumn
- DeleteFromFamily
- DeleteFromRow
Una solicitud de eliminación con la API de datos es atómica: la solicitud se realiza correctamente y se borran todos los datos o la solicitud falla y no se quita ningún dato.
En la mayoría de los casos, evita usar métodos CheckAndMutate
para borrar datos. En el caso poco frecuente de que necesites una coherencia sólida, te recomendamos que uses este enfoque, pero ten en cuenta que requiere muchos recursos y que el rendimiento podría verse afectado.
Para usar MutateRows
y borrar datos, envía una solicitud readRows
con un filtro para determinar lo que deseas borrar y, luego, envía la solicitud de eliminación. Para ver una lista de los filtros disponibles, consulta
Filtros.
En las muestras de esta sección, se supone que ya determinaste qué datos borrar.
Borrar de una columna
En las siguientes muestras de código, se muestra cómo borrar todas las celdas de una columna en una fila:
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 bibliotecas cliente.
Python
Para aprender a instalar y usar la biblioteca cliente de Bigtable, consulta 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 bibliotecas cliente.
Python asyncio
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 bibliotecas cliente.
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 bibliotecas cliente.
Cómo borrar elementos de una familia de columnas
En las siguientes muestras de código, se muestra cómo borrar celdas de una familia de columnas en una fila:
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 bibliotecas cliente.
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 bibliotecas cliente.
Python asyncio
Para aprender a instalar y usar la biblioteca cliente de Bigtable, consulta 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 bibliotecas cliente.
Node.js
Para aprender a instalar y usar la biblioteca cliente de Bigtable, consulta 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 bibliotecas cliente.
Cómo borrar de una fila
En los siguientes fragmentos de código, se muestra cómo borrar todas las celdas de una fila:
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 bibliotecas cliente.
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 bibliotecas cliente.
asyncio de Python
Para aprender a instalar y usar la biblioteca cliente de Bigtable, consulta 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 bibliotecas cliente.
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 bibliotecas cliente.
Borra por transmisión y por lotes
A menudo, la transmisión y el procesamiento por lotes de tus solicitudes de eliminación son la mejor manera de borrar grandes cantidades de datos. Esta estrategia puede ser útil cuando tienes información más requisitos de retención de datos que los permitidos por las políticas de recolección de elementos no utilizados.
Los siguientes fragmentos de código inician un flujo de datos (lee filas), los agrupan y, luego, revisan el lote y borran todas las celdas de la columna data_plan_01gb1
en la familia de columnas cell_plan
:
Java
Para aprender a instalar y usar la biblioteca cliente de Bigtable, consulta 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 bibliotecas cliente.
Python
Para aprender a instalar y usar la biblioteca cliente de Bigtable, consulta 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 bibliotecas cliente.
Python asyncio
Para aprender a instalar y usar la biblioteca cliente de Bigtable, consulta 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 bibliotecas cliente.
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 bibliotecas cliente.
Borra datos de una vista autorizada
Para borrar los datos de una tabla, envía una solicitud de eliminación a una vista autorizada. Debes usar una de las siguientes opciones:
- gcloud CLI
- Cliente de Bigtable para Java
Cuando borras datos de una vista autorizada, proporcionas el ID de la vista autorizada además del ID de la tabla.
Los datos que puedes borrar de una vista autorizada están limitados por la definición de la vista. Solo puedes borrar los datos que se incluyen en la vista autorizada. Si intentas borrar datos que están fuera de
la definición de vista autorizada o está sujeta a las siguientes reglas, un
se muestra el siguiente error de PERMISSION_DENIED
:
- No se admite borrar un rango de filas de una vista autorizada con
DropRowRange
en la API de administrador. - No se puede borrar desde una fila.
- Se admite la eliminación de una columna, siempre que sea para filas que se encuentran en la vista autorizada.
- Solo se permite borrar de una familia de columnas si esta está configurada para permitir todos los prefijos de calificadores de columna (
qualifier_prefixes=""
) en la vista autorizada.
Por ejemplo, si intentas borrar una fila especificada y esa fila contiene columnas en la tabla subyacente que no están en tu vista autorizada, la solicitud fallará.