diff options
author | ilnaz <ilnaz@ydb.tech> | 2022-07-25 12:07:19 +0300 |
---|---|---|
committer | ilnaz <ilnaz@ydb.tech> | 2022-07-25 12:07:19 +0300 |
commit | 6e02ac55fbb46b2dbcf36c2a76fe6bf28a031a3c (patch) | |
tree | b1bb202bb7f312c7170beee9e2e4b8d8aabe2ab4 | |
parent | ea216b67bf587001770d6e84e7159a08c919d87e (diff) | |
download | ydb-6e02ac55fbb46b2dbcf36c2a76fe6bf28a031a3c.tar.gz |
Explain units used to interpret value of integer TTL-column
-rw-r--r-- | ydb/docs/ru/core/concepts/_includes/ttl.md | 51 |
1 files changed, 40 insertions, 11 deletions
diff --git a/ydb/docs/ru/core/concepts/_includes/ttl.md b/ydb/docs/ru/core/concepts/_includes/ttl.md index 3567375445..a928c581f9 100644 --- a/ydb/docs/ru/core/concepts/_includes/ttl.md +++ b/ydb/docs/ru/core/concepts/_includes/ttl.md @@ -49,11 +49,12 @@ expiration_time = valueof(ttl_column) + expire_after_seconds * `Uint32`; * `Uint64`; * `DyNumber`. -* Значение TTL-колонки с числовым типом (`Uint32`, `Uint64`, `DyNumber`) интерпретируется как величина от [Unix-эпохи]{% if lang == "en" %}(https://en.wikipedia.org/wiki/Unix_time){% endif %}{% if lang == "ru" %}(https://ru.wikipedia.org/wiki/Unix-время){% endif %} заданная в: - * секундах; - * миллисекундах; - * микросекундах; - * наносекундах. +* Значение TTL-колонки с числовым типом (`Uint32`, `Uint64`, `DyNumber`) интерпретируется как величина от [Unix-эпохи]{% if lang == "en" %}(https://en.wikipedia.org/wiki/Unix_time){% endif %}{% if lang == "ru" %}(https://ru.wikipedia.org/wiki/Unix-время){% endif %}. Поддерживаемые единицы измерения (задаются в настройках TTL): + * секунды; + * миллисекунды; + * микросекунды; + * наносекунды. +* Настройка TTL с использованием [YQL](../../yql/reference/index.md) возможна только для колонок типа `Date`, `Datetime`, и `Timestamp`. * Нельзя указать несколько TTL-колонок. * Нельзя удалить TTL-колонку. Если это все же требуется, сначала нужно [выключить TTL](#disable) на таблице. @@ -65,12 +66,6 @@ expiration_time = valueof(ttl_column) + expire_after_seconds * [Консольного клиента {{ ydb-short-name }}](../../reference/ydb-cli/index.md). * {{ ydb-short-name }} {% if oss %}C++ и{% endif %} Python [SDK](../../reference/ydb-sdk/index.md). -{% note info %} - -Настройка TTL с использованием YQL возможна для колонок типа `Date`, `Datetime`, и `Timestamp`. - -{% endnote %} - ### Включение TTL для существующей таблицы {#enable-on-existent-table} В приведенном ниже примере строки таблицы `mytable` будут удаляться спустя час после наступления времени, записанного в колонке `created_at`: @@ -119,6 +114,40 @@ expiration_time = valueof(ttl_column) + expire_after_seconds {% endnote %} +Следующий пример демонстрирует использование колонки `modified_at` с числовым типом (`Uint32`) в качестве TTL-колонки. Значение колонки интерпретируется как секунды от Unix-эпохи: + +{% list tabs %} + +- CLI + + ```bash + $ {{ ydb-cli }} -e <endpoint> -d <database> table ttl set --column modified_at --expire-after 3600 --unit seconds mytable + ``` + +{% if oss == true %} + +- C++ + + ```c++ + session.AlterTable( + "mytable", + TAlterTableSettings() + .BeginAlterTtlSettings() + .Set("modified_at", TTtlSettings::EUnit::Seconds, TDuration::Hours(1)) + .EndAlterTtlSettings() + ); + ``` + +{% endif %} + +- Python + + ```python + session.alter_table('mytable', set_ttl_settings=ydb.TtlSettings().with_value_since_unix_epoch('modified_at', UNIT_SECONDS, 3600)) + ``` + +{% endlist %} + ### Включение TTL для вновь создаваемой таблицы {#enable-for-new-table} Для вновь создаваемой таблицы можно передать настройки TTL вместе с ее описанием: |