ALTER SNAPSHOT POLICY — 더 이상 사용되지 않음
ALTER SNAPSHOT POLICY — 더 이상 사용되지 않음 (Deprecated)
스냅샷 정책의 속성을 수정하는 명령이에요. 다음 변경이 지원돼요:
- 정책 이름 바꾸기.
- 정책 주석 추가 또는 업데이트.
- 정책의 스케줄 및 만료 설정 변경. 스케줄은 Snowflake가 백업을 자동으로 만들고 결과 스냅샷을 정책이 관리하는 스냅샷 세트에 추가하는 빈도를 결정해요. 만료 기간은 Snowflake가 연결된 스냅샷 세트에서 스냅샷을 자동으로 삭제하기 전에 각 스냅샷을 보관하는 기간을 결정해요.
- 정책의 속성을 해제해 기본값으로 되돌리기.
출처: 문서
본문
Standard & Business Critical Feature
- 스냅샷은 모든 Snowflake 에디션에서 사용할 수 있어요.
- 보존 잠금(retention lock)이 있는 스냅샷과 법적 보류(legal hold)가 있는 스냅샷은 Business Critical Edition(이상)에서 사용할 수 있어요. 업그레이드 문의는 Snowflake Support에 연락하세요.
더 이상 사용되지 않는 기능: ALTER SNAPSHOT POLICY 명령은 더 이상 사용되지 않아요. ALTER BACKUP POLICY를 참고하세요.
관련 명령: CREATE SNAPSHOT POLICY — 더 이상 사용되지 않음, DROP SNAPSHOT POLICY — 더 이상 사용되지 않음, SHOW SNAPSHOT POLICIES — 더 이상 사용되지 않음
구문 (Syntax)
ALTER SNAPSHOT POLICY <name> RENAME TO <new_name>
ALTER SNAPSHOT POLICY <name> SET
[ COMMENT = '<string_literal>' ]
[ SCHEDULE = '{ <num> MINUTE | <num> HOUR | USING CRON <expr> <time_zone> }' ]
[ EXPIRE_AFTER_DAYS = <days_integer> ]
ALTER SNAPSHOT POLICY <name> UNSET { COMMENT | SCHEDULE | EXPIRE_AFTER_DAYS }
ALTER SNAPSHOT POLICY <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER SNAPSHOT POLICY <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
매개변수 (Parameters)
name — 스냅샷 정책의 식별자를 지정해요. 식별자에 공백이나 특수 문자가 포함되어 있으면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶은 식별자는 대소문자를 구분해요. 자세한 내용은 식별자 요구사항을 참고하세요.
RENAME TO new_name — 스냅샷 정책의 새 식별자를 지정해요. 계정에서 고유해야 해요. 자세한 내용은 식별자 요구사항을 참고하세요.
SET ... — 공백, 콤마 또는 줄바꿈으로 구분해 스냅샷 정책에 설정할 하나 이상의 속성을 지정해요:
COMMENT = 'string_literal' — 스냅샷 정책에 대한 주석을 지정해요.
SCHEDULE = '{ num MINUTE | num HOUR | USING CRON expr time_zone }' — 객체의 스냅샷을 만드는 스케줄을 지정해요.
참고: 스냅샷의 최소 스케줄은 60분 또는 1시간이에요. 모든 정책은 SCHEDULE 절, EXPIRE_AFTER_DAYS 절 또는 둘 다를 포함해야 해요.
USING CRON expr time_zone— 객체의 스냅샷이 만들어지는 시점에 대한 cron 표현식과 시간대를 지정해요. 표준 cron 유틸리티 구문의 일부를 지원해요. 시간대 목록은 tz 데이터베이스 시간대 목록(Wikipedia)을 참고하세요. cron 표현식은 다음 필드로 구성돼요:
# __________ minute (0-59)
# | ________ hour (0-23)
# | | ______ day of month (1-31, or L)
# | | | ____ month (1-12, JAN-DEC)
# | | | | __ day of week (0-6, SUN-SAT, or L)
# | | | | |
# | | | | |
* * * * *
다음 특수 문자를 지원해요:
*— 와일드카드. 필드의 모든 발생을 지정해요.L— "last(마지막)"를 나타내요. 요일 필드에서 사용하면 특정 월의 "마지막 금요일"("5L") 같은 구문을 지정할 수 있어요. 월일 필드에서는 월의 마지막 날을 지정해요./*n*— 주어진 시간 단위의 n번째 인스턴스를 나타내요. 각 시간 양자(quanta)는 독립적으로 계산돼요. 예를 들어 월 필드에4/3이 지정되면 스냅샷은 4월, 7월, 10월(즉 해의 4번째 달부터 3개월마다)에 예약돼요. 이후 연도에도 같은 스케줄이 유지돼요. 즉 스냅샷은 1월(10월 실행 후 3개월)에는 실행되도록 예약되지 않아요.
참고
- cron 표현식은 현재 지정된 시간대에 대해서만 평가돼요. 계정의 TIMEZONE 매개변수 값을 변경해도(또는 사용자 또는 세션 수준에서 설정해도) 스냅샷의 시간대는 변경되지 않아요.
- cron 표현식은 스냅샷의 모든 유효한 실행 시간을 정의해요. Snowflake는 이 스케줄에 따라 스냅샷을 만들려고 하지만, 다음 유효한 실행 시간이 시작되기 전에 이전 실행이 완료되지 않으면 유효한 실행 시간이 건너뛰어져요.
- cron 표현식에 특정 월일과 요일이 모두 포함되면 스냅샷은 월일 또는 요일 중 하나를 충족하는 날에 예약돼요. 예를 들어
SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC'는 매월 10일에서 20일 사이의 오전 0시와 그 날짜 밖의 화요일 또는 목요일에도 스냅샷을 예약해요.
num MINUTE— 스냅샷 사이의 대기 시간 간격(분)을 지정해요. 양의 정수만 받아요.num M구문도 지원돼요.num HOUR또는num HOURS— 백업 사이의 대기 시간 간격(시간)을 지정해요. 양의 정수만 받아요.num H구문도 지원돼요.
모호함을 피하기 위해 다음 상황에서 *기준 간격 시간(base interval time)*이 설정돼요:
- 객체가 생성될 때 (CREATE BACKUP SET … WITH BACKUP POLICY 사용).
- 다른 간격이 설정될 때 (ALTER BACKUP SET … APPLY BACKUP POLICY 또는 ALTER BACKUP POLICY … SET SCHEDULE 사용).
기준 간격 시간은 현재 시계 시간부터 간격 카운터를 시작해요. 예를 들어 INTERVAL 값이 10 MINUTES이고 예약된 백업이 오전 9:03에 활성화되면 다음 백업은 9:13, 9:23 등에 만들어져요. 절대적인 정밀도를 보장하기 위해 최선을 다하지만, 백업이 설정된 간격 이전에는 실행되지 않음을 보장할 뿐이에요(즉 이 예시에서 백업은 9:14에 처음 실행될 수 있지만 9:12에는 확실히 실행되지 않아요).
EXPIRE_AFTER_DAYS = days_integer — 스냅샷이 만료될 때까지의 일수를 지정해요. Snowflake는 만료된 스냅샷을 자동으로 삭제해요. 이 매개변수를 지정하지 않으면 스냅샷은 세트에서 수동으로 삭제할 때까지 스냅샷 세트에 남아 있어요.
- 최소값:
1 SCHEDULE절을 지정하지 않으면 최대값:3653(약 10년)
참고: 정책에 보존 잠금이 있으면 EXPIRE_AFTER_DAYS 값을 늘릴 수 있지만 줄일 수는 없어요. 모든 정책은 SCHEDULE 절, EXPIRE_AFTER_DAYS 절 또는 둘 다를 포함해야 해요.
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] — 태그 이름과 태그 문자열 값을 지정해요. 태그 값은 항상 문자열이며, 최대 문자 수는 256이에요. 문에서 태그를 지정하는 방법은 태그 할당량을 참고하세요.
UNSET ... — 스냅샷 정책의 다음 속성 중 하나를 해제해요. 속성은 기본값으로 되돌아가요.
- COMMENT
TAG tag_name [ , tag_name ... ]- SCHEDULE
- EXPIRE_AFTER_DAYS
참고: SCHEDULE 속성 또는 EXPIRE_AFTER_DAYS 속성 중 하나는 해제할 수 있지만 둘 다는 해제할 수 없어요. 예를 들어 새 스냅샷을 만들 의도가 없지만 기존 스냅샷이 일정 시간 후에 만료되길 원한다면 EXPIRE_AFTER_DAYS 속성을 유지할 수 있어요.
접근 제어 요구사항 (Access control requirements)
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요:
| 권한 | 설명 |
|---|---|
| OWNERSHIP | 스냅샷 정책을 수정하는 역할은 스냅샷 정책에 OWNERSHIP 권한이 있어야 해요. |
| APPLY SNAPSHOT RETENTION LOCK | 보존 잠금이 있는 스냅샷 정책을 수정하는 역할은 계정에 이 권한이 있어야 해요. |
지정한 권한 집합을 가진 사용자 정의 역할을 만드는 방법은 사용자 정의 역할 만들기를 참고하세요.
보호 객체에서 SQL 작업을 수행할 때 역할과 권한 부여에 대한 일반 정보는 접근 제어 개요를 참고하세요.
사용 메모 (Usage notes)
메타데이터 관련: Snowflake 서비스를 사용할 때 메타데이터로 개인 데이터(User 객체 외), 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터를 입력하지 않도록 주의해야 해요. 자세한 내용은 Snowflake의 메타데이터 필드를 참고하세요.
예시 (Examples)
스냅샷 정책 hourly_snapshot_policy에 주석을 추가해요.
ALTER SNAPSHOT POLICY hourly_snapshot_policy
SET COMMENT = 'hourly snapshot expires in 90 days';
스냅샷 정책 every_two_hours의 스케줄을 변경해요.
ALTER SNAPSHOT POLICY every_two_hours SET SCHEDULE = '120 MINUTE';
EXPIRE_AFTER_DAYS 속성을 기본값으로 되돌려요.
ALTER SNAPSHOT POLICY sample_snapshot_policy UNSET EXPIRE_AFTER_DAYS;
더 알아보기 (Learn more)
- ALTER BACKUP POLICY — 교체 기능
- CREATE SNAPSHOT POLICY — 만들기
- DROP SNAPSHOT POLICY — 삭제