동적 테이블 만들기

기존 테이블과 매우 비슷한 방식으로 동적 테이블을 생성하고 삭제할 수 있지만, 몇 가지 차이점과 제한 사항이 있습니다. 또한 동적 테이블 쿼리를 구성하는 기본 테이블, 뷰, 기타 동적 테이블을 변경하면 동작이 변경되거나 기존 동적 테이블이 작동하지 못하게 될 수 있습니다. 다음 섹션에서는 동적 테이블 생성 및 삭제와 몇 가지 제한 사항 및 문제에 대해 설명합니다.

작업

설명

동적 테이블 만들기

동적 테이블을 생성하는 데 필요한 권한 을 포함한 동적 테이블 생성.

동적 테이블 삭제하기

동적 테이블 삭제.

동적 테이블에서 현재 지원되지 않는 쿼리 구문

지원되지 않는 쿼리 구문.

동적 테이블에서 지원되는 비결정적 함수

지원되는 비결정적 함수.

동적 테이블 및 변경 사항 추적

동적 테이블 생성 및 변경 내용 추적 이해.

동적 테이블 만들기

동적 테이블을 생성하려면 CREATE DYNAMIC TABLE 명령을 사용하여 사용할 쿼리, 데이터의 목표 지연, 새로 고침 수행에 사용할 웨어하우스를 지정하십시오.

예를 들어 staging_table 이라는 테이블의 product_idproduct_name 열이 포함된 product 라는 동적 테이블을 생성하고 다음과 같이 결정한다고 가정합니다.

  • product 테이블의 데이터가 staging_table 에 있는 데이터보다 지연되는 시간을 최대 20분으로 제한하고자 합니다.

  • 새로 고침(증분 및 전체) 에 필요한 컴퓨팅 리소스에 대해 mywh 웨어하우스를 사용하려고 합니다.

이 동적 테이블을 생성하려면 다음 CREATE DYNAMIC TABLE SQL 문을 실행하십시오.

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

구체화된 뷰와 마찬가지로, 동적 테이블의 열은 동적 테이블을 만드는 데 사용되는 SELECT 문에 지정된 열에 따라 결정됩니다. 식인 열의 경우 SELECT 문의 열에 대한 별칭을 지정해야 합니다.

동적 테이블 쿼리에서 사용하는 모든 오브젝트에 변경 내용 추적이 활성화되도록 해야 합니다. 추가적인 세부 정보는 이 항목의 동적 테이블 및 변경 사항 추적 섹션을 참조하십시오.

참고

쿼리가 다른 동적 테이블에 종속되는 경우 목표 지연 시간 선택 지침은 동적 테이블이 다른 동적 테이블에 종속될 때 데이터를 새로 고치는 방법 섹션을 참조하십시오.

또한 동적 테이블의 최소 TARGET_LAG는 1분입니다.

동적 테이블 생성에 필요한 권한

동적 테이블을 생성하려면 다음 권한이 있어야 합니다.

  • 테이블을 만들려는 데이터베이스와 스키마에 대한 USAGE 권한.

  • 테이블을 만들려는 스키마에 대한 CREATE DYNAMIC TABLE 권한.

  • 동적 테이블에 대해 쿼리하려는 기존 테이블 및 뷰에 대한 SELECT 권한.

  • 테이블을 새로 고치는 데 사용하려는 웨어하우스에 대한 USAGE 권한.

동적 테이블을 쿼리하거나 다른 동적 테이블을 쿼리하는 동적 테이블을 생성하려면 다음 권한이 있어야 합니다.

  • 동적 테이블에 대한 SELECT 권한.

동적 테이블 삭제하기

동적 테이블을 삭제하려면 Snowsight 또는 SQL 명령을 사용할 수 있습니다.

Snowsight
  1. Snowsight에서 동적 테이블 세부 정보 페이지를 엽니다(지침).

  2. 페이지의 오른쪽 위 모서리에 있는 More 메뉴에서 Drop 을 선택합니다.

SQL
  • DROP DYNAMIC TABLE 명령을 사용합니다.

    예를 들어 product 라는 동적 테이블을 삭제하려면 다음을 수행하십시오.

DROP DYNAMIC TABLE product;
Copy

기본 테이블의 열 변경 사항의 영향 이해하기

기본 테이블, 뷰, 기본 동적 테이블의 열은 시간이 지남에 따라 변경될 수 있습니다. 일부 변경 사항은 동적 테이블 자체에 영향을 줄 수 있는 반면, 다른 변경 사항은 영향이 제한적이거나 전혀 없을 수 있습니다.

동적 테이블과 연결된 기본 오브젝트가 변경되면 다음 동작이 적용됩니다.

변경

영향

  • 새 열이 추가됨

  • 사용하지 않는 기존 열이 제거되었습니다.

없습니다. 기본 테이블에 새 열이 추가되거나 사용되지 않은 열이 삭제되면 아무런 작업도 이루어지지 않고 이전과 같이 새로 고침이 계속됩니다.

  • 기초가 되는 기본 테이블이 동일한 열 이름과 유형으로 다시 생성됩니다.

  • 기본 테이블 열이 동일한 이름과 유형으로 다시 생성됩니다.

전체 새로 고침/재초기화: 다음 새로 고침 주기 동안 동적 테이블에 부정확하거나 오래된 데이터가 없도록 전체 새로 고침이 수행됩니다.

  • 동적 테이블에서 사용하는 기본 열 또는 기타 요소의 이름이 변경되거나 다른 방식으로 변경됩니다.

동적 테이블의 상태는 FAILING으로 변경됩니다. 변경 사항에 대응하려면 동적 테이블을 다시 만들어야 합니다. 동적 테이블 상태에 대한 자세한 내용은 동적 테이블 상태 섹션을 참조하십시오.

동적 테이블 제한 사항과 지원되는 함수

동적 테이블은 특정 쿼리 구문에서 기존 테이블과 다르며 함수가 허용되지 않습니다. 또한 검색 최적화, 클러스터링, QAS(Query Acceleration Service)는 지원되지 않습니다. 다음 섹션에서 이러한 제한 사항을 설명합니다.

동적 테이블에서 현재 지원되지 않는 쿼리 구문

다음 구문은 동적 테이블에 대한 쿼리에서 현재 지원되지 않습니다. 동적 테이블에 대한 쿼리에서 이들을 지정하면 오류가 발생합니다.

동적 테이블에서 지원되는 비결정적 함수

다음의 비결정적 함수가 동적 테이블에서 지원됩니다. 이러한 함수은 전체 새로 고침에만 지원됩니다.

동적 테이블 및 변경 사항 추적

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

Snowflake는 동적 테이블이 생성될 때 모든 기본 오브젝트에 대한 변경 내용 추적 활성화를 시도합니다. 하지만 동적 테이블을 생성하는 사용자에게 모든 기본 오브젝트에 대한 변경 내용 추적을 활성화할 권한이 충분하지 않을 수 있습니다.

동적 테이블을 새로 고칠 때 오류를 방지하려면 SHOW VIEWS, SHOW TABLES 및 유사한 명령을 사용하고 CHANGE_TRACKING 열을 검사하여 특정 데이터베이스 오브젝트에 대해 변경 내용 추적이 활성화되어 있는지 확인합니다.

ALTER TABLE, ALTER VIEW, 관련 설명서를 사용하여 특정 데이터베이스 오브젝트에 대한 변경 내용 추적을 활성화합니다.