Verwenden Sie den verwalteten Dienst zum Löschen im Bulk, um Daten aus Ihrer Datenbank zu löschen. Dieses Feature unterstützt das Löschen für eine oder mehrere Sammlungsgruppen.
Verwalteter Dienst zum gleichzeitigen Löschen mehrerer Apps
Wenn Sie Dokumente im Bulk löschen möchten, verwenden Sie den verwalteten Dienst zum Löschen im Bulk. Der verwaltete Dienst Cloud Firestore für das Bulk-Löschen ist über das gcloud-Befehlszeilentool und die Cloud Firestore REST API verfügbar.
Hinweis
Bevor Sie den verwalteten Dienst zum Bulk-Löschen verwenden können, müssen Sie die folgenden Aufgaben ausführen:
- Wenn Sie Dokumente im Bulk löschen möchten, aktivieren Sie die Abrechnung für Ihr Google Cloud-Projekt. Nur Google Cloud-Projekte mit aktivierter Abrechnung können die Funktion zum Bulk-Löschen verwenden.
-
Ihr Konto muss die erforderlichen Berechtigungen für Cloud Firestore haben. Wenn Sie der Projektinhaber sind, hat Ihr Konto die erforderlichen Berechtigungen. Andernfalls gewähren die folgenden Rollen die erforderlichen Berechtigungen für Bulk-Löschvorgänge:
- Cloud Firestore-Rollen:
Owner,Cloud Datastore OwneroderCloud Datastore Bulk Admin
- Cloud Firestore-Rollen:
gcloud für das Projekt einrichten
Sie können Bulk-Löschvorgänge über die Google Cloud Console oder das gcloud-Befehlszeilentool initiieren. Wenn Sie gcloud verwenden möchten, richten Sie das Befehlszeilentool ein und stellen Sie auf eine der folgenden Arten eine Verbindung zu Ihrem Projekt her:
Greifen Sie über die Google Cloud Console mit Cloud Shell auf
gcloudzu.Achten Sie darauf, dass
gcloudfür das richtige Projekt konfiguriert ist:gcloud config set project [PROJECT_ID]
Daten mit dem verwalteten Dienst zum Bulk-Löschen löschen
Bei einem Bulk-Löschvorgang werden zuerst alle entsprechenden Dokumente in Ihrer Datenbank gesucht und dann in Batches gelöscht. Sie können diese Dokumente weiterhin abfragen oder lesen, die Ergebnisse können jedoch je nach Fortschritt variieren. Beim Bulk-Löschen werden keine Dokumente gelöscht, die nach Beginn des Vorgangs hinzugefügt oder geändert wurden.
Bestimmte Sammlungsgruppen im Bulk löschen
gcloud
Wenn Sie bestimmte Sammlungsgruppen im Bulk löschen möchten, verwenden Sie das Flag --collection-ids.
Bei diesem Vorgang werden nur die Sammlungsgruppen mit den angegebenen IDs gelöscht.
Eine Sammlungsgruppe enthält alle Dokumente und verschachtelten Dokumente (an einem beliebigen Pfad) mit den angegebenen Sammlungsgruppen.
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 der Datenbank cymbal darstellen. Unter jedem Restaurantdokument befinden sich mehrere verschachtelte Unter-Sammlungen wie ratings, reviews und outlets. Wenn Sie die Sammlungsgruppen restaurants und reviews im Bulk löschen möchten, sieht der Befehl so aus:
gcloud firestore bulk-delete \ --collection-ids=restaurants,reviews \ --database='cymbal'
Bulk-Löschvorgänge verwalten
Nachdem Sie einen Bulk-Löschvorgang gestartet haben, weist Cloud Firestore dem Vorgang einen eindeutigen Namen zu. Sie können den Vorgangsnamen verwenden, um den Vorgang zu löschen, abzubrechen oder den Status zu prüfen.
Vorgangsnamen wird projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/ vorangestellt, zum Beispiel:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Sie können das Präfix jedoch weglassen, wenn Sie einen Vorgangsnamen für die Befehle describe, cancel und delete angeben.
Alle Bulk-Löschvorgänge auflisten
gcloud
Verwenden Sie den Befehl operations list, um alle laufenden und kürzlich abgeschlossenen Vorgänge aufzurufen, einschließlich der Vorgänge zum Bulk-Löschen:
gcloud firestore operations list
Vorgangsstatus prüfen
gcloud
Verwenden Sie den Befehl operations describe, um den Status eines Bulk-Löschvorgangs anzuzeigen.
gcloud firestore operations describe [OPERATION_NAME]
Fertigstellungszeit schätzen
Eine Anfrage für den Status eines Vorgangs mit langer Ausführungszeit liefert die Messwerte workEstimated und workCompleted. Jeder dieser Messwerte wird sowohl in der Anzahl der Byte als auch in der Anzahl der Dokumente zurückgegeben:
workEstimatedzeigt die geschätzte Gesamtzahl der Byte und Dokumente an, die ein Vorgang verarbeitet. Cloud Firestore lässt diesen Messwert möglicherweise weg, wenn keine Schätzung möglich ist.workCompletedzeigt die Anzahl der bisher gelöschten Byte und Dokumente an. Nach Abschluss des Vorgangs wird die Gesamtzahl der tatsächlich verarbeiteten Byte und Dokumente angezeigt. Dieser Wert kann größer als der Wert vonworkEstimatedsein.
Teilen Sie workCompleted durch workEstimated, um eine grobe Schätzung des Fortschritts zu erhalten. Diese Schätzung ist möglicherweise ungenau, da sie von der verzögerten Statistikerfassung abhängt.
Vorgang abbrechen
gcloud
Verwenden Sie den Befehl operations cancel, um einen laufenden Vorgang zu beenden:
gcloud firestore operations cancel [OPERATION_NAME]
Wenn Sie einen laufenden Vorgang abbrechen, wird er nicht rückgängig gemacht. Bei einem abgebrochenen Bulk-Löschvorgang werden die gelöschten Dokumente nicht wiederhergestellt.
Vorgang löschen
Verwenden Sie den Befehl gcloud firestore operations delete, um einen abgeschlossenen Vorgang aus der Liste der letzten Vorgänge zu entfernen. Wenn Sie einen laufenden Vorgang abbrechen möchten, verwenden Sie den vorherigen Abbruchvorgang.
gcloud firestore operations delete [OPERATION_NAME]
Abrechnung und Preise für verwaltete Bulk-Löschvorgänge
Sie müssen die Abrechnung für Ihr Google Cloud-Projekt aktivieren, bevor Sie den verwalteten Dienst zum Bulk-Löschen verwenden können.
Für Bulk-Löschvorgänge werden Lese- und Löschvorgänge für Dokumente zu den in der Cloud Firestore-Preisübersicht aufgeführten Preisen in Rechnung gestellt. Bei Bulk-Löschvorgängen wird pro gefundenem Dokument ein Indexeintrag gelesen und pro gelöschtem Dokument ein Löschvorgang ausgeführt. Ihnen wird ein Lesevorgang für bis zu 1.000 gelesene Indexeinträge in Rechnung gestellt. Beispiel: Für einen Bulk-Löschvorgang, bei dem 1.500 Dokumente gelöscht wurden, werden Ihnen 2 Dokumentlesevorgänge und 1.500 Dokumentlöschvorgänge in Rechnung gestellt.Beachten Sie, dass Cloud Firestore die tatsächlich ausgeführte Arbeit in Rechnung stellt. Wenn der Vorgang abgebrochen wird oder aufgrund eines Nutzerfehlers fehlschlägt, werden Ihnen die Kosten für den bis dahin erzielten Fortschritt in Rechnung gestellt. Cloud Firestore berechnet keine Lese- oder Löschvorgänge für Dokumente, die nicht endgültig gelöscht werden, z. B. Dokumente, die nach dem Start des Löschvorgangs geändert werden. Die Kosten werden am Tag des Abschlusses des Vorgangs zugewiesen.
Bei Bulk-Löschvorgängen werden Ihre Google Cloud-Budgetwarnungen erst nach Abschluss ausgelöst. Ebenso werden Lesevorgänge und Löschvorgänge, die während eines Bulk-Löschvorgangs ausgeführt werden, nach Abschluss des Vorgangs auf Ihre Nutzung der kostenlosen Stufe angerechnet. Bulk-Löschvorgänge wirken sich nicht auf die Nutzung aus, die im Abschnitt „Nutzung“ der Console angezeigt wird.
Kosten für das Löschen im Bulk ansehen
Bei Bulk-Löschvorgängen wird das Label goog-firestoremanaged:bulkdelete auf abgerechnete Vorgänge angewendet. Auf der Seite Cloud Billing-Berichte können Sie dieses Label verwenden, um die Kosten für Bulk-Löschvorgänge aufzurufen.
Best Practices
Vermeiden Sie das Überspringen gelöschter Daten, da dies die Abfragen verlangsamen kann.