Azure Cosmos DB의 TTL(Time to Live)

적용 대상: NoSQL

Time to Live 또는 TTL을 사용하면 Azure Cosmos DB는 특정 기간이 지나면 컨테이너에서 항목을 자동으로 삭제합니다. 기본적으로 컨테이너 수준에서 TTL(Time to Live)을 설정하거나 항목별 기준으로 값을 재정의할 수 있습니다. 컨테이너 또는 항목 수준에서 TTL을 설정하면 Azure Cosmos DB는 마지막으로 수정한 시간으로부터 해당 시간이 지나면 이러한 항목이 자동으로 제거합니다. TTL(Time to Live) 값은 초 단위로 구성됩니다. TTL을 구성하면 시스템은 클라이언트 애플리케이션에서 명시적으로 실행한 삭제 작업 없이도 TTL 값을 기준으로 만료된 항목을 자동으로 삭제합니다. TTL의 최댓값은 2147483647초이며 대략 24,855일 또는 68년과 같습니다.

만료된 항목 삭제는 사용자 요청에 사용되지 않은 남은 요청 단위를 사용하는 백그라운드 작업입니다. TTL이 만료된 후에도 컨테이너가 요청으로 오버로드되고 사용 가능한 RU가 충분하지 않으면 데이터 삭제가 지연됩니다. 삭제 작업을 수행할 수 있는 RU가 충분하면 데이터가 삭제됩니다. 데이터 삭제가 지연되더라도 TTL이 만료된 후에는 쿼리(모든 API에 의해)에서 데이터가 반환되지 않습니다.

참고 항목

이 콘텐츠는 Azure Cosmos DB 트랜잭션 저장소 TTL과 관련이 있습니다. Azure Synapse Link를 통해 NoETL HTAP 시나리오를 사용하도록 설정하는 분석 저장소 TTL을 찾고 있다면 여기를 클릭하세요.

컨테이너 및 항목에 대한 TTL(Time to live)

TTL(Time to Live) 값은 초 단위로 설정되며 항목이 마지막으로 수정된 시간의 델타로 해석됩니다. TTL(Time to Live)은 컨테이너 또는 컨테이너 내 항목에서 설정할 수 있습니다.

  1. 컨테이너에서 TTL(Time to Live)(DefaultTimeToLive 사용하여 설정):

    • 누락되거나 null로 설정된 경우 항목이 자동으로 만료되지 않습니다.

    • 표시되고 값이 "-1"로 설정되면 무한과 동일하며 항목은 기본적으로 만료되지 않습니다.

    • 표시되고 값이 일부 0이 아닌 숫자 "n"으로 설정된 경우 항목은 마지막으로 수정된 시간으로부터 "n"초 후에 만료됩니다.

  2. 항목에서 TTL(Time to Live)(ttl 사용하여 설정):

    • 이 속성은 DefaultTimeToLive가 표시되고 부모 컨테이너에 대해 null로 설정되지 않은 경우에만 적용할 수 있습니다.

    • 표시되면 부모 컨테이너의 DefaultTimeToLive 값을 재정의합니다.

TTL(Time to Live) 구성

  • TTL이 컨테이너에서 "n"으로 설정되면 해당 컨테이너의 항목은 n초 후에 만료됩니다. 동일한 컨테이너에 자체 수명이 있는 항목이 있는 경우 -1로 설정합니다(만료되지 않음을 나타냄). 일부 항목이 다른 숫자로 TTL(Time to Live) 설정을 재정의하는 경우 해당 항목은 자체 구성된 TTL 값에 따라 만료됩니다.

  • 컨테이너에서 TTL을 설정하지 않으면, 이 컨테이너의 항목에서 TTL(Time to Live)은 효과가 없습니다.

  • 컨테이너에서 TTL이 -1로 설정된 경우 TTL(Time to Live)이 n으로 설정된 이 컨테이너의 항목은 n초 후에 만료되고 나머지 항목은 만료되지 않습니다.

예제

이 섹션에서는 컨테이너 및 항목에 다른 TTL(Time to Live) 값이 할당된 몇 가지 예를 보여줍니다.

참고 항목

항목에 대해 TTL을 null로 설정하는 것은 지원되지 않습니다. 항목 TTL 값은 2147483647 이하의 0이 아닌 양의 정수이거나 항목이 만료되지 않음을 의미하는 -1이어야 합니다. 항목에 기본 TTL을 사용하려면 TTL 속성이 없는지 확인합니다.

예 1

컨테이너의 TTL이 null(DefaultTimeToLive = null)로 설정되어 있음

항목에 대한 TTL 결과
TTL 속성이 누락됨 TTL을 사용할 수 없습니다. 항목은 만료되지 않습니다(기본값).
ttl = -1 TTL을 사용할 수 없습니다. 항목은 만료되지 않습니다.
ttl = 2000 TTL을 사용할 수 없습니다. 항목은 만료되지 않습니다.

예제 2

컨테이너의 TTL이 -1(DefaultTimeToLive = -1)로 설정되어 있음

항목에 대한 TTL 결과
TTL 속성이 누락됨 TTL이 사용됩니다. 항목은 만료되지 않습니다(기본값).
ttl = -1 TTL이 사용됩니다. 항목은 만료되지 않습니다.
ttl = 2000 TTL이 사용됩니다. 항목은 2,000초 후에 만료됩니다.

예 3

컨테이너의 TTL이 1,000(DefaultTimeToLive = 1,000)으로 설정되어 있음

항목에 대한 TTL 결과
TTL 속성이 누락됨 TTL이 사용됩니다. 항목은 1,000초(기본값) 후에 만료됩니다.
ttl = -1 TTL이 사용됩니다. 항목은 만료되지 않습니다.
ttl = 2000 TTL이 사용됩니다. 항목은 2,000초 후에 만료됩니다.

다음 단계

TTL(Time to Live)을 구성하는 방법을 다음 문서에서 알아봅니다.