자동화된 구체화된 보기 - Amazon Redshift

자동화된 구체화된 보기

이 주제에서는 Amazon Redshift가 자동화된 구체화된 뷰를 사용하여 성능을 개선하는 방법을 설명합니다. Amazon Redshift는 데이터베이스 활동 및 성능을 기반으로 구체화된 뷰를 자동으로 생성합니다. Amazon Redshift는 기본적으로 자동화된 구체화된 뷰를 사용합니다.

구체화된 보기는 Amazon Redshift에서 쿼리 성능 개선을 위한 강력한 도구입니다. 미리 계산된 결과 집합을 저장하여 이를 수행합니다. 유사한 쿼리는 기존 결과 집합에서 레코드를 검색할 수 있으므로 매번 동일한 논리를 다시 실행할 필요가 없습니다. 개발자와 분석가는 워크로드를 분석한 후 구체화된 보기를 생성하여 어떤 쿼리에 도움이 될지, 각 구체화된 보기의 유지 관리 비용이 가치가 있는지 여부를 결정합니다. 워크로드가 증가하거나 변경됨에 따라 이러한 구체화된 보기를 검토하여 실질적인 성능 이점을 계속 제공하는지 확인해야 합니다.

Redshift의 Automated Materialized View(AutoMV) 기능은 워크로드 모니터링 및 기계 학습 알고리즘을 기반으로 구체화된 뷰를 자동으로 생성하고 관리하여 쿼리 성능을 향상시킵니다. AutoMV의 주요 기능은 다음과 같습니다.

  • 지속적 모니터링 - Redshift는 기계 학습 기법을 사용해 워크로드를 지속적으로 모니터링하여 구체화된 뷰 생성을 통한 성능 개선 기회를 식별합니다.

  • 자동 생성 및 삭제 - 구체화된 뷰가 유용하다는 것이 감지되면 구체화된 뷰가 자동으로 생성 및 유지 관리됩니다. 반대로 이전에 생성된 AutoMV가 더 이상 성능 이점을 제공하지 않는 경우 자동으로 해당 AutoMV가 삭제됩니다.

  • 사용자 활동 요구 사항 없음 - AutoMV 기능은 클러스터에서 실행되는 사용자 활동 또는 워크로드가 적은 기간에만 작동합니다. 이를 통해 AutoMV 작업은 고객 워크로드에 방해가 되거나 영향을 주지 않습니다.

  • CPU 사용량 급증 - 워크로드 활동이 없는 동안 AutoMV에서 구체화된 뷰를 생성하거나 새로 고치면 CPU 사용량이 급증할 수 있습니다. 시스템이 사용 가능한 리소스를 활용하여 구체화된 뷰를 생성하고 새로 고치기 때문에 이는 일반적인 동작입니다.

  • 사용자 워크로드 우선 순위 - AutoMV 작업이 진행되는 동안 워크로드를 시작하면 AutoMV 작업이 중지되어 사용자 워크로드에 사용할 수 있는 리소스가 확보됩니다. 이렇게 해서 사용자 워크로드가 AutoMV 작업보다 우선시됩니다.

AutoMV 기능은 사용자 활동이 없는 기간 동안 CPU 사용량을 급증시킬 수 있지만 워크로드에 영향을 주지 않고 투명하게 작동합니다. 시스템은 구체화된 뷰를 관리하여 쿼리 성능을 개선하는 동시에 AutoMV 작업보다 사용자 워크로드에 우선순위를 둡니다.

AutoMV 동작 및 기능은 사용자가 생성한 구체화된 보기와 동일합니다. 동일한 기준과 제한 사항을 사용하여 자동으로 증분 방식으로 새로 고쳐집니다. 사용자가 생성한 구체화된 뷰와 마찬가지로 구체화된 뷰를 사용하기 위한 자동 쿼리 재작성는 시스템 생성 AutoMV의 이점을 얻을 수 있는 쿼리를 식별합니다. 이러한 쿼리를 자동으로 다시 작성하여 AutoMV를 사용하므로 쿼리 성능이 향상됩니다. 개발자는 AutoMV를 활용하기 위해 쿼리를 수정할 필요가 없습니다.

참고

자동 구체화된 뷰는 간헐적으로 새로 고쳐집니다. AutoMV를 사용하도록 재작성된 쿼리는 항상 최신 결과를 반환합니다. Redshift가 데이터가 최신이 아님을 감지하면 자동화된 구체화된 뷰에서 읽기 위해 쿼리가 다시 작성되지 않습니다. 대신 쿼리는 기본 테이블에서 최신 데이터를 선택합니다.

