REFRESH MATERIALIZED VIEW - Amazon Redshift

REFRESH MATERIALIZED VIEW

구체화된 보기를 새로 고칩니다.

구체화된 보기를 생성할 때 그 콘텐츠는 해당 시점에서 기본 데이터베이스 테이블의 상태를 반영합니다. 애플리케이션이 기본 테이블의 데이터를 변경하더라도 구체화된 보기의 데이터는 변경되지 않습니다. 구체화된 뷰에서 데이터를 업데이트하기 위해 언제든지 REFRESH MATERIALIZED VIEW 문을 사용할 수 있습니다. 이 문을 사용하면 Amazon Redshift가 기본 테이블 또는 테이블에서 발생한 변경 사항을 식별한 다음 해당 변경 사항을 구체화된 뷰에 적용합니다.

구체화된 뷰에 대한 자세한 내용은 Amazon Redshift의 구체화된 뷰 섹션을 참조하세요.

구문

REFRESH MATERIALIZED VIEW mv_name

파라미터

mv_name

새로 고칠 구체화된 보기의 이름입니다.

사용 노트

구체화된 보기의 소유자만 해당 구체화된 보기에 대한 REFRESH MATERIALIZED VIEW 작업을 수행할 수 있습니다. 또한 REFRESH MATERIALIZED VIEW를 성공적으로 실행하려면 소유자에게 기준 기본 테이블에 대한 SELECT 권한이 있어야 합니다.

REFRESH MATERIALIZED VIEW 명령은 자체 트랜잭션으로 실행됩니다. Amazon Redshift 트랜잭션 의미 체계에 따라 REFRESH 명령에 표시되는 기본 테이블의 데이터 또는 REFRESH 명령에 의한 변경 사항이 Amazon Redshift에서 실행 중인 다른 트랜잭션에 표시되는 시기를 결정합니다.

  • 증분 구체화된 보기의 경우 REFRESH MATERIALIZED VIEW는 이미 커밋된 기본 테이블 행만 사용합니다. 따라서 동일한 트랜잭션에서 데이터 조작 언어(DML) 문 이후에 새로 고침 작업이 실행되면 해당 DML 문의 변경 내용이 새로 고침되지 않습니다.

  • 전체 새로 고침한 구체화된 뷰의 경우 REFRESH MATERIALIZED VIEW를 실행하면 일반적인 Amazon Redshift 트랜잭션 의미 체계에 따라 새로 고침 트랜잭션에 모든 기본 테이블 행이 표시됩니다.

  • 입력 인수 유형에 따라 Amazon Redshift는 DATE(타임스탬프), DATE_PART(날짜, 시간, 간격, 시간-tz), DATE_TRUNC(타임스탬프, 간격) 등 특정 입력 인수 유형을 사용하는 함수에 대한 구체화된 보기에 대한 증분 새로 고침을 계속 지원합니다.

  • 증분 새로 고침은 기본 테이블이 데이터 공유에 있는 구체화된 뷰에서 지원됩니다.

Amazon Redshift의 일부 작업은 구체화된 뷰와 상호 작용합니다. 구체화된 보기를 정의하는 쿼리가 증분 새로 고침에 적합한 SQL 기능만 사용하더라도 이러한 작업 중 일부는 REFRESH MATERIALIZED VIEW 작업이 구체화된 보기를 완전히 다시 계산하도록 강제할 수 있습니다. 예:

  • 구체화된 보기를 새로 고치지 않으면 백그라운드 vacuum 작업이 차단될 수 있습니다. 내부적으로 정의된 임계값 기간이 지나면 vacuum 작업을 실행할 수 있습니다. 이러한 vacuum 작업이 발생하면 다음에 새로 고칠 때 종속 구체화된 보기가 다시 계산되도록 표시됩니다(증분인 경우에도 해당). VACUUM에 대한 자세한 내용은 VACUUM 섹션을 참조하세요. 이벤트 및 상태 변경에 대한 자세한 내용은 STL_MV_STATE 섹션을 참조하세요.

  • 일부 작업은 기본 테이블에서 사용자가 시작한 경우 다음에 REFRESH 작업이 실행될 때 구체화된 보기가 완전히 다시 계산됩니다. 이러한 작업의 예로는 수동으로 호출되는 VACUUM, 클래식 크기 조정, ALTER DISTKEY 작업, ALTER SORTKEY 작업 및 자르기 작업이 있습니다. 경우에 따라 자동 작업으로 인해 다음에 REFRESH 작업을 실행할 때 구체화된 뷰가 완전히 다시 계산될 수도 있습니다. 예를 들어 자동 진공 삭제 작업으로 인해 전체 재계산이 발생할 수 있습니다. 이벤트 및 상태 변경에 대한 자세한 내용은 STL_MV_STATE 섹션을 참조하세요.

