Daten im Bulk löschen
Mit dem verwalteten Bulk-Löschdienst können Sie Daten aus Ihrer Datenbank löschen. Diese Funktion unterstützt das Löschen aus einer oder mehreren Sammlungsgruppen.
Auf dieser Seite wird beschrieben, wie Sie mit dem verwalteten Bulk-Löschdienst Dokumente im Bulk löschen. Der verwaltete Bulk-Löschdienst für Firestore ist
über das gcloud
Befehlszeilentool und die Firestore REST API verfügbar.
Hinweis
Bevor Sie den verwalteten Bulk-Löschdienst verwenden können, müssen Sie die folgenden Schritte ausführen:
- Aktivieren Sie für das Bulk-Löschen von Dokumenten die Abrechnung für Ihr Google Cloud Projekt. Die Bulk-Löschfunktion kann nur für Projekte mit aktivierter Abrechnung verwendet werden. Google Cloud
-
Prüfen Sie, ob Ihr Konto die erforderlichen Berechtigungen für 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 Bulk-Löschvorgänge:
- Firestore-Rollen:
Owner,Cloud Datastore Owner, oderCloud Datastore Bulk Admin
- Firestore-Rollen:
gcloud für das Projekt einrichten
Sie können Bulk-Löschvorgänge über die Google Cloud Konsole 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:
Rufen Sie
gcloudüber die Google Cloud Konsole mit Cloud Shell auf.Achten Sie darauf, dass
gcloudfür das richtige Projekt konfiguriert ist:gcloud config set project [PROJECT_ID]
Daten im Bulk löschen
Bei einem Bulk-Löschvorgang 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. Bei der Bulk-Löschung werden keine Dokumente gelöscht, die nach dem Start des Vorgangs hinzugefügt oder geändert wurden.
Bestimmte Sammlungsgruppen im Bulk löschen
gcloud
Verwenden Sie das
--collection-ids Flag, um bestimmte Sammlungsgruppen im Bulk zu löschen.
Bei dem Vorgang werden nur die Sammlungsgruppen mit den angegebenen IDs gelöscht.
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]
Bulk-Löschvorgänge verwalten
Nachdem Sie einen Bulk-Löschvorgang gestartet haben, weist 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 Bulk-Löschvorgänge auflisten
gcloud
Verwenden Sie den Befehl operations list, um alle laufenden und
kürzlich abgeschlossenen Vorgänge einschließlich Bulk-Löschvorgängen anzuzeigen:
gcloud firestore operations list
Vorgangsstatus prüfen
gcloud
Verwenden Sie den operations describe Befehl, 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 Byte als auch in Anzahl der Dokumente zurückgegeben:
workEstimatedzeigt die geschätzte Gesamtzahl der Byte und Dokumente an, die bei einem Vorgang verarbeitet werden. 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 der Wert für die Gesamtzahl der tatsächlich verarbeiteten Byte und Dokumente angezeigt, die größer als der Wert vonworkEstimatedsein 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 Bulk-Löschvorgang werden die gelöschten Dokumente nicht wiederhergestellt.
Vorgang löschen
Mit dem gcloud firestore operations delete Befehl können Sie
einen abgeschlossenen Vorgang aus der Liste der letzten Vorgänge entfernen. Verwenden Sie den oben beschriebenen Abbruchvorgang, um einen laufenden Vorgang abzubrechen.
gcloud firestore operations delete [OPERATION_NAME]
Abrechnung und Preise für Bulk-Löschvorgänge
Damit Sie den verwalteten Bulk-Löschdienst verwenden können, müssen Sie die Abrechnung für Ihr Google Cloud Projekt aktivieren, bevor Sie ihn verwenden.
Für Bulk-Löschvorgänge werden die Lese- und Löschvorgänge von Dokumenten zu den Preisen für Firestore 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. Für bis zu 1.000 gelesene Indexeinträge wird ein Lesevorgang berechnet. Bei einem Bulk-Löschvorgang, 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.Firestore berechnet die tatsächliche Arbeit. Wenn der Vorgang abgebrochen wird oder aufgrund eines Nutzerfehlers fehlschlägt, werden Ihnen die bis dahin ausgeführten Vorgänge in Rechnung gestellt. 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 wurden. Die Kosten werden am Tag des Abschlusses des Vorgangs in Rechnung gestellt.
Bulk-Löschvorgänge lösen erst nach Abschluss Google Cloud Budget benachrichtigungen aus. Die während eines Bulk-Löschvorgangs ausgeführten Lese- und Löschvorgänge werden erst nach Abschluss des Vorgangs auf Ihre Nutzung im Rahmen des kostenlosen Kontingents 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 Label goog-firestoremanaged:bulkdelete auf in Rechnung gestellte Vorgänge angewendet. Auf der Cloud Billing-Berichte
Seite können Sie über dieses 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.