Mit dem Cloud Firestore-Dienst zum verwalteten Bulk-Löschen können Sie Daten aus Ihrer Datenbank löschen. Mit dieser Funktion können Sie Daten aus einer oder mehreren Sammlungsgruppen löschen.
Auf dieser Seite wird beschrieben, wie Sie Cloud Firestore Dokumente mithilfe des verwalteten Dienstes zum Löschen mehrerer Elemente gleichzeitig löschen. Der verwaltete Bulk-Löschdienst für Cloud Firestore ist über das gcloud
-Befehlszeilentool und die Cloud Firestore API (REST, RPC) verfügbar.
Hinweis
Bevor Sie den verwalteten Dienst zum Bulk-Löschen verwenden können, müssen Sie die folgenden Aufgaben ausführen:
- Aktivieren Sie die Abrechnung für Ihr Google Cloud-Projekt. Die Funktion zum Löschen mehrerer Elemente kann nur in Google Cloud-Projekten mit aktivierter Abrechnung verwendet werden.
-
Ihr Konto benötigt die erforderlichen Berechtigungen für Cloud Firestore. Wenn Sie der Projektinhaber sind, hat Ihr Konto bereits die erforderlichen Berechtigungen. Andernfalls gewähren die folgenden Rollen die erforderlichen Berechtigungen für Bulk-Löschvorgänge:
- Cloud Firestore-Rollen:
Owner
,Cloud Datastore Owner
oderCloud 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. 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 Console mit Cloud Shell auf.Achten Sie darauf, dass
gcloud
für das richtige Projekt konfiguriert ist:gcloud config set project [PROJECT_ID]
Daten im Bulk löschen
Beim Löschen mehrerer Elemente werden zuerst alle entsprechenden Dokumente in Ihrer Datenbank gefunden und dann in einem Batch 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-Verfahren löschen
gcloud
Verwenden Sie das Flag --collection-ids
, um bestimmte Sammlungsgruppen im Bulk-Verfahren zu löschen. Bei diesem 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 beta 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 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 Bulk-Löschvorgänge auflisten
gcloud
Verwenden Sie den Befehl operations list
, um alle laufenden und kürzlich abgeschlossenen Vorgänge aufzurufen, einschließlich Bulk-Löschvorgänge:
gcloud firestore operations list
Vorgangsstatus prüfen
gcloud
Verwenden Sie den Befehl operations describe
, um den Status eines Vorgangs zum Bulk-Löschen 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
weist die geschätzte Gesamtzahl der Byte und Dokumente aus, die ein Vorgang verarbeitet. Cloud Firestore lässt diesen Messwert möglicherweise aus, wenn keine Schätzung möglich ist.workCompleted
gibt die Anzahl der bisher gelöschten Byte und Dokumente an. Nachdem der Vorgang abgeschlossen ist, zeigt der Wert die Gesamtanzahl der tatsächlich verarbeiteten Byte und Dokumente an, die möglicherweise größer als der Wert vonworkEstimated
ist.
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 stoppen:
gcloud firestore operations cancel [OPERATION_NAME]
Durch das Abbrechen eines laufenden Vorgangs wird der Vorgang nicht rückgängig gemacht. Gelöschte Dokumente können nicht wiederhergestellt werden, wenn der Löschvorgang abgebrochen wird.
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 Abbruchvorgang, um einen laufenden Vorgang abzubrechen.
gcloud firestore operations delete [OPERATION_NAME]
Abrechnung und Preise für Bulk-Löschvorgänge
Sie müssen die Abrechnung für Ihr Google Cloud-Projekt aktivieren, bevor Sie den verwalteten Dienst zum Löschen mehrerer Elemente verwenden können.
Für Löschvorgänge werden die Lese- und Löschvorgänge von Dokumenten zu den Preisen berechnet, die unter Cloud Firestore-Preise aufgeführt sind. Beim Bulk-Löschen 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. Wenn Sie beispielsweise 1.500 Dokumente gleichzeitig löschen, werden Ihnen zwei Dokumentlesevorgänge und 1.500 Dokumentlöschvorgänge in Rechnung gestellt.
Hinweis: Cloud Firestore berechnet die tatsächlich geleistete Arbeit. Wenn der Vorgang aufgrund eines Nutzerfehlers abgebrochen oder fehlgeschlagen ist, werden Ihnen die bereits erzielten Fortschritte in Rechnung gestellt. Cloud Firestore berechnet keine Lese- oder Löschkosten für Dokumente, die nicht 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.
Bulk-Löschvorgänge werden erst nach Abschluss auf das Google Cloud-Budget angerechnet. Die während eines Bulk-Löschvorgangs ausgeführten Lese- und Löschvorgänge werden nach Abschluss des Vorgangs auf Ihr freies Kontingent/Ihre Nutzung 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 der Cloud Billing-Berichte 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.