Entitäten im Bulk löschen

Mit dem verwalteten Bulk-Löschdienst im Datastore-Modus können Sie Daten aus Ihrer Datenbank löschen. Diese Funktion unterstützt das Löschen nach einer oder mehreren Arten.

Auf dieser Seite wird beschrieben, wie Sie Entitäten in Firestore im Datastore-Modus mithilfe des verwalteten Dienstes zum Bulk-Löschen in Bulk löschen. Der verwaltete Bulk-Löschdienst für den Datastore-Modus ist über das gcloud-Befehlszeilentool und die Datastore mode API (REST, RPC) verfügbar.

Hinweise

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

  1. 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 den Datastore-Modus 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:

    • Rollen für den Datastore-Modus: Owner, Cloud Datastore Owner oder Cloud Datastore Bulk Admin

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:

Daten im Bulk löschen

Bei einem Bulk-Löschvorgang werden zuerst alle entsprechenden Entitäten in Ihrer Datenbank gefunden und dann in Batches gelöscht. Sie können diese Entitäten weiterhin abfragen oder lesen. Die Ergebnisse können jedoch je nach Fortschritt variieren. Beim Bulk-Löschen werden keine Entitäten gelöscht, die nach Beginn des Vorgangs hinzugefügt oder geändert wurden.

Bestimmte Arten im Bulk-Verfahren löschen

gcloud

Verwenden Sie das Flag --collection-ids, um bestimmte Arten im Bulk-Verfahren zu löschen. Für das Flag wird die Firestore-Terminologie verwendet, aber eine Sammlungsgruppen-ID entspricht einer Art-ID. Bei diesem Vorgang werden nur die Typen mit den angegebenen IDs gelöscht. Eine Art enthält alle Entitäten und verschachtelten Entitäten (in einem beliebigen Pfad) mit den angegebenen Arten.

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 der Datastore-Modus 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 Entitäten zurückgegeben:

  • workEstimated gibt die geschätzte Gesamtzahl der Byte und Entitäten an, die ein Vorgang verarbeitet. Im Datenspeichermodus wird dieser Messwert möglicherweise weggelassen, wenn keine Schätzung möglich ist.

  • workCompleted gibt die Anzahl der bisher gelöschten Byte und Entitäten an. Nachdem der Vorgang abgeschlossen ist, zeigt der Wert die Gesamtanzahl der tatsächlich verarbeiteten Byte und Entitäten an, die möglicherweise größer als der Wert von workEstimated 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 Entitäten 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 Bulk-Löschen verwenden können.

Bei Bulk-Löschvorgängen werden die Lese- und Löschvorgänge von Entitäten zu den Preisen berechnet, die unter Datastore-Modus – Preise angegeben sind. Beim Löschen mehrerer Entitäten werden pro gefundener Entität ein Indexeintrag gelesen und ein Löschvorgang ausgeführt. Für bis zu 1.000 gelesene Indexeinträge wird Ihnen ein Lesevorgang in Rechnung gestellt. Wenn Sie beispielsweise 1.500 Entitäten im Bulk löschen, werden Ihnen zwei Lese- und 1.500 Löschvorgänge in Bezug auf Entitäten in Rechnung gestellt.

Im Datastore-Modus werden die tatsächlichen Kosten berechnet. Wenn der Vorgang aufgrund eines Nutzerfehlers abgebrochen oder fehlgeschlagen ist, werden Ihnen die bereits erzielten Fortschritte in Rechnung gestellt. Im Datastore-Modus werden keine Lese- oder Löschvorgänge für Entitäten berechnet, die nicht gelöscht werden (z. B. Entitäten, 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.

Andere Option

Dataflow ist ein verwalteter Dienst zum Entwickeln und Ausführen von Workflows zur Datenverarbeitung, mit dem auch Daten im Bulk gelöscht werden können. Dataflow bietet eine Datastore-Löschvorlage, mit der Sie Entitäten löschen können, die mit einer GQL-Abfrage ausgewählt wurden.

Weitere Informationen finden Sie in der Dataflow-Dokumentation zur Ausführung der Vorlage für Datastore-Bulk-Löschvorgang.

Wenn Ihr Anwendungsfall die Datenaufbewahrung umfasst, lesen Sie den Hilfeartikel Datenaufbewahrung mit TTL-Richtlinien verwalten.