Datenaufbewahrung mit TTL-Richtlinien verwalten

Auf dieser Seite wird beschrieben, wie Sie die Google Cloud Console und die Google Cloud CLI zum Konfigurieren von Richtlinien zur Gültigkeitsdauer (TTL) verwenden. Bevor Sie diese Seite lesen, sollten Sie sich mit dem Datenmodell im Datastore-Modus vertraut machen.

Gültigkeitsdauer

Verwenden Sie TTL-Richtlinien, um veraltete Daten automatisch aus Ihren Datenbanken zu entfernen. Eine TTL-Richtlinie gibt eine bestimmte Property als Ablaufzeit für Entitäten in einer bestimmten Art an. Mit TTL können Sie Speicherkosten reduzieren, indem Sie veraltete Daten bereinigen. Die Daten werden in der Regel innerhalb von 72 Stunden nach ihrem Ablaufdatum gelöscht.

Preise

TTL-Löschvorgänge werden auf die Kosten für das Löschen von Entitäten angerechnet. Informationen zu Preisen für Löschvorgänge finden Sie unter Firestore im Datastore-Modus.

Limits und Einschränkungen

  • Pro Art kann nur eine Property als TTL-Property gekennzeichnet werden.
  • Insgesamt sind 200 TTL-Richtlinien zulässig.

TTL-Löschung

Beachten Sie das folgende Verhalten bei der TTL-basierten Löschung:

  • Das Löschen über TTL erfolgt nicht sofort. Abgelaufene Entitäten werden weiterhin in Abfragen und Suchanfragen angezeigt, bis sie vom TTL-Prozess tatsächlich gelöscht werden. TTL übernimmt die Aktualität der Aktualisierungen zugunsten der reduzierten Gesamtbetriebskosten für das Löschen. Die Daten werden in der Regel innerhalb von 72 Stunden nach ihrem Ablaufdatum gelöscht.

  • Wenn Sie eine Entität über TTL löschen, werden die Nachfolgerelemente dieser Entität nicht gelöscht.

  • Wenn Sie eine TTL-Richtlinie auf eine vorhandene Art anwenden, werden alle Daten, die gemäß der neuen TTL-Richtlinie abgelaufen sind, im Bulk gelöscht. Diese Bulk-Löschung erfolgt nicht sofort und hängt davon ab, wie viele Daten für diese Art vorhanden sind.

  • TTL löscht Entitäten nicht unbedingt in derselben Reihenfolge wie ihre Ablaufzeitstempel.

  • Löschungen werden nicht transaktional durchgeführt. Entitäten mit derselben Ablaufzeit werden nicht zwangsläufig gleichzeitig gelöscht. Wenn Sie dieses Verhalten benötigen, führen Sie die Löschvorgänge mit einer Clientbibliothek aus.

  • Der Datastore-Modus berücksichtigt immer das letzte TTL-Feld, um den Ablauf zu bestimmen. Wenn beispielsweise das TTL-Feld einer abgelaufenen, aber noch nicht gelöschten Entität auf ein späteres Datum aktualisiert wird, ist die Entität nicht abgelaufen und das neue Datum wird verwendet.

  • Im Datastore-Modus läuft ein Dokument nur ab, wenn das Feld „TTL“ auf den Typ Timestamp festgelegt ist. Wenn das Feld fehlt oder auf einen Wert wie null gesetzt wird, kann die Ablaufzeit pro Dokument deaktiviert werden.

  • TTL soll die Auswirkungen auf andere Datenbankaktivitäten minimieren. TTL-Löschungen werden mit einer niedrigeren Priorität behandelt. Es gibt auch noch andere Strategien, um Trafficspitzen bei TTL-gelöschten Löschungen auszugleichen.

TTL-Attribute und -Indexe

Eine TTL-Property kann indexiert oder nicht indexiert sein. Da ein TTL-Attribut jedoch ein Zeitstempel ist, kann sich die Indexierung des Attributs auf die Leistung bei höheren Traffic-Raten auswirken. Die Indexierung eines Zeitstempelattributs verstößt gegen die Best Practices und kann zu Hotspots führen. Hotspots sind hohe Lese-, Schreib- und Löschraten für einen kleinen Schlüsselbereich.

In Datastore wird standardmäßig ein integrierter Index für alle Attribute erstellt. Sie können ein Attribut aus Indexen ausschließen, um Indexe für ein TTL-Attribut zu deaktivieren.

Berechtigungen

Das Hauptkonto, das eine TTL-Richtlinie konfiguriert, benötigt die folgende Berechtigung im Projekt:

  • Zum Ansehen von TTL-Richtlinien sind die Berechtigungen datastore.indexes.list und datastore.indexes.get erforderlich.
  • Zum Ändern von TTL-Richtlinien ist die Berechtigung datastore.indexes.update erforderlich.
  • Für die Überprüfung des Status von TTL-Vorgängen sind datastore.operations.list und datastore.operations.get erforderlich.

Informationen zu Rollen, die diese Berechtigungen zuweisen, finden Sie unter Datastore – Identity and Access Management-Rollen.

