Auf dieser Seite wird beschrieben, wie Sie Entitäten in Firestore im Datastore-Modus mithilfe des verwalteten Dienstes zum Massenlöschen löschen. Der verwaltete Dienst zum Massenlöschen im Datastore-Modus ist über das gcloud
-Befehlszeilentool und die Datastore-Modus-API (REST, RPC) verfügbar.
Hinweise
Bevor Sie den verwalteten Dienst zum Massenlö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 Massenlöschen kann nur für Google Cloud-Projekte mit aktivierter Abrechnung verwendet werden.
-
Sorgen Sie dafür, dass 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 Massenlöschvorgänge:
- Rollen für den Datastore-Modus:
Owner
,Cloud Datastore Owner
oderCloud Datastore Bulk Admin
- Rollen für den Datastore-Modus:
gcloud
für das Projekt einrichten
Sie können Massenlöschvorgänge über die Google Cloud Konsole 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 -Konsole 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
Bei einem Massenlöschvorgang werden zuerst alle entsprechenden Entitäten in Ihrer Datenbank gesucht 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 Massenlöschen werden keine Entitäten gelöscht, die nach Beginn des Vorgangs hinzugefügt oder geändert wurden.
Bestimmte Arten von Inhalten in großen Mengen löschen
gcloud
Verwenden Sie das Flag --collection-ids
, um bestimmte Arten von Einträgen im Bulk zu löschen. Das Flag verwendet Firestore-Terminologie, aber eine Sammlungsgruppen-ID ist dasselbe wie eine Art-ID. Bei diesem Vorgang werden nur die Arten mit den angegebenen IDs gelöscht. Eine Art umfasst 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, 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 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 ausgelassen, wenn keine Schätzung möglich ist.workCompleted
gibt die Anzahl der bisher gelöschten Byte und Entitäten an. Nach Abschluss des Vorgangs zeigt der Wert die Gesamtzahl der tatsächlich verarbeiteten Byte und Entitäten 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. Durch das Abbrechen eines Massenlöschvorgangs werden die gelöschten Elemente 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 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.
Für Massenlöschvorgänge werden die Lese- und Löschvorgänge von Entitäten zu den Preisen berechnet, die unter Datastore-Modus – Preise angegeben sind. Bei Massenlöschvorgängen wird pro gefundener Entität ein Indexeintrag gelesen und pro gelöschter Entität 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 Entitäten gelöscht wurden, werden Ihnen beispielsweise 2 Entitätenlesevorgänge und 1.500 Entitätenlöschvorgänge in Rechnung gestellt.
Beachten Sie, dass die Gebühren für den Datastore-Modus auf der tatsächlich geleisteten Arbeit basieren. Wenn der Vorgang aufgrund eines Nutzerfehlers abgebrochen wird oder fehlschlägt, wird Ihnen der Fortschritt in Rechnung gestellt. Im Datastore-Modus werden keine Lese- oder Löschvorgänge für die Entitäten berechnet, die nicht endgültig 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.
Vorgänge zum Massenlöschen werden erst nach Abschluss auf das Google Cloud -Budget angerechnet. Die während eines Massenlöschvorgangs ausgeführten Lese- und Löschvorgänge werden nach Abschluss des Vorgangs auf Ihr kostenloses 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 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.
Andere Option
Dataflow ist ein verwalteter Dienst zum Entwickeln und Ausführen von Workflows zur Datenverarbeitung, mit denen 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 Abschnitt Datenaufbewahrung mit TTL-Richtlinien verwalten.