보존 정책

보존 정책은 테이블 또는 구체화된 뷰에서 데이터를 자동으로 제거하는 메커니즘을 제어합니다. 테이블로 지속적으로 흐르고 관련성이 연령 기반인 데이터를 제거하는 것이 유용합니다. 예를 들어 이 정책은 2주 후에 불안해질 수 있는 진단 이벤트를 보유하는 테이블에 사용할 수 있습니다.

보존 정책은 특정 테이블 또는 구체화된 뷰 또는 전체 데이터베이스에 대해 구성할 수 있습니다. 그런 다음, 정책을 재정의하지 않는 데이터베이스의 모든 테이블에 정책이 적용됩니다.

보존 정책을 설정하는 것은 데이터를 지속적으로 수집하여 비용을 제한하는 클러스터에 중요합니다.

보존 정책이 "외부"인 데이터는 제거할 수 있습니다. 제거가 발생하는 경우 구체적인 보장은 없습니다. 보존 정책이 트리거되더라도 데이터가 "남아 있을" 수 있습니다.

보존 정책은 수집 이후 데이터의 기간을 제한하도록 가장 일반적으로 설정됩니다. 자세한 내용은 SoftDeletePeriod를 참조하세요.

참고

  • 삭제 시간은 정확하지 않습니다. 시스템은 한도를 초과하기 전에 데이터가 삭제되지 않도록 보장하지만 삭제는 해당 시점을 즉시 수행하지 않습니다.
  • 일시 삭제 기간 0은 테이블 수준 보존 정책의 일부로 설정할 수 있지만 데이터베이스 수준 보존 정책의 일부로 설정할 수는 없습니다.
    • 이렇게 하면 수집된 데이터가 원본 테이블에 커밋되지 않으므로 데이터를 유지할 필요가 없습니다. 따라서 Recoverability .로만 설정할 Disabled수 있습니다.
    • 이러한 구성은 주로 데이터가 테이블에 수집될 때 유용합니다. 트랜잭션 업데이트 정책은 이를 변환하고 출력을 다른 테이블로 리디렉션하는 데 사용됩니다.

정책 개체

보존 정책에는 다음 속성이 포함됩니다.

  • SoftDeletePeriod:
    • 데이터를 쿼리에 사용할 수 있는 상태로 유지되도록 보장하는 시간 범위입니다. 이 기간은 데이터가 수집된 시간부터 측정됩니다.
    • 기본값은 100 years입니다.
    • 테이블 또는 데이터베이스의 일시 삭제 기간을 변경할 때 새 값은 기존 데이터와 새 데이터 모두에 적용됩니다.
  • 복구 가능성:
    • 데이터가 삭제된 후 데이터 복구 기능(사용/사용 안 함)입니다.
    • 기본값은 Enabled입니다.
    • 이 값을 Enabled설정하면 일시 삭제된 후 14일 동안 데이터를 복구할 수 있습니다.

제어 명령

기본값

기본적으로 데이터베이스 또는 테이블을 만들 때는 보존 정책이 정의되어 있지 않습니다. 일반적으로 데이터베이스가 만들어지고 즉시 알려진 요구 사항에 따라 작성자가 해당 보존 정책을 설정합니다. 정책 집합이 없는 데이터베이스 또는 테이블의 보존 정책에 대한 명령을 실행하면 다음과 같이 null표시됩니다..showPolicy

위에서 언급한 기본값을 사용하는 기본 보존 정책은 다음 명령을 사용하여 적용할 수 있습니다.

.alter database DatabaseName policy retention "{}"
.alter table TableName policy retention "{}"
.alter materialized-view ViewName policy retention "{}"

이 명령은 데이터베이스 또는 테이블에 적용된 다음 정책 개체를 생성합니다.

{
  "SoftDeletePeriod": "36500.00:00:00", "Recoverability":"Enabled"
}

다음 명령을 사용하여 데이터베이스 또는 테이블의 보존 정책을 지울 수 있습니다.

.delete database DatabaseName policy retention
.delete table TableName policy retention

예제

명명MyDatabase된 데이터베이스가 있고 테이블MyTable1MyTable2이 있는 클러스터의 MySpecialTable경우

