Puedes usar el servicio de eliminación masiva administrado del modo Datastore para borrar datos de tu base de datos. Esta función admite la eliminación de uno o más tipos.
En esta página, se describe cómo borrar entidades de Firestore en modo Datastore de forma masiva con el servicio de eliminación masiva administrado. El servicio de eliminación masiva administrado del modo Datastore está disponible a través de la herramienta de línea de comandos de gcloud
y la API del modo Datastore (REST y RPC).
Antes de comenzar
Antes de usar el servicio administrado de eliminación masiva, debes completar las siguientes tareas:
- Habilita la facturación para tu proyecto de Google Cloud. Solo los proyectos de Google Cloud con facturación habilitada pueden usar la función de eliminación masiva.
-
Asegúrate de que tu cuenta tenga los permisos necesarios para el modo Datastore. Si eres el propietario del proyecto, tu cuenta ya tiene los permisos necesarios. De lo contrario, los siguientes roles otorgan los permisos necesarios para las operaciones de eliminación masiva:
- Funciones del modo Datastore:
Owner
,Cloud Datastore Owner
oCloud Datastore Bulk Admin
- Funciones del modo Datastore:
Configura gcloud
para tu proyecto
Puedes iniciar operaciones de eliminación masiva a través de la consola de Google Cloud o la herramienta de línea de comandos de gcloud
. Para usar gcloud
, configura la herramienta de línea de comandos y conecta tu proyecto de una de las siguientes maneras:
Accede a
gcloud
desde la consola de Google Cloud con Cloud Shell.Asegúrate de que
gcloud
esté configurado para el proyecto correcto:gcloud config set project [PROJECT_ID]
Borra datos de forma masiva
Una operación de eliminación masiva primero encuentra todas las entidades aplicables en tu base de datos y las borra por lotes. Puedes consultar o leer estas entidades, aunque los resultados pueden variar según el progreso realizado. La eliminación masiva no borrará las entidades que se agreguen o modifiquen después de que comience la operación.
Cómo borrar de forma masiva tipos específicos
gcloud
Para borrar de forma masiva tipos específicos, usa la marca --collection-ids
. La marca usa la terminología de Firestore, pero un ID de grupo de colecciones es igual que un ID de tipo. Con esta operación, se borran solo los tipos que tienen los IDs especificados. Un tipo incluye todas las entidades y entidades anidadas (ubicadas en cualquier ruta) con los tipos especificados.
gcloud beta firestore bulk-delete \ --collection-ids=[COLLECTION_GROUP_ID_1_OR_KIND_1],[COLLECTION_GROUP_ID_2_OR_KIND_2],[SUBCOLLECTION_GROUP_ID_1_OR_KIND_3] \ --database=[DATABASE]
Administra las operaciones de eliminación masiva
Después de iniciar una operación de eliminación masiva, el modo Datastore le asigna a la operación un nombre único. Puedes usar el nombre de la operación para borrarla, cancelarla o verificar su estado.
Los nombres de las operaciones incluyen el prefijo projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/
. Por ejemplo:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Sin embargo, puedes omitir el prefijo cuando especifiques el nombre de una operación para los comandos describe
, cancel
, y delete
.
Cómo enumerar todas las operaciones de eliminación masiva
gcloud
Para ver todas las operaciones en ejecución y las que se completaron recientemente, incluidas las operaciones de eliminación masiva, usa el comando operations list
:
gcloud firestore operations list
Verifica el estado de la operación
gcloud
Usa el comando operations describe
para mostrar el estado de una operación de eliminación masiva.
gcloud firestore operations describe [OPERATION_NAME]
Calcula el tiempo de finalización
Una solicitud del estado de una operación de larga duración muestra las métricas workEstimated
y workCompleted
. Cada una de estas métricas se muestra en cantidad de bytes y de entidades:
workEstimated
muestra la cantidad total estimada de bytes y entidades que procesará una operación. Es posible que el modo de Datastore omita esta métrica si no puede hacer una estimación.workCompleted
muestra la cantidad de bytes y entidades que se borraron hasta el momento. Cuando la operación se completa, el valor muestra la cantidad total real de bytes y entidades que se procesaron. Es posible que sea mayor que la del valor deworkEstimated
.
Divide workCompleted
entre workEstimated
para obtener una estimación aproximada del progreso. Es posible que esta estimación sea inexacta, ya que depende de la demora en la recopilación de estadísticas.
Cancela una operación
gcloud
Para detener una operación en curso, usa el comando operations cancel
:
gcloud firestore operations cancel [OPERATION_NAME]
Cancelar una operación en curso no deshace su progreso. Si cancelas una operación de eliminación masiva, no se recuperarán las entidades borradas.
Borra una operación
Usa el comando gcloud firestore operations delete
para quitar una operación completada de la lista de operaciones recientes. Para cancelar una operación en ejecución, usa la operación de cancelación anterior.
gcloud firestore operations delete [OPERATION_NAME]
Facturación y precios de las operaciones de eliminación masiva
Es obligatorio que habilites la facturación en tu proyecto de Google Cloud antes de usar el servicio administrado de eliminación masiva.
Las operaciones de eliminación masiva se cobran según las lecturas y eliminaciones de entidades con las tarifas que se indican en los precios del modo Datastore. Las operaciones de eliminación masiva generan una operación de lectura de entrada de índice por entidad encontrada y una operación de eliminación por entidad borrada. Se te cobra una operación de lectura por hasta 1,000 entradas de índice leídas. Por ejemplo, en el caso de una operación de eliminación masiva que borró 1,500 entidades, se te cobrarán 2 lecturas de entidades y 1,500 eliminaciones de entidades.
Ten en cuenta que el modo Datastore cobra por el trabajo realizado. Si la operación se cancela o falla debido a un error del usuario, se te cobrará el progreso realizado. El modo Datastore no cobrará por las operaciones de lectura ni eliminación de las entidades que no se borren (por ejemplo, las entidades que se modifiquen después de que se inicie la operación de eliminación). El costo se atribuirá el día en que se complete la operación.
Las operaciones de eliminación masiva no activarán las alertas de presupuesto de Google Cloud hasta que se completen. Del mismo modo, las operaciones de lectura y eliminación que se realizan durante una operación de eliminación masiva se aplican a tu cuota o uso sin cargo una vez que la operación se completa. Las operaciones de eliminación masiva no afectarán el uso que se muestra en la sección de uso de la consola.
Consulta los costos de la eliminación masiva
En las operaciones de eliminación masiva, se aplica la etiqueta goog-firestoremanaged:bulkdelete
a las operaciones facturadas. En la página de informes de Facturación de Cloud, puedes usar esta etiqueta para ver los costos relacionados con las operaciones de eliminación masiva.
Prácticas recomendadas
Evita omitir los datos borrados, ya que esto podría ralentizar las consultas.
Otra opción
Dataflow es un servicio administrado para desarrollar y ejecutar flujos de trabajo de procesamiento de datos que también pueden borrar datos de forma masiva. Dataflow proporciona una plantilla de eliminación de Datastore que puedes usar para borrar entidades seleccionadas mediante una consulta de GQL.
Para obtener más información, consulta la documentación de Dataflow sobre cómo ejecutar la plantilla de eliminación masiva de Datastore.
Si tu caso de uso implica la retención de datos, consulta Administra la retención de datos con políticas de TTL.