Datenaufbewahrung mit TTL-Richtlinien verwalten

Auf dieser Seite wird beschrieben, wie Sie die Google Cloud Console und die Google Cloud CLI verwenden um Richtlinien für die Gültigkeitsdauer (TTL) zu konfigurieren. Bevor Sie diese Seite lesen, sollten Sie die Bedeutung Firestore-Datenmodell:

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 finden Sie unter 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 die TTL nicht mit dem Gleichzeitigkeitsmodus verwendet werden: Optimistisch mit Entitätsgruppen. 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 Lookup-Anfragen angezeigt, bis der TTL-Prozess werden sie tatsächlich gelöscht. 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 ein Dokument eine Ablaufzeit in der Vergangenheit hat und Sie eine neue TTL-Richtlinie hinzufügen wird das Dokument innerhalb von 24 Stunden gelöscht, wann die Einrichtung der TTL-Richtlinie abgeschlossen ist und aktiv wird.

  • TTL löscht Dokumente nicht unbedingt in der gleichen Reihenfolge wie Gültigkeitszeitstempel.

  • Das Löschen erfolgt 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.

  • 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.

  • Löschen über TTL-Aufrufe (alle aktiv) Snapshot-Listener und löst Cloud Run-Funktionen aus Firestore-Trigger

TTL-Felder und -Indexe

Ein TTL-Feld kann indexiert oder nicht indexiert sein. Da das TTL-Feld jedoch Zeitstempel verwenden, kann sich die Indexierung des Felds auf die Leistung bei höheren Traffic-Raten auswirken. Die Indexierung eines Zeitstempelfelds kann Hotspots verursachen, was gegen die Best Practices verstößt. Hotspots sind hohe Lese-, Schreib- und Löschraten für einen kleinen Dokumentbereich.

Standardmäßig erstellt 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 und datastore.indexes.get Berechtigungen.
  • Zum Ändern von TTL-Richtlinien ist das datastore.indexes.update erforderlich Berechtigung.
  • Zum Prüfen des Status von TTL-Vorgängen sind datastore.operations.list und datastore.operations.get erforderlich.

Informationen zu Rollen mit diesen Berechtigungen finden Sie unter Firestore Identity and Access Management-Rollen.

Hinweise

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 Feld auswählen, bereits vorhanden ist, oder Sie können ein Feld festlegen, das Sie später hinzufügen möchten.

Beachten Sie Folgendes, bevor Sie den TTL-Feldwert festlegen:

  • Der Wert im Feld „TTL“ kann ein Zeitpunkt in der Zukunft, jetzt oder in der Vergangenheit sein. Wenn der Wert eine Zeit ist in der Vergangenheit 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

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.

  3. Klicke im Navigationsmenü auf Gültigkeitsdauer.

  4. Klicken Sie auf Richtlinie erstellen.

  5. Geben Sie einen Namen für die Sammlungsgruppe und einen Namen für das Zeitstempelfeld ein.

  6. Klicken Sie auf Erstellen.

Die Konsole kehrt zur Seite Gültigkeitsdauer zurück. Wenn der Vorgang erfolgreich gestartet wurde, fügt die Seite einen Eintrag zur Tabelle mit den TTL-Richtlinien hinzu. An fehlgeschlagen ist, wird auf der Seite eine Fehlermeldung angezeigt.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Verwenden Sie den firestore fields ttls update. zum Konfigurieren einer TTL-Richtlinie. 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
    --enable-ttl 

Dauer der Aktivierung der TTL-Richtlinie

Das Aktivieren einer TTL kann auch bei leerer Datenbank zehn Minuten oder länger dauern . Sobald Sie einen Vorgang gestartet haben, wird durch Schließen des Terminals nicht der Vorgang abgebrochen. .

TTL-Richtlinien ansehen

So rufen Sie TTL-Richtlinien und deren Status auf:

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.

  3. Klicke im Navigationsmenü auf Gültigkeitsdauer.

In der Konsole sind die TTL-Richtlinien für Ihre Datenbank und die Status.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Verwenden Sie die Methode firestore fields ttls list zum Konfigurieren einer TTL-Richtlinie. Mit dem folgenden Befehl werden alle TTLs aufgelistet Richtlinien.

    gcloud firestore fields ttls list
    

    Verwenden Sie folgenden Code, um TTL-Richtlinien unter einer bestimmten Sammlungsgruppe aufzulisten:

    gcloud firestore fields ttls list  --collection-group=collection_group_name
    

View operation details

You can use the gcloud CLI to view more details about a TTL policy that is in the CREATING state.

Use the operations list command to see all running and recently completed operations:

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

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.

  3. Klicke im Navigationsmenü auf Gültigkeitsdauer.

  4. Suchen Sie in der TTL-Richtlinientabelle nach der Zeile für die TTL-Richtlinie. In diesem Tabellenzeile auf die Schaltfläche Löschen (Papierkorb).

  5. Klicken Sie zur Bestätigung auf Löschen.

Die Konsole kehrt zur Seite Gültigkeitsdauer zurück. Bei Erfolg Firestore entfernt die TTL-Richtlinie aus der Tabelle.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Verwenden Sie die Methode firestore fields ttls update zum Konfigurieren einer TTL-Richtlinie. 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 Messwerte zu TTL-gesteuerten Löschungen ansehen. Firestore bietet die folgenden Messwerte für die TTL:

Messwerttyp Messwertname Beschreibung des Messwerts
firestore.googleapis.com/document/ttl_deletion_count Anzahl der Löschvorgänge für die Gültigkeitsdauer

Gesamtzahl der Dokumente, die durch 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 Firestore-Messwerten finden Sie unter das benutzerdefinierte Dashboard verwalten und Dashboard-Widgets hinzufügen.