Utilizza il servizio di eliminazione collettiva gestito per eliminare i dati dal 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 collettiva gestito. Il servizio di eliminazione collettiva gestito
Cloud Firestore è disponibile tramite
lo strumento a riga di gcloud
comando e l'API Cloud Firestore REST.
Prima di iniziare
Prima di poter utilizzare il servizio di eliminazione collettiva gestito, devi completare le seguenti attività:
- Attiva la fatturazione per il tuo Google Cloud progetto. Solo i progetti con fatturazione attivata possono utilizzare la funzionalità di eliminazione collettiva.Google Cloud
-
Assicurati che il tuo account disponga delle autorizzazioni necessarie per Cloud Firestore. Se sei il proprietario del progetto, il tuo account dispone delle autorizzazioni richieste. In caso contrario, i seguenti ruoli concedono le autorizzazioni necessarie per le operazioni di eliminazione collettiva:
- Cloud Firestore ruoli:
Owner,Cloud Datastore OwneroCloud Datastore Bulk Admin
- Cloud Firestore ruoli:
Configura gcloud per il tuo progetto
Puoi avviare le operazioni di eliminazione collettiva tramite la console Google Cloud o
lo strumento a riga di comando gcloud. Per utilizzare gcloud, configura lo strumento a riga di comando
e connettiti al tuo progetto in uno dei seguenti modi:
Accedi a
gclouddalla console Google Cloud utilizzando Cloud Shell.Assicurati che
gcloudsia configurato per il progetto corretto:gcloud config set project [PROJECT_ID]
Elimina i dati in blocco
Un'operazione di eliminazione collettiva trova prima tutti i documenti applicabili nel 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'avvio dell'operazione.
Elimina in blocco gruppi di raccolte specifici
gcloud
Per eliminare in blocco gruppi di raccolte specifici, utilizza il
--collection-ids flag. L'operazione elimina solo
i gruppi di raccolte con gli ID specificati.
Un gruppo di raccolte
include tutti i documenti e i documenti nidificati (in qualsiasi percorso) con i
gruppi di raccolte 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]
restaurants di primo livello del database cymbal siano presenti più documenti che rappresentano i ristoranti. Sotto ogni documento del ristorante sono presenti
più sottoraccolte nidificate, come ratings, reviews e outlets. Per eliminare in blocco i gruppi di raccolte restaurants e reviews, il comando sarà il seguente:
gcloud firestore bulk-delete \ --collection-ids=restaurants,reviews \ --database='cymbal'
Gestisci le operazioni di eliminazione collettiva
Dopo aver avviato un'operazione di eliminazione collettiva, Cloud Firestore assegna all'operazione un nome univoco. Puoi utilizzare il nome dell'operazione per eliminare, annullare o controllare lo stato dell'operazione.
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 di 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 completate di recente, incluse le operazioni di eliminazione collettiva:
gcloud firestore operations list
Controlla lo stato dell'operazione
gcloud
Utilizza il comando operations describe per visualizzare lo stato di un'operazione di eliminazione collettiva.
gcloud firestore operations describe [OPERATION_NAME]
Stima il tempo di completamento
Una richiesta per lo stato di un'operazione a lunga esecuzione restituisce le metriche
workEstimated e workCompleted. Ognuna di queste metriche viene restituita sia in
numero di byte sia in numero di documenti:
workEstimatedmostra il numero totale stimato di byte e documenti che un' operazione elaborerà. Cloud Firestore potrebbe omettere questa metrica se non è in grado di effettuare una stima.workCompletedmostra 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 diworkEstimated.
Dividi workCompleted per workEstimated per una stima approssimativa dei progressi. Questa
stima potrebbe essere imprecisa, perché dipende dalla raccolta di statistiche
ritardate.
Annulla un'operazione
gcloud
Utilizza il operations cancel comando per interrompere un'operazione in corso:
gcloud firestore operations cancel [OPERATION_NAME]
L'annullamento di un'operazione in esecuzione non ne annulla l'effetto. Un'operazione di eliminazione collettiva annullata non recupera i documenti eliminati.
Elimina un'operazione
Utilizza il comando gcloud firestore operations delete per rimuovere
un'operazione completata dall'elenco delle operazioni recenti. Per annullare un'operazione in esecuzione, utilizza l'operazione di annullamento precedente.
gcloud firestore operations delete [OPERATION_NAME]
Fatturazione e prezzi per le operazioni di eliminazione collettiva
Prima di utilizzare il servizio di eliminazione collettiva gestito, devi attivare la fatturazione per il tuo progetto Google Cloud.
Le operazioni di eliminazione collettiva vengono addebitate per le letture e le eliminazioni dei documenti alle tariffe indicate nei Cloud Firestore prezzi. Le operazioni di eliminazione collettiva comportano una lettura della voce di indice per ogni documento trovato e un' operazione di eliminazione per ogni documento eliminato. Ti viene addebitata un'operazione di lettura per un massimo di 1000 voci di indice lette. Ad esempio, per un'operazione di eliminazione collettiva che ha eliminato 1500 documenti, ti verranno addebitate 2 letture di documenti e 1500 eliminazioni di documenti.Tieni presente che Cloud Firestore addebita il lavoro effettivo svolto. Se l' operazione viene annullata o non riesce a causa di un errore dell'utente, ti verrà addebitato il costo dei progressi compiuti. Cloud Firestore non addebiterà le letture o le eliminazioni dei documenti che non vengono eliminati, ad esempio i documenti che vengono modificati dopo l'avvio dell'operazione di eliminazione. Il costo verrà attribuito il giorno del completamento dell'operazione.
Le operazioni di eliminazione collettiva non attivano gli Google Cloud avvisi di budget di Google Cloud fino al completamento. Allo stesso modo, le letture e le eliminazioni eseguite durante un'operazione di eliminazione collettiva vengono applicate a l'utilizzo del livello senza costi al termine dell'operazione. Le operazioni di eliminazione collettiva non influiscono sull'utilizzo mostrato nella sezione di utilizzo della console.
Visualizza i costi di eliminazione collettiva
Le operazioni di eliminazione collettiva applicano l'goog-firestoremanaged:bulkdelete
etichetta alle operazioni fatturate. Nella pagina dei report di fatturazione Cloud,
puoi utilizzare questa etichetta per visualizzare i costi relativi alle operazioni di eliminazione collettiva.
Best practice
Evita di saltare i dati eliminati, perché potrebbero rallentare le query.