CREATE DYNAMIC TABLE

지정된 쿼리를 기반으로 동적 테이블 을 생성합니다.

참고 항목:

ALTER DYNAMIC TABLE, DESCRIBE DYNAMIC TABLE, DROP DYNAMIC TABLE , SHOW DYNAMIC TABLES

이 항목의 내용:

구문

CREATE [ OR REPLACE ] DYNAMIC TABLE <name>
  TARGET_LAG = { '<num> { seconds | minutes | hours | days }' | DOWNSTREAM }
  WAREHOUSE = <warehouse_name>
  AS <query>
  [ COMMENT = '<string_literal>' ]
Copy

필수 매개 변수

name

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

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

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

TARGET_LAG = { num { seconds | minutes | hours | days } | DOWNSTREAM }

동적 테이블의 지연을 지정합니다.

'num seconds | minutes | hours | days'

동적 테이블의 콘텐츠가 기본 테이블에 대한 업데이트보다 지연되어야 하는 최대 시간을 지정합니다.

예:

  • 동적 테이블의 데이터가 5분 이상 지연되면 안 될 경우 5 minutes 를 지정하십시오.

  • 동적 테이블의 데이터가 5시간 이상 지연되면 안 될 경우 5 hours 를 지정하십시오.

최소값은 1분입니다. 동적 테이블 A가 다른 동적 테이블 B에 종속된 경우 A의 최소 지연은 B의 지연보다 크거나 같아야 합니다.

DOWNSTREAM

어떤 동적 테이블에 종속된 동적 테이블을 새로 고칠 때만 해당 동적 테이블을 새로 고치도록 지정합니다.

WAREHOUSE = warehouse_name

동적 테이블을 새로 고치기 위한 컴퓨팅 리소스를 제공하는 웨어하우스의 이름을 지정합니다.

동적 테이블을 만들기 위해 이 웨어하우스에 대한 USAGE 권한이 있어야 합니다.

AS query

동적 테이블에 포함해야 하는 결과를 보여주는 쿼리를 지정합니다.

선택적 매개 변수

COMMENT = 'string_literal'

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

기본값: 값 없음.

액세스 제어 요구 사항

이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

CREATE DYNAMIC TABLE

동적 테이블을 만들려는 스키마입니다.

SELECT

새 동적 테이블에 대해 쿼리하려는 테이블, 뷰 및 동적 테이블입니다.

USAGE

테이블을 새로 고치는 데 사용하려는 웨어하우스입니다.

스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

사용법 노트

CREATE DYNAMIC TABLE 명령을 실행하면 현재 사용 중인 역할이 동적 테이블의 소유자가 됩니다. 이 역할은 백그라운드에서 동적 테이블 새로 고침을 수행하는 데 사용됩니다.

기본 데이터베이스 오브젝트가 변경되면 동적 테이블이 업데이트됩니다. 동적 테이블에서 사용하는 모든 기본 오브젝트에서 변경 내용 추적을 활성화해야 합니다. 동적 테이블 및 변경 사항 추적 섹션을 참조하십시오.

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

product 라는 동적 테이블을 만듭니다.

CREATE OR REPLACE DYNAMIC TABLE product
 TARGET_LAG = '20 minutes'
  WAREHOUSE = mywh
  AS
    SELECT product_id, product_name FROM staging_table;
Copy

이 예에서는 다음과 같습니다.

  • 동적 테이블은 staging_table 테이블의 product_idproduct_name 열의 쿼리 결과를 구체화합니다.

  • 목표 지연 시간은 20분입니다. 즉, 동적 테이블의 데이터가 staging_table 에 있는 데이터보다 20분 이상 오래되지 않은 것이어야 이상적입니다.

  • 자동화된 새로 고침 프로세스에서는 웨어하우스 mywh 의 컴퓨팅 리소스를 사용하여 동적 테이블의 데이터를 새로 고칩니다.