동적 테이블¶
동적 테이블은 정의된 쿼리 및 대상 최신성에 따라 자동으로 새로 고쳐지는 테이블로, 수동 업데이트나 사용자 지정 예약 없이 데이터 변환 및 파이프라인 관리를 간소화합니다.
동적 테이블을 생성할 때는 기본 오브젝트에서 데이터를 변환하는 방법을 지정하는 쿼리를 정의합니다. 그런 다음 Snowflake는 동적 테이블의 새로 고침 예약을 처리하여 쿼리를 기반으로 기본 오브젝트에 대한 변경 사항을 자동으로 업데이트합니다.
동적 테이블의 작동 방식¶
동적 테이블은 정기적으로 변환 쿼리를 실행하는 자동화된 새로 고침 프로세스를 통해 업데이트됩니다. 이 프로세스는 기본 오브젝트에 대한 변경 사항을 계산하고 테이블과 연결된 컴퓨팅 리소스를 사용하여 동적 테이블에 병합합니다.

데이터의 새로 고침 빈도와 최신성은 동적 테이블을 생성할 때 지정한 목표 지연에 따라 결정되며, 이는 데이터를 얼마나 최신 상태로 유지해야 하는지를 정의합니다. 새로 고침 프로세스는 지정된 목표 지연을 사용하여 업데이트를 예약합니다. 예를 들어, 목표 지연을 5분으로 설정하면 동적 테이블의 데이터가 기본 테이블에 대한 업데이트보다 5분 이상 늦지 않게 됩니다.
실시간에 가까운 데이터 업데이트가 필요하지 않은 경우 목표 지연을 길게 설정하면 비용을 절감할 수 있습니다. 예를 들어, 동적 테이블의 데이터가 기본 테이블의 업데이트보다 최대 1시간만 늦어야 하는 경우, 5분이 아닌 1시간으로 대상 최신성을 지정하여 비용을 절감할 수 있습니다.
자세한 내용은 동적 테이블 목표 지연 이해하기 및 동적 테이블 초기화 및 새로 고침 이해 섹션을 참조하십시오.
동적 테이블을 사용하는 시점¶
동적 테이블은 다음과 같은 시나리오에 이상적입니다.
데이터 종속성을 수동으로 추적하고 새로 고침 예약을 관리하지 않으려 합니다.
사용자 정의 코드를 작성하지 않고도 여러 기본 테이블의 쿼리 결과를 구체화해야 합니다.
데이터 파이프라인에서 데이터 변환을 위해 여러 테이블을 구축해야 합니다.
새로 고침 예약을 세밀하게 제어할 필요가 없으며, 파이프라인에 대한 대상 새로 고침만 지정하면 됩니다.
동적 테이블을 스트림의 소스로 사용하려고 합니다.
예시 사용 사례¶
느린 변경 차원 (SCDs): 동적 테이블을 사용하여 변경 스트림에서 읽고 변경 타임스탬프에 따라 정렬된 레코드별 키를 통해 윈도우 함수를 사용하여 유형 1 및 유형 2 SCDs 를 구현할 수 있습니다. 이 방법은 순서에 맞지 않게 발생하는 삽입, 삭제 및 업데이트를 처리하여 SCDs 생성을 간소화합니다. 자세한 내용은 동적 테이블을 사용하여 느리게 변경되는 차원 섹션을 참조하십시오.
배치에서 스트림으로 변환: 동적 테이블은 ALTER DYNAMIC TABLE 명령 한 번으로 배치에서 스트림으로 원활하게 변환할 수 있도록 지원합니다. 데이터 파이프라인에서 새로 고침 빈도를 제어하여 비용과 데이터 최신성의 균형을 맞출 수 있습니다.
주요 고려 사항¶
선언적 SQL: 동적 테이블을 사용하면 변환 단계를 수동으로 관리하지 않고도 파이프라인 결과를 선언적으로 정의할 수 있습니다.
자동 새로 고침: Snowflake는 대상 새로 고침 요구 사항에 따라 예약 및 실행을 포함한 데이터 새로 고침의 오케스트레이션을 처리합니다.
성능 최적화: 동적 테이블은 이를 지원하는 워크로드에 대해 증분 처리를 사용하므로 전체 새로 고침을 수행하지 않고 변경된 데이터만 업데이트하여 성능을 향상시킬 수 있습니다.