데이터 공유의 구체화된 뷰에 대한 증분 새로 고침

Amazon Redshift는 기본 테이블이 공유될 때 소비자 데이터 공유의 구체화된 뷰에 대한 자동 및 증분 새로 고침을 지원합니다. 증분 새로 고침은 Amazon Redshift가 이전 새로 고침 이후에 발생한 기본 테이블의 변경 사항을 식별하고 구체화된 뷰의 해당 레코드만 업데이트하는 작업입니다. 이 동작에 대한 자세한 내용은 구체화된 뷰 생성을 참조하세요.

증분 새로 고침에 대한 제한 사항

Amazon Redshift는 다음 SQL 요소 중 하나를 사용하는 쿼리로 정의된 구체화된 뷰에 대해 증분 새로 고침을 지원하지 않습니다.

  • OUTER JOIN(RIGHT, LEFT 또는 FULL).

  • 세트 작업: UNION, INTERSECT, EXCEPT, MINUS.

  • UNION ALL - 하위 쿼리에서 발생하고 집계 함수 또는 GROUP BY 절이 쿼리에 있는 경우.

  • 집계 함수: MEDIAN, PERCENTILE_CONT, LISTAGG, STDDEV_SAMP, STDDEV_POP, APPROXIMATE COUNT, APPROXIMATE PERCENTILE 및 비트 단위 집계 함수.

    참고

    COUNT, SUM, MIN, MAX 및 AVG 집계 함수가 지원됩니다.

  • DISTINCT COUNT, DISTINCT SUM 등과 같은 DISTINCT 집계 함수.

  • 창 함수.

  • 일반 하위 표현식 최적화와 같은 쿼리 최적화를 위해 임시 테이블을 사용하는 쿼리입니다.

  • 하위 쿼리

  • 구체화된 뷰를 정의하는 쿼리에서 다음 형식을 참조하는 외부 테이블

    • Delta Lake

    • Hudi

    미리 보기 트랙의 다른 형식을 참조하는 외부 테이블을 사용하여 정의된 구체화된 뷰에는 증분 새로 고침이 지원됩니다. 미리 보기 클러스터 설정에 대한 자세한 내용은 Amazon Redshift 클러스터 관리 안내서의 미리 보기 클러스터 생성을 참조하세요. 미리 보기 작업 그룹을 설정하는 방법에 대한 내용은 Amazon Redshift 관리 안내서의 미리 보기 작업 그룹 만들기를 참조하세요.

  • 변경 가능한 함수 - 날짜-시간 함수, RANDOM 및 STABLE이 아닌 사용자 정의 함수 등.

  • 제로 ETL 통합을 위한 증분 새로 고침과 관련된 제한 사항은 Amazon Redshift와 제로 ETL 통합을 사용할 때 고려할 사항을 참조하세요.

VACUUM과 같은 백그라운드 작업이 구체화된 뷰 새로 고침 작업에 미치는 영향을 포함하여 구체화된 뷰 제한에 대한 자세한 내용은 사용 노트 섹션을 참조하세요.

예시

다음 예제는 tickets_mv 구체화된 보기를 새로 고칩니다.

REFRESH MATERIALIZED VIEW tickets_mv;