CREATE STORAGE LIFECYCLE POLICY
CREATE STORAGE LIFECYCLE POLICY
CREATE STORAGE LIFECYCLE POLICY 명령은 현재 또는 지정된 스키마에 새 스토리지 수명 주기 정책(storage lifecycle policy)을 만들거나 기존 정책을 교체하는 명령이에요. 정책은 정책이 연결된 테이블에서 어떤 행을 만료할지 결정하기 위해 지정한 인자로 표현식을 실행합니다.
본문
현재 또는 지정된 스키마에 새 스토리지 수명 주기 정책을 만들거나 기존 정책을 교체하는 명령입니다. 정책은 지정한 인자에 대해 표현식을 실행해 정책이 연결된 테이블에서 어떤 행을 만료할지 결정해요. 정책의 인자는 테이블의 컬럼을 참조합니다. 정책을 만든 후 ALTER TABLE 명령으로 정책을 테이블에 추가해요.
관련 명령: ALTER STORAGE LIFECYCLE POLICY, DESCRIBE STORAGE LIFECYCLE POLICY, DROP STORAGE LIFECYCLE POLICY, SHOW STORAGE LIFECYCLE POLICIES
Syntax
CREATE [ OR REPLACE ] STORAGE LIFECYCLE POLICY [ IF NOT EXISTS ] <name>
AS ( <arg_name> <arg_type> [ , ... ] )
RETURNS BOOLEAN -> <body>
[ ARCHIVE_TIER = { COOL | COLD } ]
[ ARCHIVE_FOR_DAYS = <number_of_days> ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
Required parameters (필수 파라미터)
name— 스토리지 수명 주기 정책의 식별자를 지정하는 문자열이에요. 스키마에 고유해야 합니다. 또한 식별자는 알파벳 문자로 시작해야 하고, 전체 식별자 문자열을 큰따옴표로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없어요 (예:"My object"). 큰따옴표로 감싼 식별자는 대소문자를 구분합니다. 자세한 내용은 Identifier requirements 문서를 참고하세요.- 시그니처 — 정책의 시그니처예요. 시그니처에 인자를 최소 하나 이상 포함해야 합니다. 시그니처는 행이 만료 준비가 되었는지 결정하기 위해 고려해야 하는 속성 집합을 지정해요. 속성 값은 데이터베이스 객체(테이블)에서 옵니다. 스토리지 수명 주기 정책은
true또는false로 평가되어야 해요. 스토리지 수명 주기 정책으로 보호되는 테이블을 쿼리하는 사용자는 본문 작성 방식에 따라 출력에서 행을 봅니다. <body>— Snowflake가 만료할 행을 결정하는 데 사용하는 SQL 표현식이에요. 데이터를 변환하려면 조건부 표현식 함수 같은 내장 함수나 사용자 정의 함수(UDF)를 사용할 수 있어요.참고 현재 스토리지 수명 주기 정책의 본문에서는 SQL과 JavaScript UDF만 지원됩니다.
Optional parameters (선택 파라미터)
ARCHIVE_TIER = { COOL | COLD }— 행을 보관(archive)하는 데 사용할 스토리지 티어 유형을 지정해요. 정책에 대해ARCHIVE_TIER를 설정한 후에는 수정할 수 없어요. 자세한 내용은 Archive storage tiers 문서를 참고하세요. 지원되는 클라우드 공급자는 Storage lifecycle policies 문서를 참고. 이 파라미터를 지정하지 않으면 정책은 행을 보관하지 않고 삭제하는 만료 정책이에요. 기본값: 값 없음ARCHIVE_FOR_DAYS = <number_of_days>— 정책 표현식과 일치하는 행을 아카이브 스토리지에 보관할 일 수를 지정해요. 설정하면ARCHIVE_TIER로 선택한 값에 따라 Snowflake가 데이터를 아카이브 스토리지로 옮깁니다. 설정하지 않으면 Snowflake가 데이터를 보관하지 않고 테이블에서 만료시켜요. 값: 문서를 참고. 기본값: 설정되지 않음COMMENT = '<string_literal>'— 스토리지 수명 주기 정책에 대한 주석을 지정해요. 기본값: 값 없음TAG ( ... )— 태그 이름과 태그 문자열 값을 지정해요. 태그 값은 항상 문자열이며 최대 문자 수는 256이에요. 태그 지정 방법은 Tag quotas 문서를 참고하세요.
Access control requirements (접근 제어 요구 사항)
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요.
스키마의 객체를 조작하려면 상위 데이터베이스에 대한 권한과 상위 스키마에 대한 권한이 각각 최소 하나씩 필요합니다. 지정된 권한 집합으로 사용자 정의 역할을 만드는 방법은 Creating custom roles 문서를, 보안 객체에 대한 SQL 작업의 역할·권한 부여에 대한 일반적인 정보는 Overview of Access Control 문서를 참고하세요.
Usage notes (사용 참고 사항)
스토리지 수명 주기 정책은 테이블의 데이터 수명을 관리해 만료되거나 보관될 행을 결정해요.
Examples (예제)
다음 수명 주기 정책은 폐쇄된 계정에 해당하고 60일보다 오래된 행의 데이터를 아카이브 스토리지(COOL 티어)로 옮겨요.
CREATE STORAGE LIFECYCLE POLICY example_policy
AS (event_ts TIMESTAMP, account_id NUMBER)
RETURNS BOOLEAN ->
event_ts < DATEADD(DAY, -60, CURRENT_TIMESTAMP())
AND EXISTS (
SELECT 1 FROM closed_accounts
WHERE id = account_id
)
ARCHIVE_TIER = COOL
ARCHIVE_FOR_DAYS = 180;