Daten im Bulk löschen

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

Verwalteter Dienst zum gleichzeitigen Löschen mehrerer Apps

Wenn Sie mehrere Dokumente gleichzeitig löschen möchten, verwenden Sie den verwalteten Dienst zum gleichzeitigen Löschen mehrerer Apps. Der Cloud Firestore verwaltete Dienst zum gleichzeitigen Löschen mehrerer Apps ist über das gcloud Befehlszeilentool und die Cloud Firestore REST API verfügbar.

Hinweis

Bevor Sie den verwalteten Dienst zum gleichzeitigen Löschen mehrerer Apps verwenden können, müssen Sie die folgenden Schritte ausführen:

  1. Aktivieren Sie für das gleichzeitige Löschen mehrerer Dokumente die Abrechnung für Ihr Google Cloud Projekt. Die Funktion zum gleichzeitigen Löschen mehrerer Apps 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, enthält Ihr Konto bereits die notwendigen Berechtigungen. Andernfalls gewähren die folgenden Rollen die erforderlichen Berechtigungen für Vorgänge zum gleichzeitigen Löschen mehrerer Apps:

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

gcloud für das Projekt einrichten

Sie können Vorgänge zum gleichzeitigen Löschen mehrerer Apps ü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:

Daten mit dem verwalteten Dienst zum gleichzeitigen Löschen mehrerer Apps löschen

Bei einem Vorgang zum gleichzeitigen Löschen mehrerer Apps werden zuerst alle relevanten Dokumente in Ihrer Datenbank gesucht und dann in Batches gelöscht. Sie können diese Dokumente weiterhin abfragen oder lesen, wobei die Ergebnisse je nach Fortschritt variieren können. Beim gleichzeitigen Löschen mehrerer Apps werden keine Dokumente gelöscht, die nach dem Start des Vorgangs hinzugefügt oder geändert wurden.

Mehrere Sammlungsgruppen gleichzeitig löschen

gcloud

Verwenden Sie das --collection-ids Flag, um mehrere Sammlungsgruppen gleichzeitig zu löschen. Bei dem Vorgang werden nur die Sammlungsgruppen mit den angegebenen IDs gelöscht. Eine Sammlungsgruppe enthält alle Dokumente und verschachtelten Dokumente (in 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]
Angenommen, es gibt mehrere Dokumente, die Restaurants in der Sammlung restaurants der obersten Ebene der Datenbank cymbal darstellen. Unter jedem Restaurantdokument befinden sich mehrere verschachtelte Untersammlungen wie ratings, reviews und outlets. Wenn Sie die Sammlungsgruppen restaurants und reviews gleichzeitig löschen möchten, sieht der Befehl so aus:

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

Vorgänge zum gleichzeitigen Löschen mehrerer Apps verwalten

Nachdem Sie einen Vorgang zum gleichzeitigen Löschen mehrerer Apps gestartet haben, weist Cloud Firestore dem Vorgang einen eindeutigen Namen zu. Sie können mit diesem Namen den Vorgang löschen, abbrechen oder seinen Status prüfen.

Vorgangsnamen haben das Präfix projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/, zum Beispiel:

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 Vorgänge zum gleichzeitigen Löschen mehrerer Apps auflisten

gcloud

Verwenden Sie den operations list-Befehl, um alle laufenden und kürzlich abgeschlossenen Vorgänge aufzurufen, einschließlich Vorgängen zum gleichzeitigen Löschen mehrerer Apps:

gcloud firestore operations list

Vorgangsstatus prüfen

gcloud

Verwenden Sie den operations describe Befehl, um den Status eines Vorgangs zum gleichzeitigen Löschen mehrerer Apps 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 Byte als auch in Anzahl der Dokumente zurückgegeben:

  • workEstimated zeigt die geschätzte Gesamtzahl der Byte und Dokumente an, die bei einem Vorgang verarbeitet werden. Cloud Firestore lässt diesen Messwert möglicherweise weg, 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 Gesamtwert der tatsächlich verarbeiteten Byte und Dokumente angezeigt, der größer als der Wert von workEstimated sein kann.

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 operations cancel Befehl, 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. Bei einem abgebrochenen Vorgang zum gleichzeitigen Löschen mehrerer Apps werden die gelöschten Dokumente nicht wiederhergestellt.

Vorgang löschen

Verwenden Sie den gcloud firestore operations delete Befehl, um einen abgeschlossenen Vorgang aus der Liste der letzten Vorgänge zu entfernen. Wenn Sie einen laufenden Vorgang abbrechen möchten, verwenden Sie den oben beschriebenen Vorgang zum Abbrechen.

gcloud firestore operations delete [OPERATION_NAME]

Abrechnung und Preise für verwaltete Vorgänge zum gleichzeitigen Löschen mehrerer Apps

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

Für Vorgänge zum gleichzeitigen Löschen mehrerer Apps werden die Lese- und Löschvorgänge von Dokumenten zu den Preisen berechnet, die unter Cloud Firestore Preise angegeben sind. Bei Vorgängen zum gleichzeitigen Löschen mehrerer Apps wird pro gefundenem Dokument ein Indexeintrag gelesen und pro gelöschtem Dokument ein Löschvorgang durchgeführt. Für bis zu 1.000 gelesene Indexeinträge wird ein Lesevorgang berechnet. Bei einem Vorgang zum gleichzeitigen Löschen mehrerer Apps, bei dem 1.500 Dokumente gelöscht wurden, werden Ihnen beispielsweise 2 Lesevorgänge und 1.500 Löschvorgänge für Dokumente in Rechnung gestellt.

Beachten Sie, dass Cloud Firestore die tatsächlich ausgeführte Arbeit berechnet. Wenn der Vorgang aufgrund eines Nutzerfehlers abgebrochen wird oder fehlschlägt, werden Ihnen die bis dahin ausgeführten Vorgänge in Rechnung gestellt. Cloud Firestore berechnet keine Lese- oder Löschvorgänge für die Dokumente, die nicht gelöscht werden, z. B. Dokumente, die nach dem Start des Löschvorgangs geändert wurden. Die Kosten werden am Tag des Abschlusses des Vorgangs in Rechnung gestellt.

Vorgänge zum gleichzeitigen Löschen mehrerer Apps werden erst nach Abschluss auf das Google Cloud Budget angerechnet. Die während eines Vorgangs zum gleichzeitigen Löschen mehrerer Apps ausgeführten Lese- und Löschvorgänge werden erst nach Abschluss des Vorgangs auf Ihr kostenloses Kontingent angerechnet. Vorgänge zum gleichzeitigen Löschen mehrerer Apps wirken sich nicht auf die im Abschnitt „Nutzung“ der Konsole angezeigte Nutzung aus.

Kosten für Vorgänge zum gleichzeitigen Löschen mehrerer Apps ansehen

Bei Vorgängen zum gleichzeitigen Löschen mehrerer Apps wird das Label goog-firestoremanaged:bulkdelete auf in Rechnung gestellte Vorgänge angewendet. Auf der Seite der Cloud Billing-Berichte können Sie über dieses Label Kosten für Vorgänge zum gleichzeitigen Löschen mehrerer Apps aufrufen.

Best Practices

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