Настройка времени жизни строк (TTL) таблицы

В этом разделе приведены примеры настройки TTL строковых и колоночных таблиц при помощи YDB CLI.

Включение TTL для существующих строковых и колоночных таблиц

В приведенном ниже примере строки таблицы mytable будут удаляться спустя час после наступления времени, записанного в колонке created_at:

$ ydb -e <endpoint> -d <database> table ttl set --column created_at --expire-after 3600 mytable

Следующий пример демонстрирует использование колонки modified_at с числовым типом (Uint32) в качестве TTL-колонки. Значение колонки интерпретируется как секунды от Unix-эпохи:

$ ydb -e <endpoint> -d <database> table ttl set --column modified_at --expire-after 3600 --unit seconds mytable

Включение вытеснения данных во внешнее S3-совместимое хранилище

Внимание

Поддерживается только для колоночных таблиц. Поддержка функциональности для строковых таблиц находится в разработке.

Для включения вытеснения требуется объект external data source, описывающий подключение к внешнему хранилищу. Пример создания объекта можно найти в рецептах YQL.

Следующий пример демонстрирует включение вытеснения данных через вызов YQL-запроса из YDB CLI. Строки таблицы mytable будут переноситься в бакет, описанный во внешнем источнике данных /Root/s3_cold_data, спустя час после наступления времени, записанного в колонке created_at, а спустя 24 часа будут удаляться.

$ ydb -e <endpoint> -d <database> table query execute -q '
    ALTER TABLE `mytable` SET (
        TTL =
            Interval("PT1H") TO EXTERNAL DATA SOURCE `/Root/s3_cold_data`,
            Interval("PT24H") DELETE
        ON modified_at AS SECONDS
    );
'

Выключение TTL

$ ydb -e <endpoint> -d <database> table ttl reset mytable

Получение настроек TTL

Текущие настройки TTL можно получить из описания таблицы:

$ ydb -e <endpoint> -d <database> scheme describe mytable
Следующая