일반적인 동적 테이블 새로 고침 문제 진단하기

이 항목에서는 예상대로 새로 고쳐지지 않는 동적 테이블의 문제 해결 방법에 대해 설명합니다.

동적 테이블 사용에 대한 제한이나 필요한 권한이 없는 경우 일부 작업이 제한될 수 있습니다. 자세한 내용은 동적 테이블 제한 사항동적 테이블 액세스 제어 섹션을 참조하십시오.

여기에 나열되지 않은 문제가 발생하면 Snowflake 지원 에 문의하십시오.

문제

해결책

내 동적 테이블은 증분 새로 고침이 아닌 전체 새로 고침을 사용하고 있습니다.

동적 테이블의 실제 새로 고침 모드 는 생성 시점에 결정되며 이후에는 변경할 수 없습니다. 명시적으로 지정하지 않으면 새로 고침 모드는 쿼리 복잡성, 지원되지 않는 구조체, 연산자 또는 함수 등 다양한 요소에 따라 새로 고침 모드를 선택하는 AUTO 가 기본값으로 설정됩니다.

Snowflake 릴리스 전반에서 일관적인 동작을 위해 모든 동적 테이블에서 새로 고침 모드를 명시적으로 설정하십시오. 예를 들어, 동적 테이블을 증분 방식으로만 새로 고치려면 증분 새로 고침을 사용하는 데 제한 이 있을 수 있다는 점을 염두에 두고 테이블을 만들 때 새로 고침 모드를 명시적으로 INCREMENTAL 로 설정해야 합니다. 자세한 내용은 동적 테이블 새로 고침 모드 선택 모범 사례 섹션을 참조하십시오.

필요한 권한 이 있는 역할을 사용하여 다음 방법 중 하나를 사용하여 새로 고침 모드를 확인할 수 있습니다.

  • SQL 사용: SHOW DYNAMIC TABLES 문을 실행합니다. 출력에서 text 열에는 사용자가 지정한 새로 고침 모드가 표시되고, refresh_mode 열에는 실제 새로 고침 모드가 표시되며, refresh_mode_reason 에는 실제 새로 고침 모드가 선택된 이유가 표시됩니다.

  • Snowsight 사용: 탐색 메뉴에서 Monitoring » Dynamic Tables 를 선택한 다음 동적 테이블을 선택합니다. Table Details 탭에서 동적 테이블의 새로 고침 모드를 볼 수 있습니다.

동적 테이블의 증분 새로 고침이 느립니다.

동적 테이블의 새로 고침 성능은 처리하는 워크로드 또는 데이터에 대한 특정 가정에 따라 달라집니다.

Refresh History 를 사용하여 분산 또는 이상값을 확인합니다.

  1. Snowsight 에 로그인합니다.

  2. 탐색에서 Monitoring » Dynamic Tables 로 이동합니다.

  3. 동적 테이블을 선택하고 Refresh History 탭으로 이동합니다.

  4. 지난 24시간 동안 동적 테이블의 새로 고침 기간을 활용하여 문제를 해결합니다.

동적 테이블에서 비어 있는 새로 고침이 실행 중이지만 비용이 발생합니다.

순 새 행이 0개(즉, 추가, 업데이트 또는 삭제된 행이 0개)인 새로 고침은 동적 테이블에서 참조하는 업스트림 오브젝트의 변경 사항과 관련이 있을 때 웨어하우스 리소스를 소모합니다.

예를 들어, 연결된 가상 웨어하우스가 일시 중단되고 기본 오브젝트에 대한 변경 사항이 식별되지 않으면 일시 중단된 가상 웨어하우스는 재개되지 않고 크레딧이 소모되지 않습니다. 이를 NO_DATA 새로 고침이라고 합니다. 반대로, 변경 사항이 식별되면 가상 웨어하우스가 자동으로 재개되어 업데이트를 처리하므로 동적 테이블에 적용된 행이 0개일지라도 웨어하우스 리소스가 소모됩니다.

비용이 표시되어 있지만 동적 테이블을 변경하지 않은 경우 원본 테이블이 변경되었기 때문일 수 있습니다. Snowsight 의 Refresh History 탭을 사용하여 가상 웨어하우스 크레딧이 소비되었는지 확인할 수 있습니다.

  1. Snowsight 에 로그인합니다.

  2. 탐색 메뉴에서 Monitoring » Dynamic Tables 를 선택합니다.

  3. 동적 테이블을 선택하고 Refresh History 탭으로 이동합니다.

  4. 웨어하우스를 사용하여 업데이트한 새로 고침을 보려면 Warehouse used only 확인란을 선택합니다.

자세한 내용은 동적 테이블의 비용 이해하기 섹션을 참조하십시오.

동적 테이블이 다시 초기화되고 있습니다.

다음 중 하나의 이유로 인해 동적 테이블이 다시 초기화될 수 있습니다.

  • 동적 테이블의 입력 중 하나 이상이 바뀝니다. 예를 들어, 동적 테이블이 뷰에 정의되어 있고 뷰를 바꾸는 경우 동적 테이블을 다시 초기화해야 합니다.

  • 입력 스키마가 변경되어 동적 테이블이 변경된 열을 활용하는 경우.

  • 데이터 액세스 정책 이 동적 테이블의 입력에 추가, 제거 또는 변경됩니다.

  • 복제된 증분 동적 테이블 은 생성된 후 처음 새로 고침이 이루어질 때 다시 초기화해야 할 수도 있습니다.

  • 증분 새로 고침을 사용하는 복제된 동적 테이블 은 장애 조치 후 테이블의 증분 새로 고침을 재개하기 전에 다시 초기화됩니다.

초기화에 대한 일반적인 내용은 동적 테이블 초기화 이해하기 섹션을 참조하십시오.