반복적으로 사용되는 쿼리가 있는 모든 워크로드는 AutoMV의 이점을 누릴 수 있습니다. 일반적인 사용 사례는 다음과 같습니다.

  • 대시보드 - 대시보드는 주요 비즈니스 지표(KPI), 이벤트, 추세 및 기타 지표에 대한 빠른 보기를 제공하는 데 널리 사용됩니다. 대시보드는 차트 및 테이블과 함께 공통 레이아웃을 사용하는 경우가 많지만 필터링 또는 드릴다운과 같은 차원 선택 작업에 대해 다른 보기를 표시합니다. 대시보드에는 종종 다른 파라미터와 함께 반복적으로 사용되는 공통 쿼리 집합이 있습니다. 대시보드 쿼리는 자동화된 구체화된 보기에서 큰 이점을 얻을 수 있습니다.

  • 보고서 - 보고 쿼리는 비즈니스 요구 사항 및 보고서 유형에 따라 다양한 빈도로 예약할 수 있습니다. 또한 자동화되거나 온디맨드일 수 있습니다. 보고 쿼리의 일반적인 특징은 오래 실행되고 리소스를 많이 사용한다는 것입니다. AutoMV를 사용하면 이러한 쿼리를 실행할 때마다 다시 계산할 필요가 없으므로 Redshift에서 각 쿼리의 런타임과 리소스 사용률이 감소합니다.

자동화된 구체화된 뷰를 끄려면 auto_mv 파라미터 그룹을 false로 업데이트합니다. 자세한 내용은 Amazon Redshift 클러스터 관리 안내서의 Amazon Redshift 파라미터 그룹 섹션을 참조하세요.

자동화되고 구체화된 보기의 SQL 범위 및 고려 사항

  • 자동화된 구체화된 뷰는 쿼리 또는 하위 쿼리에 의해 시작되고 생성될 수 있습니다. 단, 쿼리가 SUM, COUNT, MIN, MAX 또는 AVG 집계 함수 중 하나 또는 GROUP BY 절을 포함해야 합니다. 하지만 다음은 포함할 수 없습니다.

    • 왼쪽, 오른쪽 또는 전체 외부 조인

    • SUM, COUNT, MIN, MAX, AVG 이외의 집계 함수. (이런 함수에서 자동 쿼리 재작성이 작동합니다.)

    • DISTINCT를 포함하는 모든 집계 함수

    • 모든 윈도 함수

    • SELECT DISTINCT 또는 HAVING 절

    • 다른 구체화된 뷰

    기준을 충족하는 쿼리가 자동화된 구체화된 뷰의 생성을 시작한다는 보장은 없습니다. 시스템은 워크로드에 대한 예상 이점과 유지 관리할 리소스 비용(시스템 새로 고침 비용 포함)을 기반으로 뷰를 생성할 후보를 결정합니다. 생성되는 각 구체화된 뷰는 자동 쿼리 재작성에서 사용할 수 있습니다.

  • AutoMV가 하위 쿼리 또는 집합 연산자의 개별 구간에 의해 시작될 수 있지만 생성되는 구체화된 뷰에는 하위 쿼리 또는 집합 연산자가 포함되지 않습니다.

  • AutoMV가 쿼리에 사용되었는지 확인하려면 EXPLAIN 계획을 보고 출력에서 %_auto_mv_%를 찾습니다. 자세한 내용은 EXPLAIN을 참조하세요.

  • 자동화된 구체화된 뷰는 데이터 공유 및 페더레이션된 테이블과 같은 외부 테이블에서는 지원되지 않습니다.

자동화되고 구체화된 보기 제한 사항

다음은 자동화되고 구체화된 보기와 관련한 작업의 제한 사항입니다.

  • 최대 AutoMV 수 - 자동화된 구체화된 뷰의 제한은 클러스터의 데이터베이스당 200개입니다.

  • 스토리지 공간 및 용량 - AutoMV의 중요한 특징은 예비 백그라운드 주기를 사용하여 수행되어 사용자 워크로드가 영향을 받지 않도록 한다는 것입니다. 클러스터가 사용 중이거나 스토리지 공간이 부족한 경우 AutoMV는 작업을 중단합니다. 특히 총 클러스터 용량의 80%에서는 자동화된 구체화된 새로운 뷰가 생성되지 않습니다. 총 용량의 90%에서는 성능 저하 없이 사용자 워크로드를 계속 진행할 수 있도록 삭제할 수 있습니다. 클러스터 용량 결정에 대한 자세한 내용은 STV_NODE_STORAGE_CAPACITY 섹션을 참조하세요.

자동 구체화된 뷰에 대한 요금 청구

Amazon Redshift의 자동 최적화 기능은 자동 구체화된 뷰를 생성하고 새로 고칩니다. 이 프로세스의 컴퓨팅 리소스에는 요금이 부과되지 않습니다. 자동 구체화된 뷰의 스토리지에는 일반 스토리지 요금이 청구됩니다. 자세한 내용은 Amazon Redshift 요금을 참조하세요.

추가적인 리소스

다음 블로그 게시물은 자동 구체화된 뷰에 대한 자세한 설명을 제공합니다. 자동 구체화된 뷰를 생성, 유지 관리 및 삭제하는 방법을 자세히 설명합니다. 또한 이러한 결정을 이끄는 기본 알고리즘인 자동 구체화된 뷰를 이용해 Amazon Redshift 쿼리 성능 최적화에 대해서도 설명합니다.

이 비디오는 구체화된 뷰에 대한 설명으로 시작하며 구체화된 뷰가 성능을 개선하고 리소스를 절약하는 방법을 보여줍니다. 그런 다음 프로세스 흐름 애니메이션과 실시간 데모를 통해 자동 구체화된 뷰를 심층적으로 설명합니다.