Aufbewahrungsrichtlinie

Die Aufbewahrungsrichtlinie steuert den Mechanismus, mit dem Daten automatisch aus Tabellen oder materialisierten Sichten entfernt werden. Es ist sinnvoll, Daten zu entfernen, die kontinuierlich in eine Tabelle einfließen und deren Relevanz altersabhängig ist. Die Richtlinie kann beispielsweise für eine Tabelle verwendet werden, die Diagnoseereignisse enthält, die nach zwei Wochen möglicherweise uninteressant werden.

Die Aufbewahrungsrichtlinie kann für eine bestimmte Tabelle oder materialisierte Sicht oder für eine gesamte Datenbank konfiguriert werden. Die Richtlinie gilt dann für alle Tabellen in der Datenbank, die sie nicht überschreiben. Wenn die Richtlinie sowohl auf Datenbank- als auch auf Tabellenebene konfiguriert ist, hat die Aufbewahrungsrichtlinie in der Tabelle Vorrang vor der Datenbankrichtlinie.

Das Einrichten einer Aufbewahrungsrichtlinie ist wichtig für Cluster, die kontinuierlich Daten erfassen, wodurch die Kosten begrenzt werden.

Daten, die sich "außerhalb" der Aufbewahrungsrichtlinie befinden, können entfernt werden. Es gibt keine spezifische Garantie, wenn die Entfernung erfolgt. Daten können "verweilen", auch wenn die Aufbewahrungsrichtlinie ausgelöst wird.

Die Aufbewahrungsrichtlinie wird am häufigsten festgelegt, um das Alter der Daten seit der Erfassung zu begrenzen. Weitere Informationen finden Sie unter SoftDeletePeriod.

Hinweis

  • Der Zeitpunkt der Löschung ist ungenau. Das System sorgt dafür, dass keine Daten gelöscht werden, bevor der Grenzwert überschritten ist, aber die Löschung erfolgt nicht unmittelbar nach diesem Zeitpunkt.
  • Ein Zeitraum für vorläufiges Löschen von 0 kann als Teil einer Aufbewahrungsrichtlinie auf Tabellenebene festgelegt werden, jedoch nicht als Teil einer Aufbewahrungsrichtlinie auf Datenbankebene.
  • Wenn dies geschehen ist, werden die erfassten Daten nicht in die Quelltabelle committet, sodass die Daten nicht beibehalten werden müssen. Recoverability Daher kann nur auf Disabledfestgelegt werden.
  • Eine solche Konfiguration ist vor allem nützlich, wenn die Daten in einer Tabelle erfasst werden. Eine Transaktionsaktualisierungsrichtlinie wird verwendet, um sie zu transformieren und die Ausgabe in eine andere Tabelle umzuleiten.

Das Richtlinienobjekt

Eine Aufbewahrungsrichtlinie enthält die folgenden Eigenschaften:

  • SoftDeletePeriod:
    • Zeitspanne, für die garantiert ist, dass die Daten für Abfragen verfügbar bleiben. Der Zeitraum wird ab dem Zeitpunkt gemessen, zu dem die Daten erfasst wurden.
    • Wird standardmäßig auf 100 years festgelegt.
    • Beim Ändern des Zeitraums für vorläufiges Löschen einer Tabelle oder Datenbank gilt der neue Wert sowohl für vorhandene als auch für neue Daten.
  • Wiederherstellbarkeit:
    • Wiederherstellbarkeit der Daten (aktiviert/deaktiviert), nachdem die Daten gelöscht wurden.
    • Der Standardwert lautet Enabled.
    • Bei Festlegung auf Enabledkönnen die Daten 14 Tage lang wiederhergestellt werden, nachdem sie vorläufig gelöscht wurden.
    • Es ist nicht möglich, den Wiederherstellungszeitraum zu konfigurieren.

Befehle für Verwaltung

Standardeinstellungen

Wenn eine Datenbank oder Tabelle erstellt wird, ist standardmäßig keine Aufbewahrungsrichtlinie definiert. Normalerweise wird die Datenbank erstellt, und die Aufbewahrungsrichtlinie wird dann sofort vom Ersteller gemäß den bekannten Anforderungen festgelegt. Wenn Sie einen .show Befehl für die Aufbewahrungsrichtlinie einer Datenbank oder Tabelle ausführen, deren Richtlinie nicht festgelegt wurde, Policy wird als nullangezeigt.

Die Standardaufbewahrungsrichtlinie mit den oben genannten Standardwerten kann mit dem folgenden Befehl angewendet werden.

.alter database DatabaseName policy retention "{}"
.alter table TableName policy retention "{}"
.alter materialized-view ViewName policy retention "{}"

Der Befehl führt dazu, dass das folgende Richtlinienobjekt auf die Datenbank oder Tabelle angewendet wird.

{
  "SoftDeletePeriod": "36500.00:00:00", "Recoverability":"Enabled"
}

Das Löschen der Aufbewahrungsrichtlinie einer Datenbank oder Tabelle kann mit dem folgenden Befehl erfolgen.

