Срок жизни в Azure Cosmos DB

ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL

С временем жизни или TTL Azure Cosmos DB автоматически удаляет элементы из контейнера после определенного периода времени. По умолчанию можно задать срок жизни на уровне контейнера и переопределить значения по элементу. После установки срока жизни на уровне контейнера или элемента Azure Cosmos DB будет автоматически удалять эти элементы по прошествии периода времени с момента их последнего изменения. Значение срока жизни настраивается в секундах. При настройке TTL система автоматически удаляет просроченные элементы на основе значения TTL, не требуя явной операции удаления, выданной клиентским приложением. Максимальное значение для TTL составляет 2147483647 секунд, приблизительное эквивалентное 24 855 дней или 68 лет.

Удаление просроченных элементов — это фоновая задача, которая использует оставшиеся единицы запросов, которые не использовались запросами пользователей. Даже после истечения срока действия TTL, если контейнер перегружен запросами и если недостаточно ЕЗ, удаление данных отложено. Данные удаляются, если для выполнения операции удаления достаточно единиц запросов. Хотя удаление данных отложено, данные не возвращаются запросами (любым API) после истечения срока действия TTL.

Примечание.

Это содержимое относится к сроку жизни в транзакционном хранилище Azure Cosmos DB. Если вас интересует срок жизни в аналитическом хранилище для активации сценариев NoETL HTAP с использованием Azure Synapse Link, щелкните здесь.

Срок жизни для контейнеров и элементов

Время жизни задается в секундах и интерпретируется как разностное значение с момента последнего изменения элемента. Вы можете установить срок жизни для контейнера или элемента в контейнере:

  1. Срок жизни контейнера (устанавливается с использованием значения DefaultTimeToLive):

    • Если отсутствуют (или задано значение NULL), элементы не истекли автоматически.

    • Если задано значение "-1", оно равно бесконечности, а элементы по умолчанию не истекают.

    • Если задано значение, равное некоторому ненулевому числу "n", элементы будут истекать в секундах после последнего изменения.

  2. Срок жизни элемента (устанавливается с использованием значения ttl):

    • Это свойство применимо только в том случае, если DefaultTimeToLive он присутствует и не имеет значения NULL для родительского контейнера.

    • Если свойство присутствует, оно переопределяет значение DefaultTimeToLive родительского контейнера.

Настройки срока жизни

  • Если для контейнера задан срок жизни n, элементы в нем будут удалены по истечении n секунд. Если в одном контейнере есть элементы с собственным временем жизни, задайте значение -1 (указывающее, что срок действия не истекает). Если некоторые элементы переопределяют время жизни с другим числом, срок действия этих элементов истекает на основе собственного настраиваемого значения TTL.

  • Если TTL не задан в контейнере, время жизни элемента в этом контейнере не влияет.

  • Если значение TTL в контейнере имеет значение -1, элемент в этом контейнере с временем жизни, срок действия которого истекает через n секунд, а остальные элементы не будут истекать.

Примеры

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

Примечание.

Установка значения TTL на значение NULL для элемента не поддерживается. Значение TTL элемента должно быть ненулевое положительное целое число меньше или равно 2147483647 или -1, что означает, что элемент никогда не истекает. Чтобы использовать TTL по умолчанию для элемента, убедитесь, что свойство TTL отсутствует.

Пример 1

В качестве срока жизни контейнера задано значение NULL (DefaultTimeToLive = null)

Срок жизни элемента Результат
Отсутствует свойство ttl Срок жизни отключен. Срок действия элемента не ограничен (по умолчанию).
Срок жизни = –1 Срок жизни отключен. Срок действия элемента не ограничен.
Срок жизни = 2000 Срок жизни отключен. Срок действия элемента не ограничен.

Пример 2

В качестве срока жизни контейнера задано значение –1 (DefaultTimeToLive = –1)

Срок жизни элемента Результат
Отсутствует свойство ttl TTL включен. Срок действия элемента не ограничен (по умолчанию).
Срок жизни = –1 TTL включен. Срок действия элемента не ограничен.
Срок жизни = 2000 TTL включен. Срок действия элемента истечет через 2000 секунд.

Пример 3

В качестве срока жизни контейнера задано значение 1000 (DefaultTimeToLive = 1000)

Срок жизни элемента Результат
Отсутствует свойство ttl TTL включен. Срок действия элемента истечет через 1000 секунд (по умолчанию).
Срок жизни = –1 TTL включен. Срок действия элемента не ограничен.
Срок жизни = 2000 TTL включен. Срок действия элемента истечет через 2000 секунд.

Следующие шаги

Чтобы узнать, как настроить срок жизни, ознакомьтесь со статьей: