CREATE EVENT TABLE

함수와 프로시저에서 기록된 메시지를 포함하여 이벤트를 캡처하는 이벤트 테이블 을 만듭니다.

참고 항목:

ALTER TABLE(이벤트 테이블) , DESCRIBE EVENT TABLE, DROP TABLE, SHOW EVENT TABLES

구문

CREATE [ OR REPLACE ] EVENT TABLE [ IF NOT EXISTS ] <name>
  [ CLUSTER BY ( <expr> [ , <expr> , ... ] ) ]
  [ DATA_RETENTION_TIME_IN_DAYS = <integer> ]
  [ MAX_DATA_EXTENSION_TIME_IN_DAYS = <integer> ]
  [ CHANGE_TRACKING = { TRUE | FALSE } ]
  [ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
  [ COPY GRANTS ]
  [ [ WITH ] COMMENT = '<string_literal>' ]
  [ [ WITH ] ROW ACCESS POLICY <policy_name> ON ( <col_name> [ , <col_name> ... ] ) ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
Copy

필수 매개 변수

name

이벤트 테이블의 식별자(이름)를 지정하며, 이벤트 테이블이 생성되는 스키마에 대해 고유해야 합니다.

또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예: "My object")로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

선택적 매개 변수

CLUSTER BY ( expr [ , expr , ... ] )

테이블에서 하나 이상의 열 또는 열 식을 클러스터링 키로 지정합니다. 자세한 내용은 클러스터링 키 및 클러스터링된 테이블 섹션을 참조하십시오.

기본값: 값 없음(테이블에 대해 정의된 클러스터링 키가 없음)

중요

클러스터링 키는 모든 테이블에 대해 의도되거나 권장되지 않으며, 일반적으로 매우 큰(즉, 멀티 테라바이트 크기의) 테이블에 이점이 있습니다.

테이블에 대한 클러스터링 키를 지정하기 전에 Snowflake 테이블 구조 이해하기 를 읽어보십시오.

DATA_RETENTION_TIME_IN_DAYS = integer

테이블에서 레코드 데이터에 대해 Time Travel 작업(SELECT, CLONE, UNDROP)을 수행할 수 있도록 테이블의 보존 기간을 지정합니다. 자세한 내용은 Time Travel 이해 및 사용하기 섹션을 참조하십시오.

이 오브젝트 수준 매개 변수에 대한 자세한 설명과 아울러 오브젝트 매개 변수에 대한 자세한 내용은 매개 변수 를 참조하십시오.

값:

  • Standard Edition: 0 또는 1

  • Enterprise Edition:

    • 영구 테이블의 경우 0 ~ 90

기본값:

  • Standard Edition: 1

  • Enterprise Edition 또는 그 이상: 1 (스키마, 데이터베이스 또는 계정 수준에서 다른 기본값이 지정되지 않은 경우)

참고

0 의 값은 테이블의 Time Travel을 효과적으로 비활성화합니다.

MAX_DATA_EXTENSION_TIME_IN_DAYS = integer

Snowflake가 테이블의 스트림이 부실해지는 것을 방지하기 위해 테이블의 데이터 보존 기간을 연장할 수 있는 최대 일수를 지정하는 오브젝트 매개 변수입니다.

이 매개 변수에 대한 자세한 설명은 MAX_DATA_EXTENSION_TIME_IN_DAYS 섹션을 참조하십시오.

CHANGE_TRACKING = TRUE | FALSE

테이블에서 변경 내용 추적을 활성화할지 지정합니다.

  • TRUE 로 지정하면 테이블에서 변경 내용 추적이 활성화됩니다. 이 설정을 선택하면 소스 테이블에 한 쌍의 숨겨진 열이 추가되고 열에 변경 내용 추적 메타데이터가 저장되기 시작합니다. 이러한 열은 소량의 저장소를 사용합니다.

    SELECT 문에 CHANGES 절을 사용하거나 테이블에서 하나 이상의 스트림을 만들고 쿼리하여 변경 내용 추적 메타데이터를 쿼리할 수 있습니다.

  • FALSE 로 지정하면 테이블에서 변경 내용 추적이 활성화되지 않습니다.

기본값: FALSE

DEFAULT_DDL_COLLATION = 'collation_specification'

테이블의 열에 대한 기본 데이터 정렬 사양 을 지정합니다.

이 매개 변수에 대한 자세한 내용은 DEFAULT_DDL_COLLATION 을 참조하십시오.

COPY GRANTS

CREATE OR REPLACE EVENT TABLE로 새 테이블을 만들 때 원본 테이블의 액세스 권한을 유지하도록 지정합니다.

이 매개 변수는 OWNERSHIP을 제외한 모든 권한을 기존 테이블에서 새 테이블로 복사합니다. 새 테이블은 스키마의 오브젝트 유형에 대해 정의된 향후 모든 권한 부여를 상속하지는 않습니다. 기본적으로, CREATE EVENT TABLE 문을 실행하는 역할은 새 테이블을 소유합니다.

CREATE EVENT TABLE 문에 이 매개 변수가 포함되지 않은 경우에는 새 테이블이 원본 테이블에 부여된 모든 명시적인 액세스 권한을 상속하지 않지만, 스키마의 오브젝트 유형에 대해 정의된 향후 모든 권한 부여를 상속하지는 않습니다.

참고:

  • 데이터 공유 사용 시:

    • 기존 테이블을 다른 계정과 공유한 경우 대체 테이블도 공유됩니다.

    • 기존 테이블을 데이터 컨슈머로서 자신의 계정과 공유하고 (부모 데이터베이스에서 GRANT IMPORTED PRIVILEGES 를 사용하여) 계정의 다른 역할에 추가로 액세스 권한을 부여한 경우 대체 테이블에도 액세스 권한이 부여됩니다.

  • 대체 테이블에 대한 SHOW GRANTS 출력에는 CREATE EVENT TABLE 문이 실행될 때 현재 타임스탬프를 포함한 이 문을 실행한 역할로서 복사된 권한의 피부여자가 나열됩니다.

  • 권한 부여 복사 작업은 CREATE EVENT TABLE 명령에서 원자적으로(즉, 같은 트랜잭션 내에서) 발생합니다.

ROW ACCESS POLICY policy_name ON ( col_name [ , col_name ... ] )

테이블에 설정할 행 액세스 정책 을 지정합니다.

COMMENT = 'string_literal'

테이블에 대한 설명을 지정합니다.

기본값: 값 없음

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

태그 이름과 태그 문자열 값을 지정합니다.

태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.

문에서 태그를 지정하는 방법에 대한 자세한 내용은 오브젝트 및 열에 대한 태그 할당량 섹션을 참조하십시오.

사용법 노트

  • 스키마는 이름이 같은 이벤트 테이블, 테이블 및/또는 뷰를 포함할 수 없습니다. 이벤트 테이블을 만들 때 다음 사항이 적용됩니다.

    • 스키마에 같은 이름의 테이블 또는 뷰가 이미 있는 경우 오류가 반환되고 이벤트 테이블이 생성되지 않습니다.

    • 같은 이름의 이벤트 테이블이 스키마에 이미 있는 경우 명령에 선택적인 OR REPLACE 키워드를 포함하지 않는 한 오류가 반환되고 이벤트 테이블이 생성되지 않습니다.

    중요

    OR REPLACE 를 사용하는 것은 기존 이벤트 테이블에서 DROP TABLE 를 사용한 다음 같은 이름을 가진 새 이벤트 테이블을 만드는 것과 같습니다. 하지만 삭제된 테이블이 시스템에서 영구적으로 제거되는 것은 아닙니다. 대신, 삭제된 데이터베이스는 Time Travel에 보존됩니다. Time Travel에서 삭제된 테이블은 복구할 수 있지만 계정의 데이터 저장소에도 기여하므로 이 점을 유념해야 합니다. 자세한 내용은 Time Travel 및 Fail-safe 관련 저장소 요금 섹션을 참조하십시오.

    CREATE OR REPLACE <오브젝트> 문은 원자성입니다. 즉, 오브젝트가 바뀔 때 단일 트랜잭션으로 이전 오브젝트가 삭제되고 새 오브젝트가 생성됩니다.

    이는 CREATE OR REPLACE EVENT TABLE 작업과 동시에 수행되는 모든 쿼리가 이전 또는 새 테이블 버전을 사용함을 의미합니다.

  • (선택적 OR REPLACE 키워드를 사용하여) 테이블을 다시 만들면 기록이 삭제되고, 이로 인해 테이블의 스트림이 부실해집니다. 부실 스트림은 읽을 수 없습니다.

  • 메타데이터 관련:

    주의

    고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.

  • CREATE OR REPLACE <오브젝트> 문은 원자성입니다. 즉, 오브젝트가 바뀔 때 단일 트랜잭션으로 이전 오브젝트가 삭제되고 새 오브젝트가 생성됩니다.

my_events 라는 이벤트 테이블을 만듭니다.

CREATE EVENT TABLE my_events;
Copy