Auf dieser Seite wird beschrieben, wie Sie mit der Google Cloud Console und der Google Cloud CLI TTL-Richtlinien (Time to Live) konfigurieren. Bevor Sie diese Seite lesen, sollten Sie sich mit dem Cloud Firestore-Datenmodell vertraut machen.
Gültigkeitsdauer (Übersicht)
Mit TTL-Richtlinien können Sie um veraltete Daten aus Ihren Datenbanken zu entfernen. In einer TTL-Richtlinie wird ein bestimmtes Feld Ablaufzeit für Dokumente in einer bestimmten Sammlungsgruppe. Mit TTL können Sie die Speicherkosten senken, indem Sie veraltete Daten bereinigen. Daten werden in der Regel gelöscht innerhalb von 24 Stunden nach dem Ablaufdatum.
Preise
TTL-Löschvorgänge werden auf die Kosten für das Löschen von Dokumenten angerechnet. Preisinformationen der Löschvorgänge siehe Cloud Firestore-Preise.
Limits und Einschränkungen
- Pro Sammlungsgruppe kann nur ein Feld als TTL-Feld markiert werden.
- Insgesamt sind 200 Konfigurationen auf Feldebene zulässig. Konfiguration mit einem Feld kann mehrere Konfigurationen für dasselbe Feld enthalten. Beispiel: eine Ausnahme für die Einzelfeldindexierung und eine TTL-Richtlinie für dasselbe Feld um das Limit zu erreichen.
- Für Kunden von Firestore im Datastore-Modus kann TTL nicht mit dem Gleichzeitigkeitsmodus Optimistisch mit Entitätsgruppen verwendet werden. Sie können den Gleichzeitigkeitsmodus in den optimistischen Gleichzeitigkeitsmodus ändern.
TTL-Löschung
Beachten Sie die folgenden wichtigen Verhaltensweisen des TTL-gesteuerten Löschens:
Das Löschen über die TTL erfolgt nicht sofort. Abgelaufene Dokumente werden weiterhin in Abfragen und Suchanfragen angezeigt, bis sie durch den TTL-Prozess tatsächlich gelöscht werden. TTL tauscht die Löschzeit zugunsten der geringere Gesamtbetriebskosten für Löschvorgänge Die Daten werden in der Regel innerhalb von 24 Stunden nach ihrem Ablaufdatum gelöscht.
Beim Löschen eines Dokuments über die TTL werden untergeordnete Sammlungen nicht gelöscht Dokument.
Wenn Sie eine TTL-Richtlinie auf eine vorhandene Sammlungsgruppe anwenden, werden alle abgelaufenen Daten gemäß der neuen TTL-Richtlinie im Bulk-Verfahren gelöscht. Hinweis dass diese Bulk-Löschung ebenfalls nicht sofort erfolgt und davon abhängt, wie viele Daten für diese Sammlungsgruppe existiert.
Wenn für ein Dokument ein Ablaufdatum in der Vergangenheit festgelegt ist und Sie der Sammlung eine neue TTL-Richtlinie hinzufügen, wird das Dokument innerhalb von 24 Stunden nach Abschluss der Einrichtung der TTL-Richtlinie gelöscht.
Dokumente werden nicht unbedingt in der Reihenfolge gelöscht, in der ihre Ablaufzeitstempel ablaufen.
Löschungen erfolgen nicht transaktional. Dokumente mit demselben Ablaufdatum werden nicht unbedingt gleichzeitig gelöscht. Wenn Sie dies benötigen führen Sie die Löschungen mithilfe einer Clientbibliothek aus.
Cloud Firestore berücksichtigt immer das neueste TTL-Feld, um die Gültigkeit haben. Beispiel: Wenn ein abgelaufenes, aber noch nicht gelöschtes Dokument TTL auf ein späteres Datum aktualisiert wurde, ist das Dokument nicht abgelaufen und der das neue Datum verwendet.
TTL soll die Auswirkungen auf andere Datenbankaktivitäten minimieren. Löschungen mit einer niedrigeren Priorität behandelt. Andere Strategien sind Traffic-Spitzen aus TTL-gesteuerten Löschvorgängen auszugleichen.
Beim Löschen über TTL werden alle aktiven Snapshot-Listener aufgerufen und Cloud Functions-Cloud Firestore-Trigger ausgelöst.
TTL-Felder und -Indexe
Ein TTL-Feld kann indexiert oder nicht indexiert sein. Da ein TTL-Feld jedoch ein Zeitstempel ist, kann die Indexierung des Felds bei höheren Zugriffsraten die Leistung beeinträchtigen. Durch die Indexierung eines Zeitstempelfelds Hotspots, was gegen die Best Practices verstößt. Hotspots sind hohe Lese-, Schreib- und Löschraten für einen kleinen Dokumentbereich.
Standardmäßig erstellt Cloud Firestore einen Einzelfeldindex für alle Felder. Sie können Einzelfeldindex-Ausnahme erstellen um Indexe für ein TTL-Feld zu deaktivieren.
Berechtigungen
Das Hauptkonto, das eine TTL-Richtlinie konfiguriert, benötigt die folgende Berechtigung in der Projekt:
- Zum Aufrufen von TTL-Richtlinien ist das
datastore.indexes.list
erforderlich unddatastore.indexes.get
Berechtigungen. - Zum Ändern von TTL-Richtlinien ist das
datastore.indexes.update
erforderlich Berechtigung. - Für die Prüfung des Status von TTL-Vorgängen sind
datastore.operations.list
unddatastore.operations.get
erforderlich.
Informationen zu Rollen, denen diese Berechtigungen zugewiesen sind, finden Sie unter Cloud Firestore Rollen von Identity and Access Management.
Hinweis
Bevor Sie die gcloud CLI zum Verwalten von TTL-Richtlinien verwenden, aktualisieren Sie die Komponenten mit dem Befehl gcloud components update
auf die neueste verfügbare Version:
gcloud components update
TTL-Richtlinie erstellen
Wenn Sie eine TTL-Richtlinie erstellen, legen Sie ein Dokumentfeld als Ablauf fest für Dokumente in einer Sammlungsgruppe.
Bei der TTL wird ein angegebenes Feld verwendet, um Dokumente zu identifizieren, die gelöscht werden können.
Dieses TTL-Feld muss vom Typ Date and time
sein. Sie können ein bereits vorhandenes Feld auswählen oder ein Feld festlegen, das Sie später hinzufügen möchten.
Beachten Sie Folgendes, bevor Sie den TTL-Feldwert festlegen:
Der Wert des TTL-Felds kann eine Zeit in der Zukunft, in der Gegenwart oder in der Vergangenheit sein. Wenn der Wert eine Zeit in der Vergangenheit ist, kann das Dokument sofort gelöscht werden. Zum Beispiel haben Sie können Sie eine TTL-Richtlinie mit dem Feld
expireAt
erstellen, das Sie dann vorhandenen Dokumenten.Wenn Sie einen anderen Datentyp verwenden oder den Wert im Feld „TTL“ nicht festlegen, wird die TTL für das jeweilige Dokument deaktiviert.
So erstellen Sie eine TTL-Richtlinie:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
Klicke im Navigationsmenü auf Gültigkeitsdauer.
Klicken Sie auf Richtlinie erstellen.
Geben Sie einen Namen für die Sammlungsgruppe und einen Namen für das Zeitstempelfeld ein.
Klicken Sie auf Erstellen.
Die Konsole kehrt zur Seite Gültigkeitsdauer zurück. Wenn der Vorgang erfolgreich gestartet wird, fügt die Seite der Tabelle mit den TTL-Richtlinien einen Eintrag hinzu. An fehlgeschlagen ist, wird auf der Seite eine Fehlermeldung angezeigt.
gcloud
Verwenden Sie den Befehl firestore fields ttls
update
, um eine TTL-Richtlinie zu konfigurieren. Fügen Sie das Flag --async
hinzu, um zu verhindern, dass die gcloud-Befehlszeile auf den Abschluss des Vorgangs wartet.
gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --enable-ttl
Aktivierungsdauer der TTL-Richtlinie
Selbst bei einer leeren Datenbank kann es zehn Minuten oder länger dauern, bis eine TTL-Richtlinie aktiviert ist. Wenn Sie einen Vorgang gestartet haben, wird der Vorgang durch Schließen des Terminals nicht abgebrochen.
TTL-Richtlinien ansehen
So rufen Sie TTL-Richtlinien und ihre Status auf:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
Klicken Sie im Navigationsmenü auf Lebensdauer.
In der Konsole sind die TTL-Richtlinien für Ihre Datenbank und die Status.
gcloud
Verwenden Sie den Befehl firestore fields ttls list
, um eine TTL-Richtlinie zu konfigurieren. Mit dem folgenden Befehl werden alle TTL-Richtlinien aufgelistet.
gcloud firestore fields ttls list
So rufen Sie TTL-Richtlinien für eine bestimmte Sammlungsgruppe auf:
gcloud firestore fields ttls list --collection-group=collection_group_name
Vorgangsdetails ansehen
Mit der gcloud CLI können Sie weitere Details zu einer TTL-Richtlinie mit dem Status CREATING
aufrufen.
Verwenden Sie den Befehl operations list
, um alle laufenden und
kürzlich abgeschlossene Vorgänge:
gcloud firestore operations list
Die Antwort enthält eine Schätzung des Vorgangsfortschritts.
TTL-Richtlinie deaktivieren
So deaktivieren Sie eine TTL-Richtlinie:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
Klicken Sie im Navigationsmenü auf Lebensdauer.
Suchen Sie in der TTL-Richtlinientabelle nach der Zeile für die TTL-Richtlinie. In diesem Tabellenzeile auf die Schaltfläche Löschen (Papierkorb).
Klicken Sie zur Bestätigung auf Löschen.
Die Konsole kehrt zur Seite Gültigkeitsdauer zurück. Bei Erfolg Cloud Firestore entfernt die TTL-Richtlinie aus der Tabelle.
gcloud
1. Verwenden Sie den Befehl firestore fields ttls update
, um eine TTL-Richtlinie zu konfigurieren. Fügen Sie das Flag --async
hinzu, um zu verhindern, dass
Die gcloud CLI wartet nicht auf den Abschluss des Vorgangs.
gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --disable-ttl
TTL-Löschvorgänge überwachen
Mit Cloud Monitoring können Sie sich Messwerte zu TTL-basierten Löschungen ansehen. Cloud Firestore bietet die folgenden Messwerte für die TTL:
Messwerttyp | Messwertname | Beschreibung des Messwerts |
---|---|---|
firestore.googleapis.com/document/ttl_deletion_count | Anzahl der Löschungen aufgrund der Gültigkeitsdauer |
Gesamtzahl der Dokumente, die aufgrund von TTL-Richtlinien gelöscht wurden. |
firestore.googleapis.com/document/ttl_expiration_to_deletion_delays | Gültigkeitsdauer bis zur Löschverzögerung |
Verstrichene Zeit zwischen dem Zeitpunkt, zu dem ein Dokument unter einer TTL-Zeit abgelaufen ist und wann sie gelöscht wurde. |
Informationen zum Einrichten eines Dashboards mit Cloud Firestore-Messwerten finden Sie unter das benutzerdefinierte Dashboard verwalten und Dashboard-Widgets hinzufügen.