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

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

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

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

Для подготовленных учетных записей пропускной способности удаление просроченных элементов использует оставшиеся ЕЗ, которые не были использованы запросами пользователей.

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

Примечание.

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

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

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

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

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

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

    • Если имеется значение, а для некоторых ненулевого числа "n" элементы истекают секунды "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 секунд.

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

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