Eliminare i dati collettivamente

Utilizza il servizio di eliminazione collettiva gestito per eliminare i dati dal tuo database. Questa funzionalità supporta l'eliminazione di uno o più gruppi di raccolte.

Questa pagina descrive come eliminare i documenti in blocco utilizzando il servizio di eliminazione in blocco gestito. Il servizio di eliminazione collettiva gestita di Firestore con compatibilità MongoDB è disponibile tramite lo strumento a riga di comando gcloud e l'API REST di Firestore.

Prima di iniziare

Prima di poter utilizzare il servizio di eliminazione collettiva gestita, devi completare le seguenti attività:

  1. Per l'eliminazione collettiva dei documenti, abilita la fatturazione per il tuo progetto Google Cloud . Solo i progetti Google Cloud con fatturazione abilitata possono utilizzare la funzionalità di eliminazione collettiva.
  2. Assicurati che il tuo account disponga delle autorizzazioni necessarie per Firestore con compatibilità MongoDB. Se sei il proprietario del progetto, il tuo account dispone delle autorizzazioni necessarie. In caso contrario, i seguenti ruoli concedono le autorizzazioni necessarie per le operazioni di eliminazione collettiva:

Configura gcloud per il tuo progetto

Puoi avviare operazioni di eliminazione collettiva tramite la console Google Cloud o lo strumento a riga di comandogcloud. Per utilizzare gcloud, configura lo strumento a riga di comando e connettiti al tuo progetto in uno dei seguenti modi:

Eliminare i dati collettivamente

Un'operazione di eliminazione collettiva prima trova tutti i documenti applicabili nel tuo database e li elimina in batch. Puoi comunque eseguire query o leggere questi documenti, anche se i risultati possono variare in base ai progressi compiuti. L'eliminazione collettiva non elimina i documenti aggiunti o modificati dopo l'inizio dell'operazione.

Eliminare in blocco gruppi di raccolte specifici

gcloud

Per eliminare in blocco gruppi di raccolte specifici, utilizza il flag --collection-ids. L'operazione elimina solo i gruppi di raccolte con gli ID specificati.

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]
Ad esempio, considera più documenti che rappresentano ristoranti nella raccolta restaurants del database cymbal. Hai anche raccolte per ratings, reviews e outlets. Per eliminare collettivamente le raccolte restaurants e reviews, il comando ha il seguente aspetto:

gcloud firestore bulk-delete \
--collection-ids=restaurants,reviews \
--database='cymbal'

Gestire le operazioni di eliminazione collettiva

Dopo aver avviato un'operazione di eliminazione collettiva, Firestore con compatibilità MongoDB assegna all'operazione un nome univoco. Puoi utilizzare il nome dell'operazione per eliminarla, annullarla o controllarne lo stato.

I nomi delle operazioni hanno il prefisso projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/, ad esempio:

projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg

Tuttavia, puoi omettere il prefisso quando specifichi un nome dell'operazione per i comandi describe, cancel e delete.

Elenca tutte le operazioni di eliminazione collettiva

gcloud

Utilizza il comando operations list per visualizzare tutte le operazioni in esecuzione e quelle completate di recente, comprese le operazioni di eliminazione collettiva:

gcloud firestore operations list

Controlla lo stato dell'operazione

gcloud

Utilizza il comando operations describe per mostrare lo stato di un'operazione di eliminazione collettiva.

gcloud firestore operations describe [OPERATION_NAME]

Stimare il tempo di completamento

Una richiesta dello stato di un'operazione a lunga esecuzione restituisce le metriche workEstimated e workCompleted. Ciascuna di queste metriche viene restituita sia in numero di byte che in numero di documenti:

  • workEstimated mostra il numero totale stimato di byte e documenti che un'operazione elaborerà. Firestore con compatibilità MongoDB potrebbe omettere questa metrica se non è in grado di fare una stima.

  • workCompleted mostra il numero di byte e documenti eliminati finora. Al termine dell'operazione, il valore mostra il numero totale di byte e documenti effettivamente elaborati, che potrebbe essere maggiore del valore di workEstimated.

Dividi workCompleted per workEstimated per una stima approssimativa dell'avanzamento. Questa stima potrebbe essere imprecisa perché dipende dalla raccolta di statistiche ritardate.

Annullare un'operazione

gcloud

Utilizza il comando operations cancel per interrompere un'operazione in corso:

gcloud firestore operations cancel [OPERATION_NAME]

L'annullamento di un'operazione in esecuzione non la annulla. Un'operazione di eliminazione collettiva annullata non recupera i documenti eliminati.

Eliminare un'operazione

Utilizza il comando gcloud firestore operations delete per rimuovere un'operazione completata dall'elenco delle operazioni recenti. Per annullare un'operazione in corso, utilizza l'operazione di annullamento precedente.

gcloud firestore operations delete [OPERATION_NAME]

Fatturazione e prezzi per le operazioni di eliminazione collettiva

Devi abilitare la fatturazione per il tuo progetto Google Cloud prima di utilizzare il servizio di eliminazione collettiva gestita.

Le operazioni di eliminazione collettiva vengono addebitate per letture ed eliminazioni di documenti alle tariffe elencate nei prezzi di Firestore Enterprise.

Ti viene addebitata 1 unità di scrittura per ogni tranche di 1 KiB di dati del documento o dati della voce di indice eliminati.

Ti viene addebitata almeno un'unità di lettura per ogni documento eliminato. Se la dimensione del nome del documento è superiore a 4 KiB, ti viene addebitata 1 unità di lettura per ogni tranche di 4 KiB, arrotondata per eccesso, per quel documento.

Tieni presente che Firestore con compatibilità MongoDB addebita i costi in base al lavoro effettivo svolto. Se l'operazione viene annullata o non riesce a causa di un errore dell'utente, ti verrà addebitato l'avanzamento raggiunto. Firestore con compatibilità MongoDB non addebiterà letture o eliminazioni per i documenti che non vengono eliminati definitivamente, ad esempio i documenti che vengono modificati dopo l'inizio dell'operazione di eliminazione. Il costo verrà attribuito il giorno del completamento dell'operazione.

Le operazioni di eliminazione collettiva non attivano gli avvisi relativi al budget Google Cloud fino al completamento. Allo stesso modo, le letture e le eliminazioni eseguite durante un'operazione di eliminazione collettiva vengono applicate all'utilizzo del livello senza costi al termine dell'operazione. Le operazioni di eliminazione collettiva non influiscono sull'utilizzo mostrato nella sezione Utilizzo della console.

Visualizzare i costi dell'eliminazione collettiva

Le operazioni di eliminazione collettiva applicano l'etichetta goog-firestoremanaged:bulkdelete alle operazioni fatturate. Nella pagina dei report di fatturazione Cloud, puoi utilizzare questa etichetta per visualizzare i costi relativi alle operazioni di eliminazione collettiva.