Hinweis

Bevor Sie die gcloud CLI zum Verwalten der TTL-Richtlinien verwenden, müssen Sie mit dem Befehl gcloud components update Komponenten auf die neueste verfügbare Version aktualisieren:

gcloud components update

TTL-Richtlinie erstellen

Wenn Sie eine TTL-Richtlinie erstellen, legen Sie ein Entitätsattribut als Ablaufzeit für Entitäten in einer Art fest. Die TTL-Richtlinie gilt für die angegebene Art in allen Namespaces.

TTL verwendet eine angegebene Property, um Entitäten zu identifizieren, die gelöscht werden können. Dieses TTL-Attribut muss vom Typ Date and time sein. Sie können eine bereits vorhandene Property auswählen oder eine Property auswählen, die Sie später hinzufügen möchten.

Beachten Sie Folgendes, bevor Sie den Wert der TTL-Eigenschaft festlegen:

  • Der Wert des TTL-Attributs kann ein Zeitpunkt in der Zukunft, jetzt oder in der Vergangenheit sein. Wenn der Wert in der Vergangenheit liegt, kann die Entität sofort gelöscht werden. Sie können beispielsweise eine TTL-Richtlinie mit dem Attribut expireAt erstellen, das Sie dann vorhandenen Entitäten hinzufügen.

  • Wenn Sie einen anderen Datentyp verwenden oder den Wert des TTL-Attributs nicht festlegen, wird die TTL für die einzelne Entität deaktiviert.

So erstellen Sie eine TTL-Richtlinie:

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console die Seite Gültigkeitsdauer auf.

    Zur Seite „Gültigkeitsdauer“

  2. Klicken Sie auf Richtlinie erstellen.

  3. Geben Sie einen Typnamen und einen Zeitstempelattributnamen ein.

  4. Klicken Sie auf Erstellen.

Die Konsole kehrt zur Seite Gültigkeitsdauer zurück. Wenn der Vorgang erfolgreich gestartet wird, wird auf der Seite ein Eintrag zur Tabelle der TTL-Richtlinien hinzugefügt. Andernfalls wird auf der Seite eine Fehlermeldung angezeigt.

gcloud

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. 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 auf den Abschluss des Vorgangs wartet.

    gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --enable-ttl
    

Selbst bei einer leeren Datenbank kann es zehn Minuten oder länger dauern, um eine TTL-Richtlinie zu aktivieren. Nachdem Sie einen Vorgang gestartet haben, wird der Vorgang durch das Schließen des Terminals nicht abgebrochen.

TTL-Richtlinien ansehen

Führen Sie die folgenden Schritte aus, um TTL-Richtlinien und ihren Status anzusehen.

Google Cloud Console

Rufen Sie in der Google Cloud Console die Seite Gültigkeitsdauer auf.

Zur Seite „Gültigkeitsdauer“

Die Console zeigt TTL-Richtlinien für Ihre Datenbank an und enthält den Status jeder Richtlinie.

gcloud

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

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

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

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

Details zum Vorgang ansehen

Mit der gcloud CLI können Sie weitere Details zu einer TTL-Richtlinie im Status CREATING aufrufen.

Verwenden Sie den Befehl operations list, um alle laufenden und kürzlich abgeschlossenen Vorgänge anzusehen:

gcloud firestore operations list

Die Antwort enthält eine Schätzung des Fortschritts des Vorgangs.

TTL-Richtlinie deaktivieren

Führen Sie die folgenden Schritte aus, um eine TTL-Richtlinie zu deaktivieren.

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console die Seite Gültigkeitsdauer auf.

    Zur Seite „Gültigkeitsdauer“

  2. Suchen Sie in der Tabelle mit den TTL-Richtlinien nach der Zeile für die TTL-Richtlinie. Klicken Sie in dieser Tabellenzeile auf die Schaltfläche Löschen (Papierkorb).

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

Die Konsole kehrt zur Seite Gültigkeitsdauer zurück. Wenn der Vorgang erfolgreich war, entfernt Datastore die TTL-Richtlinie aus der Tabelle.

gcloud

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. 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 auf den Abschluss des Vorgangs wartet.

    gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --disable-ttl
    

TTL-Löschungen überwachen

Sie können Cloud Monitoring verwenden, um Messwerte zu TTL-gelöschten Löschvorgängen aufzurufen. Datastore bietet die folgenden Messwerte für TTL:

datastore.googleapis.com/entity/ttl_deletion_count Anzahl der TTL-Löschungen

Gesamtzahl der Entitäten, die durch TTL-Richtlinien gelöscht wurden.

datastore.googleapis.com/entity/ttl_expiration_to_deletion_delays TTL-Ablauf bis zum Löschen von Verzögerungen

Zeitspanne zwischen dem Ablauf einer Entität mit einer TTL-Richtlinie und dem tatsächlichen Löschen.

Informationen zum Einrichten eines Dashboards mit Datastore-Messwerten finden Sie unter Benutzerdefiniertes Dashboard verwalten und Dashboard-Widgets hinzufügen.