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 Bedeutung 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
- Nur eine Property pro Art kann als TTL-Property gekennzeichnet werden.
- Insgesamt sind 200 TTL-Richtlinien zulässig.
TTL-Löschung
Beachten Sie die folgenden wichtigen Verhaltensweisen bei der TTL-basierten Löschung:
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 dieser 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.
Das Löschen erfolgt 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 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 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
Eine TTL-Property 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 Best Practices und kann Hotspots verursachen. Hotspots haben hohe Lese-, Schreib- und Löschraten für einen schmalen Schlüssel Bereich.
Standardmäßig erstellt Datastore einen integrierten Index für alle Properties. Sie können eine Property aus Indexen ausschließen, um Indexe für eine TTL-Property 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. - 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 die
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 Zeit für Entitäten in einer Art. Die TTL-Richtlinie gilt für die angegebene Art in allen Namespaces.
Bei der Gültigkeitsdauer wird eine bestimmte 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 bereits vorhandene Property auswählen oder eine Property festlegen, die Sie später hinzufügen möchten.
Beachten Sie Folgendes, bevor Sie den Wert der TTL-Eigenschaft festlegen:
Der TTL-Eigenschaftswert kann ein Zeitpunkt in der Zukunft, jetzt oder in der Vergangenheit sein. Wenn der Wert eine Zeit ist in der Vergangenheit liegt, kann die Entität sofort gelöscht werden. Sie können beispielsweise eine TTL-Richtlinie mit dem Attribut
expireAt
erstellen und sie dann vorhandenen Entitäten hinzufügen.Wenn Sie einen anderen Datentyp verwenden oder den TTL-Attributwert 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
Selbst bei einer leeren Datenbank kann es zehn Minuten oder länger dauern, bis eine TTL-Richtlinie aktiviert ist. 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 abgeschlossenen Vorgänge anzeigen zu lassen:
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 Tabelle mit TTL-Richtlinien 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öschungen überwachen
Mit Cloud Monitoring können Sie Messwerte zu TTL-gesteuerten Löschungen ansehen. Der Datenspeicher 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.