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

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

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

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

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

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

Примечание

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

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

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

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

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

Умолчания;

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

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

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

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

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

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

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

Примеры

Для кластера с базой данных с именем MyDatabaseс таблицами MyTable1, MyTable2и 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. Задайте политику хранения на уровне базы данных и политику хранения на уровне таблицы с периодом обратимого удаления 100 лет(политика хранения по умолчанию) для 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задайте политику хранения на уровне таблицы с периодом обратимого удаления 100 лет, что является политикой хранения по умолчанию.

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