Amazon Redshift의 구체화된 뷰 - Amazon Redshift

Amazon Redshift의 구체화된 뷰

이 섹션에서는 Amazon Redshift에서 구체화된 뷰를 생성하고 사용하는 방법을 설명합니다. 구체화된 뷰는 쿼리 결과를 저장하는 데이터베이스 객체로, 성능과 효율성을 개선하는 데 사용할 수 있습니다.

데이터 웨어하우스 환경에서 애플리케이션은 대형 테이블에 대해 복잡한 쿼리를 수행해야 하는 경우가 많습니다. 수십억 개의 행이 포함된 테이블에서 다중 테이블 조인 및 집계를 수행하는 SELECT 문을 예로 들 수 있습니다. 이러한 쿼리를 처리하면 결과를 컴퓨팅하는 데 시스템 리소스 및 시간이 많이 필요할 수 있습니다.

Amazon Redshift의 구체화된 뷰를 통해 이러한 문제를 해결할 수 있습니다. 구체화된 보기에는 하나 이상의 기본 테이블에 대한 SQL 쿼리를 기반으로 사전 계산된 결과 집합이 포함됩니다. 데이터베이스의 다른 테이블이나 뷰를 쿼리할 때와 같은 방식으로 SELECT 문을 실행하여 구체화된 뷰를 쿼리할 수 있습니다. Amazon Redshift는 기본 테이블에 전혀 액세스할 필요 없이 구체화된 뷰에서 미리 계산된 결과를 반환합니다. 사용자 입장에서는 기본 테이블에서 동일한 데이터를 검색할 때보다 쿼리 결과가 훨씬 빠르게 반환됩니다.

구체화된 보기는 예측 가능하고 반복되는 쿼리 속도를 높이는 데 특히 유용합니다. 애플리케이션은 대용량 테이블에 대해 리소스 집약적인 쿼리(예: 집계 또는 다중 조인)를 수행하는 대신 구체화된 뷰를 쿼리하여 사전 계산된 결과 집합을 검색할 수 있습니다. 예를 들어 쿼리 집합이 Amazon QuickSight와 같은 대시시보드를 채우는 데 사용되는 시나리오를 생각해 봅니다. 이 사용 사례는 쿼리를 예측하고 반복할 수 있기 때문에 구체화된 보기에 이상적입니다.

다른 구체화된 뷰와 관련하여 구체화된 뷰를 정의할 수 있습니다. 구체화된 뷰에 구체화된 뷰를 사용하여 구체화된 뷰의 기능을 확장합니다. 이 접근 방식에서 기존의 구체화된 뷰는 쿼리가 데이터를 검색하기 위한 기본 테이블과 동일한 역할을 합니다.

이 접근 방식은 다른 집계 또는 GROUP BY 옵션에 대해 미리 계산된 조인을 재사용하는 데 특히 유용합니다. 예를 들어 고객 정보(수백만 개의 행 포함)를 항목 주문 세부 정보(수십억 개의 행 포함)와 조인하는 구체화된 뷰를 사용합니다. 이는 요청 시 반복적으로 계산하는 데 비용이 많이 드는 쿼리입니다. 이 구체화된 뷰 위에 생성된 구체화된 뷰에 대해 다른 GROUP BY 옵션을 사용하고 다른 테이블과 조인할 수 있습니다. 이렇게 하면 매번 값비싼 기본 조인을 실행하는 데 사용되는 계산 시간이 절약됩니다. STV_MV_DEPS 테이블은 다른 구체화된 뷰에 대한 구체화된 뷰의 종속성을 보여줍니다.

구체화된 뷰를 생성할 때 Amazon Redshift는 사용자 지정 SQL 문을 실행하여 기본 테이블에서 데이터를 수집하고 결과 집합을 저장합니다. 다음 그림에서는 SQL 쿼리가 2개의 기본 테이블 eventssales를 사용하여 정의하는 구체화된 뷰 tickets_mv에 대한 개요를 제공합니다.

두 기본 테이블의 데이터를 사용하여 정의된 구체화된 뷰입니다.

그런 다음 쿼리에 이러한 구체화된 뷰를 사용하여 속도를 높일 수 있습니다. 또한 Amazon Redshift는 쿼리가 구체화된 뷰를 명시적으로 참조하지 않는 경우에도 구체화된 뷰를 사용하도록 이러한 쿼리를 자동으로 다시 작성할 수 있습니다. 쿼리의 자동 재작성은 구체화된 뷰를 사용하도록 쿼리를 변경할 수 없을 때 성능을 향상시키는 데 특히 유용합니다.

구체화된 뷰에서 데이터를 업데이트하기 위해 언제든지 REFRESH MATERIALIZED VIEW 문을 사용하여 구체화된 뷰를 수동으로 새로 고칠 수 있습니다. Amazon Redshift가 기본 테이블에서 발생한 변경 사항을 식별한 다음 해당 변경 사항을 구체화된 뷰에 적용합니다. 쿼리를 자동으로 재작성하려면 구체화된 보기가 최신 상태여야 하므로 구체화된 보기 소유자는 기본 테이블이 변경될 때마다 구체화된 보기를 새로 고쳐야 합니다.

Amazon Redshift는 자동 재작성을 위해 구체화된 보기를 최신 상태로 유지하는 몇 가지 방법을 제공합니다. 구체화된 뷰의 기본 테이블이 업데이트될 때 구체화된 뷰를 새로 고치도록 자동 새로 고침 옵션으로 구체화된 뷰를 구성할 수 있습니다. 이 자동 새로 고침 작업은 다른 워크로드에 대한 중단을 최소화하기 위해 클러스터 리소스를 사용할 수 있을 때 실행됩니다. 자동 새로 고침 예약은 워크로드에 따라 달라지므로 Amazon Redshift가 구체화된 뷰를 새로 고치는 시기를 더 잘 제어할 수 있습니다. Amazon Redshift 스케줄러 API 및 콘솔 통합을 사용하여 구체화된 뷰 새로 고침 작업을 예약할 수 있습니다. 쿼리 예약에 대한 자세한 내용은 Amazon Redshift 콘솔에서 쿼리 예약 섹션을 참조하세요.

이렇게 하면 구체화된 뷰의 최신 데이터에 대한 서비스 수준 계약(SLA) 요구 사항이 있는 경우에 특히 유용합니다. 자동으로 새로 고칠 수 있는 구체화된 뷰를 수동으로 새로 고칠 수도 있습니다. 구체화된 뷰를 생성하는 방법에 대한 자세한 내용은 CREATE MATERIALIZED VIEW 섹션을 참조하세요.

SELECT 문을 실행하여 구체화된 보기를 쿼리할 수 있습니다. 구체화된 뷰를 쿼리하는 방법에 대한 자세한 내용은 구체화된 뷰 쿼리 섹션을 참조하세요. 기본 테이블에서 데이터를 삽입, 업데이트 및 삭제하면 결과 집합은 결국 효력을 상실합니다. 구체화된 보기를 언제든지 새로 고쳐 기본 테이블의 최신 변경 사항으로 업데이트할 수 있습니다. 구체화된 뷰를 새로 고치는 방법에 대한 자세한 내용은 REFRESH MATERIALIZED VIEW 섹션을 참조하세요.

구체화된 보기를 생성 및 관리할 때 사용되는 SQL 명령에 대한 자세한 내용은 다음 명령 주제를 참조하십시오.

구체화된 보기를 모니터링하기 위한 시스템 테이블 및 보기에 대한 자세한 내용은 다음 주제를 참조하십시오.