Borra datos de forma masiva

Usa el servicio administrado de eliminación masiva para borrar datos de tu base de datos. Esta función admite la eliminación de uno o más grupos de colecciones.

En esta página, se describe cómo borrar documentos de forma masiva con el servicio administrado de eliminación masiva. El servicio administrado de eliminación masiva de Firestore está disponible a través de la gcloud herramienta de línea de comandos y la API de REST de Firestore.

Antes de comenzar

Antes de usar el servicio administrado de eliminación masiva, debes completar las siguientes tareas:

  1. Para la eliminación masiva de documentos, habilita la facturación para tu Google Cloud proyecto. Solo los proyectos de con facturación habilitada pueden usar la función de eliminación masiva. Google Cloud
  2. Asegúrate de que tu cuenta tenga los permisos necesarios para Firestore. 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:

    • Roles de Firestore: Owner, Cloud Datastore Owner, o Cloud Datastore Bulk Admin

Configura gcloud para tu proyecto

Puedes iniciar operaciones de eliminación masiva a través de la Google Cloud consola o la gcloud herramienta de línea de comandos. Para usar gcloud, configura la herramienta de línea de comandos y conecta tu proyecto de una de las siguientes maneras:

Borra datos de forma masiva

Una operación de eliminación masiva primero encuentra todos los documentos aplicables en tu base de datos y los borra por lotes. Aún puedes consultar o leer estos documentos, aunque los resultados pueden variar según el progreso realizado. La eliminación masiva no borrará los documentos que se agreguen o modifiquen después de que comience la operación.

Cómo borrar de forma masiva grupos de colecciones específicos

gcloud

Para borrar de forma masiva grupos de colecciones específicos, usa la --collection-ids marca. Con esta operación, se borran solo los grupos de colecciones que tienen los IDs especificados.

gcloud 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, Firestore le asigna 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 operations describe comando 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 documentos:

  • workEstimated muestra la cantidad total estimada de bytes y documentos que procesará una operación. Firestore puede omitir esta métrica si no puede hacer una estimación.

  • workCompleted muestra la cantidad de bytes y documentos que se borraron hasta el momento. Una vez que se completa la operación, el valor muestra la cantidad total de bytes y documentos que se procesaron realmente, que puede ser mayor que el valor de workEstimated.

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

Usa el operations cancel comando para detener una operación en curso:

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 los documentos borrados.

Borra una operación

Usa el gcloud firestore operations delete comando para quitar una operación completada de la lista de operaciones recientes. Para cancelar una operación en curso, 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 el Google Cloud proyecto 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 documentos con las tarifas que se indican en los precios de Firestore. Las operaciones de eliminación masiva generan una operación de lectura de entrada de índice por documento encontrado y una operación de eliminación por documento borrado. 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 documentos, se te cobrarán 2 lecturas de documentos y 1,500 eliminaciones de documentos.

Ten en cuenta que Firestore cobra por el trabajo real realizado. Si la operación se cancela o falla debido a un error del usuario, se te cobrará el progreso realizado. Firestore no cobrará por las operaciones de lectura ni eliminación de los documentos que no se borren, como los documentos 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 activan las Google Cloud alertas de presupuesto 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 uso de nivel gratuito una vez que la operación se completa. Las operaciones de eliminación masiva no afectan 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.