.delete database DatabaseName policy retention
.delete table TableName policy retention

Beispiele

Für einen Cluster mit einer Datenbank mit dem Namen MyDatabase, mit den Tabellen MyTable1, MyTable2und MySpecialTable.

Zeitraum für vorläufiges Löschen von sieben Tagen und Deaktivierte Wiederherstellbarkeit

Legen Sie für alle Tabellen in der Datenbank einen Zeitraum von sieben Tagen für vorläufiges Löschen fest, und deaktivieren Sie die Wiederherstellung.

  • Option 1 (empfohlen): Legen Sie eine Aufbewahrungsrichtlinie auf Datenbankebene fest, und stellen Sie sicher, dass keine Richtlinien auf Tabellenebene festgelegt sind.

    .delete table MyTable1 policy retention        // optional, only if the table previously had its policy set
    .delete table MyTable2 policy retention        // optional, only if the table previously had its policy set
    .delete table MySpecialTable policy retention  // optional, only if the table previously had its policy set
    .alter-merge database MyDatabase policy retention softdelete = 7d recoverability = disabled
    .alter-merge materialized-view ViewName policy retention softdelete = 7d 
    
  • Option 2: Legen Sie für jede Tabelle eine Aufbewahrungsrichtlinie auf Tabellenebene mit einem Zeitraum von sieben Tagen und deaktivierter Wiederherstellbarkeit fest.

    .alter-merge table MyTable1 policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MyTable2 policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MySpecialTable policy retention softdelete = 7d recoverability = disabled
    

Zeitraum für vorläufiges Löschen von sieben Tagen und Aktivierte Wiederherstellbarkeit

  • Legen Sie Tabellen MyTable1 fest, um MyTable2 einen Zeitraum für vorläufiges Löschen von sieben Tagen und die Wiederherstellbarkeit deaktiviert zu haben.

  • Legen Sie MySpecialTable fest, dass ein Zeitraum für vorläufiges Löschen von 14 Tagen und die Wiederherstellungsfähigkeit aktiviert ist.

  • Option 1 (empfohlen): Legen Sie eine Aufbewahrungsrichtlinie auf Datenbankebene fest, und legen Sie eine Aufbewahrungsrichtlinie auf Tabellenebene fest.

    .delete table MyTable1 policy retention   // optional, only if the table previously had its policy set
    .delete table MyTable2 policy retention   // optional, only if the table previously had its policy set
    .alter-merge database MyDatabase policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MySpecialTable policy retention softdelete = 14d recoverability = enabled
    
  • Option 2: Legen Sie für jede Tabelle eine Aufbewahrungsrichtlinie auf Tabellenebene mit dem relevanten Vorläufigen Löschzeitraum und der Wiederherstellbarkeit fest.

    .alter-merge table MyTable1 policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MyTable2 policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MySpecialTable policy retention softdelete = 14d recoverability = enabled
    

Vorläufiger Löschzeitraum von sieben Tagen und MySpecialTable Aufbewahrung der Daten auf unbestimmte Zeit

Legen Sie Tabellen MyTable1 fest, MyTable2 um einen Zeitraum für vorläufiges Löschen von sieben Tagen zu haben, und behalten MySpecialTable Sie die Daten auf unbestimmte Zeit.

  • Option 1: Festlegen einer Aufbewahrungsrichtlinie auf Datenbankebene und Festlegen einer Aufbewahrungsrichtlinie auf Tabellenebene mit einem Vorläufigen Löschzeitraum von 100 Jahren, der Standardaufbewahrungsrichtlinie für MySpecialTable.

    .delete table MyTable1 policy retention   // optional, only if the table previously had its policy set
    .delete table MyTable2 policy retention   // optional, only if the table previously had its policy set
    .alter-merge database MyDatabase policy retention softdelete = 7d
    .alter table MySpecialTable policy retention "{}" // this sets the default retention policy
    
  • Option 2: Legen Sie für Tabellen MyTable1 und MyTable2eine Aufbewahrungsrichtlinie auf Tabellenebene fest, und stellen Sie sicher, dass die Richtlinie auf Datenbank- und Tabellenebene für MySpecialTable nicht festgelegt sind.

    .delete database MyDatabase policy retention   // optional, only if the database previously had its policy set
    .delete table MySpecialTable policy retention   // optional, only if the table previously had its policy set
    .alter-merge table MyTable1 policy retention softdelete = 7d
    .alter-merge table MyTable2 policy retention softdelete = 7d
    
  • Option 3: Legen Sie für Tabellen MyTable1 und MyTable2eine Aufbewahrungsrichtlinie auf Tabellenebene fest. Legen Sie für die Tabelle MySpecialTableeine Aufbewahrungsrichtlinie auf Tabellenebene mit einem Zeitraum von 100 Jahren fest, die Standardaufbewahrungsrichtlinie.

    .alter-merge table MyTable1 policy retention softdelete = 7d
    .alter-merge table MyTable2 policy retention softdelete = 7d
    .alter table MySpecialTable policy retention "{}"