Über TTL

Übersicht

Durch eine Gültigkeitsdauer (TTL) können Datenbankadministratoren Richtlinien festlegen, mit denen Daten regelmäßig aus Cloud Spanner-Tabellen gelöscht werden. Nicht benötigte Daten entfernen:

  • Reduziert die Speicher- und Sicherungskosten.
  • Es verringert die Anzahl der Zeilen, die die Datenbank nach einigen Abfragen scannen muss, wodurch die Abfrageleistung potenziell erhöht wird.
  • Hilft bei der Einhaltung von Vorschriften oder Branchenrichtlinien, die die Aufbewahrungsdauer für bestimmte Datentypen begrenzen.

TTL ist ideal für regelmäßige Bereinigungsaktivitäten. Sie wird kontinuierlich im Hintergrund ausgeführt und löscht zulässige Daten regelmäßig in Batches. Die Daten werden in der Regel innerhalb von 72 Stunden nach ihrem Ablaufdatum gelöscht. Durch eine TTL werden Daten nicht sofort entwertet oder für Abfragen ausgeblendet, wenn sie gelöscht werden können. Außerdem werden mit der TTL während des Einfügens Daten nicht geprüft. Sie können also keine Zeile mit einem abgelaufenen Zeitstempel einfügen.

Ein anderer Hintergrundverdichtungsprozess gibt Speicher aus gelöschten Zeilen zurück, normalerweise innerhalb von sieben Tagen.

TTL soll die Auswirkungen auf andere Datenbankaktivitäten minimieren. Es parallelisiert die Arbeit effizienter als Endnutzerabfragen und enthält eine Wiederholungslogik, um eine End-to-End-Bereinigung zu gewährleisten.

Wie funktioniert TTL?

Ein Datenbankinhaber legt eine TTL für eine Tabelle fest, indem er eine Richtlinie zum Löschen von Zeilen im Datenbankschema definiert. Jede Tabelle kann eine eigene Richtlinie haben. Pro Tabelle kann nur eine Richtlinie zum Löschen von Zeilen angegeben werden.

Eine Richtlinie zum Löschen von Zeilen gibt einen Zeitstempel und ein Intervall an, um zu bestimmen, wann eine Zeile gelöscht werden kann. Beispiel: Datum der letzten Aktualisierung plus 30 Tage. Informationen zur Syntax finden Sie unter Mit TTL arbeiten.

Ein Hintergrundsystemprozess prüft täglich nach zulässigen Zeilen. Sie parallelisiert die tatsächlichen Löschvorgänge in Batches, die in der Nähe der Speicherorte der Daten ausgeführt werden. Jeder Batch wird mit einem eigenen Zeitstempel in einer eigenen Transaktion ausgeführt. Daher werden die Zeilen in einem bestimmten Batch zusammen mit allen Indexen und verschränkten untergeordneten Elementen garantiert untrennbar gelöscht. Löschvorgänge sind jedoch in unterschiedlichen Transaktionen möglich.

Da dies ein asynchroner Hintergrundprozess ist, gibt es eine Verzögerung zwischen Berechtigung und Löschen. In der Regel beträgt die Verzögerung weniger als 72 Stunden. Daher können Zeilen bis zu drei Tage nach Ablauf der TTL in Ihrer Tabelle verbleiben. Beispielsweise kann eine Tabelle mit einer Richtlinie zum Löschen von Zeilen, die älter als vier Tage ist, Zeilen enthalten, die bis zu sieben Tage alt sind, sowie ältere, nicht lösbare Zeilen.

Sicherungen und TTL

Sicherung wiederherstellen

Wenn Sie eine Datenbank aus einer Sicherung wiederherstellen, werden alle Richtlinien zum Löschen von Zeilen, die in der Quelldatenbank konfiguriert wurden, automatisch gelöscht. Dadurch wird verhindert, dass Cloud Spanner abgelaufene Daten löscht, sobald die Sicherung wiederhergestellt wurde. Sie müssen dann Richtlinien zum Löschen von Zeilen manuell neu erstellen.

Datenkonsistenz

Eine Sicherung ist ein konsistenter Snapshot Ihrer Daten zu einem bestimmten Zeitpunkt. Ebenso lesen Dataflow-Exportjobs die gesamte Tabelle zu einem festen Zeitstempel. Durch TTL-automatische Speicherbereinigung werden zulässige Zeilen kontinuierlich und im Hintergrund erfasst. Jedem von TTL ausgegebenen DELETE wird auf dieselbe Weise ein Zeitstempel zugewiesen wie Nutzertransaktionen. Eine Sicherung enthält keine DELETEs mit einem Zeitstempel, der vor der Sicherungszeit liegt. Die Sicherung kann Zeilen enthalten, die möglicherweise zum Löschen von TTL berechtigt sind, aber für die TTL noch nicht abgeschlossen wurde.