Borra datos de forma masiva
Puedes usar el servicio de eliminación masiva administrado de Firestore 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 Firestore de forma masiva con el servicio de eliminación masiva administrado. El servicio de eliminación masiva administrado de Firestore está disponible a través de la herramienta de línea de comandos de gcloud
y las APIs (de REST y de RPC) de Firestore.
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 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:
- Funciones de Firestore:
Owner
,Cloud Datastore Owner
oCloud Datastore Bulk Admin
- Funciones de Firestore:
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]
Cómo borrar 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. 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 marca --collection-ids
. Con esta operación, se borran solo los grupos de colecciones que tienen los IDs especificados. Un grupo de colecciones incluye todos los documentos y documentos anidados (ubicados en cualquier ruta) con los grupos de colecciones 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]
restaurants
de nivel superior de la base de datos cymbal
. En cada documento de restaurante, hay
varias subcolecciones anidadas, como ratings
, reviews
y outlets
. Para borrar de forma masiva los grupos de colecciones restaurants
y reviews
, tu comando se verá de la siguiente manera:
gcloud beta firestore bulk-delete \ --collection-ids=restaurants,reviews \ --database='cymbal'
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 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 documentos:
workEstimated
muestra la cantidad total estimada de bytes y documentos que se procesarán en una operación. Es posible que Firestore omita esta métrica si no puede hacer una estimación.workCompleted
muestra la cantidad de bytes y documentos que se borraron hasta el momento. Cuando la operación se completa, el valor muestra la cantidad total real de bytes y documentos 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 los documentos borrados.
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 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 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 (por ejemplo, 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 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.