Daten im Bulk löschen

Mit dem verwalteten Dienst zum Bulk-Löschen können Sie Daten aus Ihrer Datenbank löschen. Diese Funktion unterstützt das Löschen von Daten aus einer oder mehreren Sammlungsgruppen.

Verwalteter Dienst zum gleichzeitigen Löschen mehrerer Apps

Wenn Sie Dokumente im Bulk löschen möchten, verwenden Sie den verwalteten Bulk-Löschdienst. Der verwaltete Dienst zum Bulk-Löschen von Cloud Firestore ist über das gcloud-Befehlszeilentool und die Cloud Firestore REST API verfügbar.

Hinweis

Bevor Sie den verwalteten Dienst zum Massenlöschen verwenden können, müssen Sie die folgenden Aufgaben ausführen:

  1. Wenn Sie Dokumente im Bulk löschen möchten, aktivieren Sie die Abrechnung für Ihr Google Cloud-Projekt. Die Funktion zum Bulk-Löschen kann nur für Google Cloud-Projekte mit aktivierter Abrechnung verwendet werden.
  2. Prüfen Sie, ob Ihr Konto die erforderlichen Berechtigungen für Cloud Firestore hat. Wenn Sie der Projektinhaber sind, hat Ihr Konto die erforderlichen Berechtigungen. Andernfalls gewähren die folgenden Rollen die erforderlichen Berechtigungen für Massenlöschvorgänge:

    • Cloud Firestore-Rollen:Owner, Cloud Datastore Owner oder Cloud Datastore Bulk Admin

gcloud für das Projekt einrichten

Sie können Massenlöschvorgänge über die Google Cloud Console oder das gcloud-Befehlszeilentool starten. Richten Sie das Befehlszeilentool ein, um gcloud zu verwenden, und stellen Sie mit einer der folgenden Methoden eine Verbindung zu Ihrem Projekt her:

Daten mit dem verwalteten Bulk-Löschdienst löschen

Bei einem Massenlöschvorgang werden zuerst alle zutreffenden 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 Massenlöschen werden keine Dokumente gelöscht, die nach Beginn des Vorgangs hinzugefügt oder geändert wurden.

Bestimmte Sammlungsgruppen gleichzeitig löschen

gcloud

Wenn Sie bestimmte Sammlungsgruppen im Bulk löschen möchten, verwenden Sie das Flag --collection-ids. Mit dem 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]
Stellen Sie sich beispielsweise mehrere Dokumente vor, die Restaurants in der Sammlung restaurants der obersten Ebene der Datenbank cymbal darstellen. Unter jedem Restaurantdokument gibt es mehrere verschachtelte Unterkollektionen 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 abzufragen.

Vorgangsnamen wird projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/ vorangestellt, z. B.:

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

Wenn Sie für die Befehle describe, cancel und delete einen Vorgangsnamen angeben, können Sie das Präfix weglassen.

Alle Bulk-Löschvorgänge auflisten

gcloud

Verwenden Sie den Befehl operations list, um alle laufenden und kürzlich abgeschlossenen Vorgänge, einschließlich Massenlöschvorgänge, anzeigen zu lassen:

gcloud firestore operations list

Vorgangsstatus prüfen

gcloud

Verwenden Sie den Befehl operations describe, um den Status eines Massenlö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. Beide Messwerte werden als Anzahl der Byte und als Anzahl der Dokumente zurückgegeben:

  • workEstimated gibt die geschätzte Gesamtzahl der Byte und Dokumente an, die bei einem Vorgang verarbeitet werden. Cloud Firestore lässt diesen Messwert möglicherweise aus, wenn keine Schätzung möglich ist.

  • workCompleted zeigt die Anzahl der bisher gelöschten Byte und Dokumente an. Nach Abschluss des Vorgangs wird der Wert für die Gesamtzahl der tatsächlich verarbeiteten Byte und Dokumente angezeigt. Dieser Wert kann größer sein als der Wert von workEstimated.

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]

Durch das Abbrechen eines laufenden Vorgangs wird der Vorgang nicht rückgängig gemacht. Durch das Abbrechen eines Massenlöschvorgangs 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. Verwenden Sie den vorherigen Abbrechen-Vorgang, um einen laufenden Vorgang abzubrechen.

gcloud firestore operations delete [OPERATION_NAME]

Abrechnung und Preise für verwaltete Bulk-Löschvorgänge

Damit Sie den verwalteten Dienst zum Massenlöschen verwenden können, müssen Sie die Abrechnung für Ihr Google Cloud-Projekt aktivieren.

Bei Bulk-Löschvorgängen werden die Lese- und Löschvorgänge von Dokumenten zu den in der Cloud Firestore-Preisübersicht aufgeführten Preisen berechnet. Bei Bulk-Löschvorgängen wird für jedes gefundene Dokument ein Indexeintrag gelesen und für jedes gelöschte Dokument ein Löschvorgang ausgeführt. Ihnen wird ein Lesevorgang für bis zu 1.000 gelesene Indexeinträge in Rechnung gestellt. Bei einem Bulk-Löschvorgang, bei dem 1.500 Dokumente gelöscht wurden, werden Ihnen beispielsweise 2 Dokumentlesevorgänge und 1.500 Dokumentlöschvorgänge in Rechnung gestellt.

Die Cloud Firestore-Gebühren werden auf Grundlage der tatsächlich geleisteten Arbeit berechnet. Wenn der Vorgang aufgrund eines Nutzerfehlers abgebrochen wird oder fehlschlägt, wird Ihnen der Fortschritt in Rechnung gestellt. Cloud Firestore berechnet keine Lese- oder Löschvorgänge für die Dokumente, die nicht endgültig gelöscht werden, z. B. Dokumente, die nach Beginn des Löschvorgangs geändert werden. Die Kosten werden am Tag des Abschlusses des Vorgangs zugeordnet.

Bei Vorgängen zum Massenlöschen werden Ihre Google Cloud-Budgetbenachrichtigungen erst nach Abschluss ausgelöst. Die während eines Massenlöschvorgangs ausgeführten Lese- und Löschvorgänge werden erst nach Abschluss des Vorgangs auf Ihre Nutzung im kostenlosen Kontingent angerechnet. Bulk-Löschvorgänge wirken sich nicht auf die im Abschnitt „Nutzung“ der Konsole angezeigte Nutzung aus.

Kosten für Bulk-Löschvorgänge ansehen

Bei Bulk-Löschvorgängen wird das goog-firestoremanaged:bulkdelete-Label auf in Rechnung gestellte Vorgänge angewendet. Auf der Seite Cloud Billing-Berichte können Sie mit diesem Label Kosten für Bulk-Löschvorgänge aufrufen.

Best Practices

Vermeiden Sie es, gelöschte Daten zu überspringen, da dies die Abfragen verlangsamen kann.