CREATE SNAPSHOT SET¶
테이블, 스키마 또는 데이터베이스의 스냅샷 세트를 만듭니다. 일단 스냅샷 세트가 있으면 언제든지 ALTER SNAPSHOT SET 명령을 실행하여 새 백업(스냅샷)을 스냅샷 세트에 추가할 수 있습니다. 스냅샷 정책 에서 스케줄을 정의하고 해당 스냅샷 정책을 스냅샷 세트에 연결한 경우, Snowflake는 스냅샷을 스냅샷 세트에 자동으로 추가합니다.
각 스냅샷 세트는 특정 테이블, 특정 스키마의 오브젝트 또는 특정 데이터베이스의 오브젝트에 대한 백업 세트를 나타냅니다. 이러한 방식으로 백업을 아주 세분화하거나 아주 포괄적으로 구성할 수 있습니다. 또한 각 테이블, 스키마 또는 데이터베이스에 대한 백업은 각각 독립적인 일정을 가질 수 있습니다.
스키마 스냅샷 및 데이터베이스 스냅샷에 포함되는 오브젝트 종류에 대해서는 스냅샷 오브젝트 섹션을 참조하세요.
구문¶
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
FOR [DYNAMIC] TABLE <table_name>
[ WITH SNAPSHOT POLICY <policy_name> ]
[ COMMENT = <string> ]
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
FOR SCHEMA <schema_name>
[ WITH SNAPSHOT POLICY <policy_name> ]
[ COMMENT = <string> ]
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
FOR DATABASE <database_name>
[ WITH SNAPSHOT POLICY <policy_name> ]
[ COMMENT = <string> ]
필수 매개 변수¶
name
스냅샷 세트의 식별자입니다. 계정에 대해 고유해야 합니다.
또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예:
"My object"
)로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
FOR [DYNAMIC] TABLE table_name
테이블 또는 동적 테이블의 이름을 지정합니다. 그 경우 스냅샷 세트는 단일 테이블의 백업을 나타냅니다.
FOR SCHEMA schema_name
스키마의 이름을 지정합니다. 이 경우 스냅샷 세트는 특정 스키마 내의 모든 테이블 및 기타 오브젝트에 대한 백업을 나타냅니다.
FOR DATABASE database_name
데이터베이스의 이름을 지정합니다. 이 경우 스냅샷 세트는 특정 데이터베이스 내의 모든 테이블, 스키마 및 기타 오브젝트에 대한 백업을 나타냅니다.
선택적 매개 변수¶
OR REPLACE
이 이름의 스냅샷 세트가 이미 존재하는 경우, 삭제한 후 새로 만듭니다. 스냅샷 세트가 보존 잠금, 법적 보존 및 만료 시간에 대한 스냅샷 정책 규칙으로 인해 삭제될 수 없는 경우 이 명령은 실패합니다. 이 절은
IF NOT EXISTS
와 상호 배타적입니다.IF NOT EXISTS
이름이 같은 스냅샷 세트가 없는 경우에만 스냅샷 세트를 생성합니다. 스냅샷 세트가 이미 있는 경우 이 명령은 효과가 없더라도 성공 메시지를 반환합니다. 이 절은
OR REPLACE
와 상호 배타적입니다.WITH SNAPSHOT POLICY policy_name
세트에 대한 스냅샷 정책의 이름을 지정합니다. 스냅샷 정책은 백업 일정, 각 스냅샷의 보존 기간, 보존 기간 종료 전 스냅샷 제거 방지 여부 등과 같은 스냅샷 세트의 속성을 정의합니다.
CREATE SNAPSHOT SET 명령에서 이 매개 변수를 생략하면, 나중에 ALTER SNAPSHOT SET 명령을 사용하여 정책을 적용할 수 있습니다.
중요
스냅샷 세트에 보존 잠금이 설정된 스냅샷 정책을 적용하면 되돌릴 수 없습니다. 규정 준수에 필요한 강력한 보장으로 인해 스냅샷 세트에 보존 잠금을 적용한 후에는 잠금을 취소할 수 없습니다. Snowflake 지원도 이러한 보존 잠금을 취소할 수 없습니다. 만료 기간이 긴 스냅샷 세트에 보존 잠금을 설정하기 전에 신중하게 계획하여 삭제할 수 없는 스냅샷 세트 및 이를 포함하는 스키마와 데이터베이스에 예기치 않은 저장소 요금이 부과되지 않도록 하세요.
Snowflake 조직이 삭제되면 해당 조직은 더 이상 Snowflake 고객이 아닙니다. 이 경우 Snowflake는 보존 잠금이 설정된 스냅샷을 포함하여 모든 스냅샷을 삭제합니다. Snowflake 조직을 삭제하려면 Snowflake 지원의 참여가 필요합니다. 관리자가 실수로 삭제할 수 없습니다.
COMMENT = 'string_literal'
스냅샷 세트에 대한 설명을 지정합니다.
기본값: 값 없음
액세스 제어 요구 사항¶
이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
참고 |
---|---|
CREATE SNAPSHOT SET |
스냅샷 세트를 생성하는 데 사용되는 역할은 스냅샷 세트가 생성되는 스키마에 대해 이 권한을 부여 받아야 합니다. 스냅샷 세트를 실제로 생성하려면 스냅샷 세트의 주체인 오브젝트에 대한 적절한 권한도 필요합니다. 테이블 스냅샷의 경우 SELECT, 스키마 스냅샷 또는 데이터베이스 스냅샷의 경우 USAGE입니다. |
SELECT |
테이블에 대한 스냅샷 세트를 생성하는 데 사용되는 역할은 해당 테이블에 대해 SELECT 권한이 있어야 합니다. |
USAGE |
스키마 또는 데이터베이스에 대한 스냅샷 세트를 생성하는 데 사용되는 역할은 해당 스키마 또는 데이터베이스에 대해 USAGE 권한이 있어야 합니다. |
APPLY SNAPSHOT RETENTION LOCK |
스냅샷 세트에 보존 잠금이 적용된 스냅샷 정책을 적용하는 데 사용되는 역할은 해당 계정에 대해 이 권한이 있어야 합니다. |
이러한 권한은 보조 역할이 아닌 현재 활성 상태인 기본 역할에 필요합니다.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
중요
스냅샷 정책에 보존 잠금이 적용되어 있고 스냅샷 세트에 만료되지 않은 스냅샷이 있는 경우 스냅샷 세트를 삭제할 수 없습니다. 이 경우 세트의 모든 스냅샷이 만료될 때까지 기다려야 합니다. 이 제한은 ACCOUNTADMIN과 같은 권한이 있는 역할과 Snowflake 지원에도 적용됩니다. 따라서 스냅샷 정책에서 보존 잠금과 긴 만료 기간을 지정할 때는 주의해야 합니다.
예¶
테이블 t1
에 대해 t1_snapshots
라는 스냅샷 세트를 만듭니다.
CREATE SNAPSHOT SET t1_snapshots
FOR TABLE t1;
스냅샷 정책을 사용하여 테이블 t1
에 대한 스냅샷 세트 t1_snapshots
를 만듭니다.
CREATE SNAPSHOT SET t1_snapshots
FOR TABLE t1
WITH SNAPSHOT POLICY hour_snapshot_policy;
스냅샷 정책을 사용하여 스키마 s1
에 대한 스냅샷 세트 s1_snapshots
를 만듭니다.
CREATE SNAPSHOT SET s1_snapshots
FOR SCHEMA s1
WITH SNAPSHOT POLICY hour_snapshot_policy;
스냅샷 정책을 사용하여 데이터베이스 d1
에 대한 스냅샷 세트 d1_snapshots
를 만듭니다.
CREATE SNAPSHOT SET d1_snapshots
FOR DATABASE d1
WITH SNAPSHOT POLICY hour_snapshot_policy;