Поделиться через


Политика хранения

Политика хранения управляет механизмом автоматического удаления данных из таблиц или материализованных представлений. Полезно удалять данные, которые постоянно передаются в таблицу и релевантность которых зависит от возраста. Например, политику можно использовать для таблицы, содержащей диагностика события, которые могут стать неинтересными через две недели.

Политику хранения можно настроить для определенной таблицы или материализованного представления или для всей базы данных. Затем политика применяется ко всем таблицам в базе данных, которые не переопределяют ее. Если политика настроена как на уровне базы данных, так и на уровне таблицы, политика хранения в таблице имеет приоритет над политикой базы данных.

Настройка политики хранения важна для кластеров, которые постоянно получают данные, что ограничивает затраты.

Данные, которые находятся вне политики хранения, могут быть удалены. При удалении не существует определенной гарантии. Данные могут задерживаться, даже если политика хранения активируется.

Политика хранения чаще всего ограничивает возраст данных с момента приема. Дополнительные сведения см. в статье SoftDeletePeriod.

Примечание.

  • Время удаления является неточным. Система гарантирует, что данные не будут удалены до превышения ограничения, но удаление не произойдет немедленно после этого момента.
  • Период обратимого удаления 0 можно задать как часть политики хранения на уровне таблицы, но не в рамках политики хранения на уровне базы данных.
  • После этого прием данных не будет зафиксирован в исходной таблице, избегая необходимости сохранять данные. В результате Recoverability можно задать Disabledтолько значение .
  • Такая конфигурация полезна главным образом при приеме данных в таблицу. Политика обновления транзакций используется для преобразования и перенаправления выходных данных в другую таблицу.

Объект политики

Политика хранения включает следующие свойства:

  • SoftDeletePeriod:
    • Период времени, для которого гарантируется, что данные хранятся в запросе. Период измеряется начиная с момента приема данных.
    • По умолчанию — 1,000 years.
    • При изменении периода обратимого удаления таблицы или базы данных новое значение применяется как к существующим, так и к новым данным.
  • Возможность восстановления:
    • Возможность восстановления данных (включена или отключена) после удаления данных.
    • По умолчанию — Enabled.
    • Если задано значение Enabled, данные будут восстанавливаться в течение 14 дней после его обратимого удаления.
    • Невозможно настроить период восстановления.

Команды управления

Defaults

По умолчанию при создании базы данных или таблицы она не определяет политику хранения. Как правило, база данных создается, а затем сразу же устанавливается ее создателем в соответствии с известными требованиями. При выполнении .show команды для политики хранения базы данных или таблицы, которая не имела его набора политик, Policy отображается как null.

Политика хранения по умолчанию с указанными выше значениями по умолчанию может применяться с помощью следующей команды.

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

Эта команда приводит к применению следующего объекта политики к базе данных или таблице.

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

Очистка политики хранения базы данных или таблицы можно выполнить с помощью следующей команды.

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

Примеры

Для кластера с именем MyDatabaseбазы данных, таблиц MyTable1MyTable2и MySpecialTableт. е.

Период обратимого удаления семи дней и возможность восстановления отключена

Задайте для всех таблиц в базе данных период обратимого удаления в семь дней и отключил возможность восстановления.

  • Вариант 1 (рекомендуется) — задайте политику хранения на уровне базы данных и убедитесь, что политики уровня таблицы отсутствуют.

    .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 
    
  • Вариант 2. Для каждой таблицы задайте политику хранения на уровне таблицы с периодом обратимого удаления семи дней и отключенной возможностью восстановления.

    .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
    

Период обратимого удаления в течение семи дней и включена возможность восстановления

  • Задайте таблицы MyTable1 и MyTable2 установите обратимое удаление в течение семи дней и возможность восстановления отключена.

  • Установите для MySpecialTable параметра обратимое удаление в течение 14 дней и включена возможность восстановления.

  • Вариант 1 (рекомендуется) — задайте политику хранения на уровне базы данных и задайте политику хранения на уровне таблицы.

    .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
    
  • Вариант 2. Для каждой таблицы задайте политику хранения на уровне таблицы с соответствующим периодом обратимого удаления и возможностью восстановления.

    .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
    

Период обратимого удаления в семь дней и MySpecialTable сохраняет данные на неопределенный срок.

Задайте таблицы MyTable1 и MyTable2 установите обратимое удаление в течение семи дней и сохраните MySpecialTable свои данные на неопределенный срок.

  • Вариант 1. Установка политики хранения на уровне базы данных и установка политики хранения на уровне таблицы с периодом обратимого удаления 1000 лет, для политики 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
    
  • Вариант 2. Для таблиц MyTable1 и MyTable2установите политику хранения на уровне таблицы и убедитесь, что политика MySpecialTable уровня базы данных и таблицы не задана.

    .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
    
  • Вариант 3. Для таблиц MyTable1 и MyTable2задайте политику хранения на уровне таблицы. Для таблицы задайте политику хранения на уровне таблицы MySpecialTableс периодом обратимого удаления 1000 лет, политика хранения по умолчанию.

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