동적 테이블의 웨어하우스 사용량 이해하기

동적 테이블은 이중 웨어하우스를 지원하여 다양한 유형의 새로 고침 작업에 대한 성능과 비용을 최적화합니다. 일반적으로 더 많은 리소스를 사용하는 :ref:`초기화 및 다시 초기화 <label-dynamic_tables_initialization>`에 대해 전용 웨어하우스를 지정할 수 있으며, 다른 모든 새로 고침에는 다른 웨어하우스를 사용할 수 있습니다.

초기화 및 다시 초기화는 전체 데이터 스캔을 수행하며 증분 새로 고침보다 훨씬 더 오래 걸릴 수 있습니다. 이러한 작업은 새로 승격된 기본 동적 테이블이 첫 번째 새로 고침에서 전체 다시 초기화를 수행해야 하는 장애 조치와 같은 이벤트 중에 발생하는 경우가 많습니다. 이러한 작업에 더 크거나 더 성능이 우수한 웨어하우스를 할당하면 복구 시간을 단축하며 정기적인 증분 새로 고침에 사용되는 웨어하우스의 크기를 초과하지 않고 엄격한 RTO/RPO를 충족할 수 있습니다.

웨어하우스 사용 비용에 대한 자세한 내용은 Understanding costs for dynamic tables 섹션을 참조하세요.

다음 SQL 명령을 실행하여 초기화 및 다시 초기화를 전용 웨어하우스로 보내는 INITIALIZATION_WAREHOUSE 속성으로 설정합니다. 다른 모든 새로 고침은 WAREHOUSE 속성에서 지정한 웨어하우스를 사용합니다.

  • CREATE DYNAMIC TABLE: CREATE DYNAMIC TABLE 명령의 :ref:`베리언트<label-create_dt_variant_syntax>`를 사용하여 INITIALIZATION_WAREHOUSE 속성을 설정할 수 있습니다.

    CREATE DYNAMIC TABLE my_dynamic_table
      TARGET_LAG = 'DOWNSTREAM'
      WAREHOUSE = 'XS_WAREHOUSE'
      INITIALIZATION_WAREHOUSE = '4XL_WAREHOUSE'
      AS <query>
    
    Copy
  • ALTER DYNAMIC TABLE: 이 명령을 사용하여 INITIALIZATION_WAREHOUSE 속성을 설정하거나 설정 해제할 수 있습니다. INITIALIZATION_WAREHOUSE 속성이 SET인 경우, 지정된 웨어하우스는 모든 초기화 및 다시 초기화에 사용됩니다. 속성이 UNSET인 경우 동적 테이블은 모든 새로 고침에 대한 WAREHOUSE 속성에 의해 지정된 웨어하우스를 사용합니다.

    ALTER DYNAMIC TABLE my_dynamic_table SET INITIALIZATION_WAREHOUSE = '4XL_WAREHOUSE';
    
    Copy
    ALTER DYNAMIC TABLE my_dynamic_table UNSET INITIALIZATION_WAREHOUSE;
    
    Copy

INITIALIZATION_WAREHOUSE가 설정되지 않은 경우 초기화 및 다시 초기화를 포함한 모든 새로 고침은 WAREHOUSE에 의해 지정된 웨어하우스에서 실행합니다.

사용 중인 웨어하우스를 보려면 다음 인터페이스를 사용하면 됩니다.

동적 테이블에 대한 MONITOR 권한이 부여된 역할을 사용해야 합니다. 자세한 내용은 동적 테이블 목록 또는 특정 열에 대한 정보 보기SQL 테이블 함수를 사용하여 동적 테이블 모니터링하기 섹션을 참조하십시오.

웨어하우스 구성이 동적 테이블 성능에 미치는 영향

웨어하우스 크기가 항상 동적 테이블 새로 고침 비용과 직접적인 상관 관계가 있는 것은 아닙니다. 최적의 크기를 찾으려면 여러 웨어하우스 크기에서 새로 고침 쿼리를 테스트하고 성능을 비교합니다.

더 큰 웨어하우스는 다음 두 가지 주요 방법으로 성능을 개선할 수 있습니다.

  • 메모리: 쿼리가 웨어하우스의 메모리를 초과하면 로컬 저장소로 유출되어 작업이 증가하고 실행 속도가 느려집니다. 웨어하우스가 클수록 유출을 방지하고 새로 고침 속도를 크게 높일 수 있습니다.

  • 병렬 처리: 웨어하우스가 클수록 더 많은 작업을 병렬로 처리합니다. 쿼리에 병렬화 가능한 작업이 충분한 경우 웨어하우스 크기를 늘리면 보통 대략적으로 비례하는 비용으로 런타임이 감소합니다. 예를 들어, 크기를 두 배로 늘리면 런타임이 절반으로 감소하는 경우가 많습니다.

    그러나 특정 시점 이후에는 병렬 처리를 추가해도 효과가 감소합니다. 비용 최적화 크기 조정은 일반적으로 메모리 유출을 방지하기에 충분하지만, 병렬 처리가 포화될 정도로 크지는 않습니다.

증분 동적 테이블의 경우 :ref:`초기 새로 고침<label-dynamic_tables_initialization>`은 나중에 새로 고침하는 것보다 더 많은 컴퓨팅이 필요한 경우가 많습니다. 일반적인 워크플로는 INITIALIZATION_WAREHOUSE를 사용하여 더 큰 인스턴스에서 초기 새로 고침을 실행하는 것입니다.

웨어하우스 크기 및 관련 비용에 대한 자세한 내용은 가상 웨어하우스 크레딧 사용 섹션을 참조하세요.

이중 웨어하우스 사용 시 제한 사항 및 고려 사항

:doc:`동적 테이블을 수동으로 새로 고침</user-guide/dynamic-tables-manual-refresh>`하려면 :ref:`ALTER DYNAMIC TABLE … REFRESH COPY SESSION<label-alter_dynamic_table_refresh>`을 실행하면 됩니다. 이 명령은 현재 사용자와 웨어하우스를 사용하여 현재 세션의 복사본에서 새로 고침을 실행합니다. COPY SESSION이 지정되면, 초기화 및 다시 초기화의 경우에도 INITIALIZATION_WAREHOUSE가 무시됩니다. COPY SESSION의 웨어하우스는 WAREHOUSE 및 INITIALIZATION_WAREHOUSE 모두보다 우선합니다.