Auf dieser Seite wird beschrieben, wie Sie die Google Cloud Console und die Google Cloud CLI verwenden um Richtlinien zur Gültigkeitsdauer (TTL) zu konfigurieren. Bevor Sie diese Seite lesen, sollten Sie die Datenmodell im Datastore-Modus.
Gültigkeitsdauer (Übersicht)
Mit TTL-Richtlinien können Sie um veraltete Daten aus Ihren Datenbanken zu entfernen. Eine TTL-Richtlinie legt ein bestimmtes Attribut fest als Ablaufzeit für Entitäten in einem bestimmten Typ. Mit TTL können Sie Senken Sie die Speicherkosten, 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 Entitäten angerechnet. Preisinformationen der Löschvorgänge finden Sie unter Firestore im Datastore-Modus – Preise.
Beschränkungen und Einschränkungen
- Pro Typ kann nur eine Property als TTL-Property gekennzeichnet werden.
- Insgesamt sind 200 TTL-Richtlinien zulässig.
TTL-Löschung
Beachten Sie die folgenden wichtigen Verhaltensweisen des TTL-gesteuerten Löschens:
Das Löschen über die TTL erfolgt nicht sofort. Abgelaufene Entitäten 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.
Durch das Löschen einer Entität über die TTL wird der Nachfolger der Entität nicht gelöscht Entitäten.
Das Anwenden einer TTL-Richtlinie auf eine vorhandene Art führt zu einem Bulk-Vorgang Löschen aller Daten, die gemäß der neuen TTL-Richtlinie abgelaufen sind. Beachten Sie, dass Dieses Bulk-Löschen erfolgt ebenfalls nicht sofort und hängt davon ab, wie viele Daten für diese Art gibt.
Wenn eine Entität eine Ablaufzeit in der Vergangenheit hat und Sie eine neue TL-Richtlinie hinzufügen auf den Typ hat, wird die Entität innerhalb von 24 Stunden gelöscht. die Einrichtung und Aktivierung der TTL-Richtlinie abgeschlossen.
Mit der TTL werden Entitäten nicht unbedingt in der gleichen Reihenfolge wie ihre Gültigkeitszeitstempel.
Löschungen erfolgen nicht transaktional. Entitäten mit derselben Ablaufzeit werden nicht unbedingt gleichzeitig gelöscht. Wenn Sie dies benötigen führen Sie die Löschungen mithilfe einer Clientbibliothek aus.
Im Datastore-Modus wird immer das neueste TTL-Feld berücksichtigt, um die Gültigkeit haben. Wenn beispielsweise eine abgelaufene, aber noch nicht gelöschte Entität das TTL auf ein späteres Datum aktualisiert wurde, ist das Element nicht abgelaufen und der das neue Datum verwendet.
Im Datastore-Modus läuft ein Dokument nur dann ab, wenn das Feld „TTL“ festgelegt ist in einen
Timestamp
-Typ. Das Feld fehlt oder ist auf einen Wert wienull
festgelegt. können Gültigkeitszeiträume für einzelne Dokumente deaktiviert werden.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.
TTL-Attribute und -Indexe
Ein TTL-Attribut kann indexiert oder nicht indexiert sein. Da eine TTL-Eigenschaft jedoch Zeitstempel haben, kann sich die Indexierung der Property auf die Leistung bei höherem Traffic auswirken. Raten. Die Indexierung eines Zeitstempelattributs verstößt gegen die Best Practices und kann Hotspots. Hotspots haben hohe Lese-, Schreib- und Löschraten für einen schmalen Schlüssel Bereich.
Datastore erstellt standardmäßig einen integrierten Index für alle Attribute. Sie können ein Attribut aus Indexen ausschließen zum Deaktivieren von Indexen für ein TTL-Attribut.
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. - Zum Prüfen des Status von TTL-Vorgängen sind
datastore.operations.list
unddatastore.operations.get
erforderlich.
Informationen zu Rollen mit diesen Berechtigungen finden Sie unter Cloud Identity and Access Management-Rollen.
Hinweise
Bevor Sie die gcloud CLI zum Verwalten von TTL-Richtlinien verwenden, verwenden Sie
gcloud components update
um Komponenten auf die neueste verfügbare Version zu aktualisieren:
gcloud components update
TTL-Richtlinie erstellen
Wenn Sie eine TTL-Richtlinie erstellen, legen Sie ein Entitätsattribut als Ablauf fest für Entitäten in einem Typ. Die TTL-Richtlinie gilt für die angegebene Art in alle Namespaces.
Bei der TTL wird eine angegebene Property verwendet, um Entitäten zu identifizieren, die gelöscht werden können. Dieses
Das TTL-Attribut muss den Typ „Date and time
“ haben. Sie können eine Property auswählen, die bereits
existiert oder Sie können eine Property angeben, die Sie später hinzufügen möchten.
Beachten Sie Folgendes, bevor Sie den Wert des TTL-Attributs festlegen:
Beim Wert der TTL-Eigenschaft kann es sich um einen Zeitpunkt in der Zukunft, jetzt oder in der Vergangenheit handeln. Wenn der Wert eine Zeit ist in der Vergangenheit liegt, kann die Entität sofort gelöscht werden. Zum Beispiel haben Sie können Sie eine TTL-Richtlinie mit dem Attribut
expireAt
erstellen, die Sie dann vorhandenen Entitäten.Wenn Sie einen anderen Datentyp verwenden oder den TTL-Eigenschaftswert nicht festlegen, wird die TTL für die einzelne Entität 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 Typnamen und einen Zeitstempel-Attributnamen ein.
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
-
In the Google Cloud console, 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.
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 --enable-ttl
Das Aktivieren einer TTL kann auch bei leerer Datenbank zehn Minuten oder länger dauern . Nachdem Sie einen Vorgang gestartet haben, wird der Vorgang durch Schließen des Terminals nicht abgebrochen. .
TTL-Richtlinien ansehen
Führen Sie die folgenden Schritte aus, um TTL-Richtlinien und deren Status aufzurufen.
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.
In der Konsole sind die TTL-Richtlinien für Ihre Datenbank und die Status.
gcloud
-
In the Google Cloud console, 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.
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 Art aufzulisten:
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 aufrufen
mit dem Status CREATING
.
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
Führen Sie die folgenden Schritte aus, um eine TTL-Richtlinie zu deaktivieren.
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.
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 Datastore entfernt die TTL-Richtlinie aus der Tabelle.
gcloud
-
In the Google Cloud console, 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.
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. Datastore bietet die folgenden Messwerte für die 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 Löschverzögerungen |
Verstrichene Zeit zwischen dem Zeitpunkt, zu dem eine Entität unter einer TTL abgelaufen ist und wann sie gelöscht wurde. |
Informationen zum Einrichten eines Dashboards mit Datastore-Messwerten finden Sie unter das benutzerdefinierte Dashboard verwalten und Dashboard-Widgets hinzufügen.