Zasady przechowywania

Zasady przechowywania kontrolują mechanizm, który automatycznie usuwa dane z tabel lub zmaterializowanych widoków. Warto usuwać dane, które stale przepływają do tabeli i których znaczenie jest określane na podstawie wieku. Na przykład zasady mogą być używane dla tabeli zawierającej zdarzenia diagnostyczne, które mogą stać się nieinteresujące po dwóch tygodniach.

Zasady przechowywania można skonfigurować dla określonej tabeli lub zmaterializowanego widoku albo dla całej bazy danych. Zasady są następnie stosowane do wszystkich tabel w bazie danych, które jej nie zastępują. Gdy zasady są konfigurowane zarówno na poziomie bazy danych, jak i tabeli, zasady przechowywania w tabeli mają pierwszeństwo przed zasadami bazy danych.

Skonfigurowanie zasad przechowywania jest ważne w przypadku klastrów, które stale pozyskują dane, co spowoduje ograniczenie kosztów.

Dane "poza" zasadami przechowywania kwalifikują się do usunięcia. Nie ma konkretnej gwarancji w przypadku usunięcia. Dane mogą być "utrzymywane", nawet jeśli zasady przechowywania są wyzwalane.

Zasady przechowywania są najczęściej ustawiane w celu ograniczenia wieku danych od momentu pozyskiwania. Aby uzyskać więcej informacji, zobacz SoftDeletePeriod.

Uwaga

  • Czas usunięcia jest niedokładny. System gwarantuje, że dane nie zostaną usunięte przed przekroczeniem limitu, ale usunięcie nie następuje natychmiast po tym punkcie.
  • Okres usuwania nietrwałego 0 można ustawić jako część zasad przechowywania na poziomie tabeli, ale nie jako część zasad przechowywania na poziomie bazy danych.
  • Po zakończeniu pozyskiwania danych nie zostaną zatwierdzone do tabeli źródłowej, co pozwala uniknąć konieczności utrwalania danych. W związku Recoverability z tym można ustawić Disabledtylko wartość .
  • Taka konfiguracja jest przydatna głównie wtedy, gdy dane są pozyskiwane do tabeli. Zasady aktualizacji transakcyjnej są używane do przekształcania i przekierowywania danych wyjściowych do innej tabeli.

Obiekt zasad

Zasady przechowywania obejmują następujące właściwości:

  • SoftDeletePeriod:
    • Przedział czasu, dla którego gwarantowana jest dostępność danych do wykonywania zapytań. Okres jest mierzony od momentu pozyskiwania danych.
    • Wartość domyślna to 100 years.
    • Podczas zmiany okresu usuwania nietrwałego tabeli lub bazy danych nowa wartość ma zastosowanie zarówno do istniejących, jak i nowych danych.
  • Możliwość odzyskiwania:
    • Możliwość odzyskiwania danych (włączona/wyłączona) po usunięciu danych.
    • Wartość domyślna to Enabled.
    • Jeśli zostanie ustawiona wartość Enabled, dane będą możliwe do odzyskania przez 14 dni po usunięciu nietrwałym.
    • Nie można skonfigurować okresu odzyskiwania.

Polecenia zarządzania

Wartość domyślna

Domyślnie podczas tworzenia bazy danych lub tabeli nie ma zdefiniowanych zasad przechowywania. Zwykle baza danych jest tworzona, a następnie natychmiast ma zasady przechowywania ustawione przez jego twórcę zgodnie ze znanymi wymaganiami. Po uruchomieniu .show polecenia dla zasad przechowywania bazy danych lub tabeli, która nie miała ustawionego zestawu zasad, Policy jest wyświetlana jako null.

Domyślne zasady przechowywania z wartościami domyślnymi wymienionymi powyżej można zastosować przy użyciu następującego polecenia.

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

Polecenie powoduje zastosowanie następującego obiektu zasad do bazy danych lub tabeli.

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

Wyczyszczenie zasad przechowywania bazy danych lub tabeli można wykonać przy użyciu następującego polecenia.

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

Przykłady

W przypadku klastra, który ma bazę danych o nazwie MyDatabase, z tabelami MyTable1, MyTable2i MySpecialTable.

Okres usuwania nietrwałego z siedmiu dni i wyłączono możliwość odzyskiwania

Ustaw wszystkie tabele w bazie danych tak, aby okres usuwania nietrwałego wynosił siedem dni i wyłączył możliwość odzyskiwania.

  • Opcja 1 (zalecana): ustaw zasady przechowywania na poziomie bazy danych i sprawdź, czy nie ustawiono żadnych zasad na poziomie tabeli.

    .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 
    
  • Opcja 2. Dla każdej tabeli ustaw zasady przechowywania na poziomie tabeli z wyłączonym okresem usuwania nietrwałego przez siedem dni i możliwością odzyskiwania.

    .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
    

Okres usuwania nietrwałego z siedmiu dni i włączono możliwość odzyskiwania

  • Ustaw tabele MyTable1 i MyTable2 mają wyłączony okres usuwania nietrwałego z siedmiu dni i możliwość odzyskiwania.

  • Ustaw MySpecialTable opcję na okres usuwania nietrwałego z włączonym okresem 14 dni i możliwościami odzyskiwania.

  • Opcja 1 (zalecana): ustaw zasady przechowywania na poziomie bazy danych i ustaw zasady przechowywania na poziomie tabeli.

    .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
    
  • Opcja 2. Dla każdej tabeli ustaw zasady przechowywania na poziomie tabeli z odpowiednim okresem usuwania nietrwałego i możliwością odzyskiwania.

    .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
    

Okres usuwania nietrwałego z siedmiu dni i MySpecialTable przechowuje dane na czas nieokreślony

Ustaw tabele MyTable1 i MyTable2 na okres usuwania nietrwałego z siedmiu dni i zachowaj MySpecialTable swoje dane na czas nieokreślony.

  • Opcja 1. Ustaw zasady przechowywania na poziomie bazy danych i ustaw zasady przechowywania na poziomie tabeli z okresem usuwania nietrwałego 100 lat, domyślnymi zasadami przechowywania dla programu 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
    
  • Opcja 2. W przypadku tabel MyTable1 i MyTable2ustaw zasady przechowywania na poziomie tabeli i sprawdź, czy zasady MySpecialTable na poziomie bazy danych i na poziomie tabeli nie są ustawione.

    .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
    
  • Opcja 3. W przypadku tabel MyTable1 i MyTable2ustaw zasady przechowywania na poziomie tabeli. W przypadku tabeli MySpecialTableustaw zasady przechowywania na poziomie tabeli z okresem usuwania nietrwałego przez 100 lat, domyślnymi zasadami przechowywania.

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