일시 삭제 기간(7일) 및 복구 기능 사용 안 함

데이터베이스의 모든 테이블을 일시 삭제 기간(7일)으로 설정하고 복구 기능을 사용하지 않도록 설정합니다.

  • 옵션 1(권장): 데이터베이스 수준 보존 정책을 설정하고 테이블 수준 정책이 설정되어 있지 않은지 확인합니다.
.delete table MyTable1 policy retention        // optional, only if the table previously had its policy set
.delete table MyTable2 policy retention        // optional, only if the table previously had its policy set
.delete table MySpecialTable policy retention  // optional, only if the table previously had its policy set
.alter-merge database MyDatabase policy retention softdelete = 7d recoverability = disabled
.alter-merge materialized-view ViewName policy retention softdelete = 7d 
  • 옵션 2: 각 테이블에 대해 일시 삭제 기간이 7일이고 복구가 비활성화된 테이블 수준 보존 정책을 설정합니다.
.alter-merge table MyTable1 policy retention softdelete = 7d recoverability = disabled
.alter-merge table MyTable2 policy retention softdelete = 7d recoverability = disabled
.alter-merge table MySpecialTable policy retention softdelete = 7d recoverability = disabled

일시 삭제 기간(7일) 및 복구 가능

  • 테이블을 MyTable1MyTable2 설정하고 일시 삭제 기간을 7일로 설정하고 복구 기능을 사용하지 않도록 설정합니다.

  • 일시 삭제 기간은 14일이고 복구 가능성은 사용하도록 설정 MySpecialTable 됩니다.

  • 옵션 1(권장): 데이터베이스 수준 보존 정책을 설정하고 테이블 수준 보존 정책을 설정합니다.

.delete table MyTable1 policy retention   // optional, only if the table previously had its policy set
.delete table MyTable2 policy retention   // optional, only if the table previously had its policy set
.alter-merge database MyDatabase policy retention softdelete = 7d recoverability = disabled
.alter-merge table MySpecialTable policy retention softdelete = 14d recoverability = enabled
  • 옵션 2: 각 테이블에 대해 관련 일시 삭제 기간 및 복구 기능을 사용하여 테이블 수준 보존 정책을 설정합니다.
.alter-merge table MyTable1 policy retention softdelete = 7d recoverability = disabled
.alter-merge table MyTable2 policy retention softdelete = 7d recoverability = disabled
.alter-merge table MySpecialTable policy retention softdelete = 14d recoverability = enabled

일시 삭제 기간(7일) 및 MySpecialTable 데이터 무기한 유지

테이블을 MyTable1MyTable2 설정하고 일시 삭제 기간을 7일 MySpecialTable 로 설정하고 데이터를 무기한 유지합니다.

  • 옵션 1: 데이터베이스 수준 보존 정책을 설정하고 일시 삭제 기간이 100년인 테이블 수준 보존 정책을 기본 보존 정책 MySpecialTable으로 설정합니다.
.delete table MyTable1 policy retention   // optional, only if the table previously had its policy set
.delete table MyTable2 policy retention   // optional, only if the table previously had its policy set
.alter-merge database MyDatabase policy retention softdelete = 7d
.alter table MySpecialTable policy retention "{}" // this sets the default retention policy
  • 옵션 2: 테이블 MyTable1MyTable2경우 테이블 수준 보존 정책을 설정하고 데이터베이스 수준 및 테이블 수준 정책이 MySpecialTable 설정되지 않은지 확인합니다.
.delete database MyDatabase policy retention   // optional, only if the database previously had its policy set
.delete table MySpecialTable policy retention   // optional, only if the table previously had its policy set
.alter-merge table MyTable1 policy retention softdelete = 7d
.alter-merge table MyTable2 policy retention softdelete = 7d
  • 옵션 3: 테이블의 경우 테이블 MyTable1MyTable2수준 보존 정책을 설정합니다. 테이블 MySpecialTable의 경우 일시 삭제 기간이 100년인 테이블 수준 보존 정책을 기본 보존 정책으로 설정합니다.
.alter-merge table MyTable1 policy retention softdelete = 7d
.alter-merge table MyTable2 policy retention softdelete = 7d
.alter table MySpecialTable policy retention "{}"