Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

Amazon Redshift:쿼리 성능 최적화를 위한 모범 사례

2020년 6월 17일 Onica.com/blog에서 최초 게시

수많은 산업 분야의 조직에서 성공에 중요한 운영 및 기타 기능에 데이터 분석을 사용하려고 합니다. 그러나 데이터 양이 증가함에 따라 관리 및 가치 추출이 점점 더 복잡해질 수 있습니다.

아마존 레드시프트

Amazon® Redshift®는 데이터 관리 및 분석을 간소화하는 Amazon Web Services®(AWS)의 강력한 데이터 웨어하우스 서비스입니다. Amazon Redshift와 데이터 쿼리 성능을 최적화하기 위해 구현할 수 있는 몇 가지 모범 사례를 살펴보겠습니다.

데이터 레이크 대 데이터 웨어하우스

Amazon Redshift를 살펴보기 전에 데이터 레이크와 웨어하우스의 차이점을 아는 것이 중요합니다. Amazon S3와 같은 데이터 레이크는 데이터를 변경하지 않고 모든 규모와 다양한 소스의 정형 및 비정형 데이터를 저장하는 중앙 집중식 데이터 리포지토리입니다. 반면에 데이터 웨어하우스는 조정된 상태로 데이터를 저장하여 지속적인 분석 및 데이터 레이크에서 분석에 필요한 데이터만 로드합니다.

Amazon Redshift는 데이터 분석을 위한 스토리지를 한 단계 더 발전시켜 데이터 레이크와 웨어하우스의 품질을 "레이크 하우스" 접근 방식으로 통합합니다. 이를 통해 비용 효율성을 유지하면서 데이터 중복을 최소화하고 유지 관리 오버헤드 및 운영 비용을 최소화하면서 대규모 엑사바이트 규모의 데이터 레이크를 쿼리할 수 있습니다.

Amazon Redshift 아키텍처

빅 데이터 세트에 대한 복잡한 쿼리를 신속하게 처리하기 위해 Amazon Redshift 아키텍처는 동시 처리를 위해 여러 컴퓨팅 노드에 작업을 분산하는 대규모 병렬 처리(MPP)를 지원합니다.

이러한 노드는 클러스터로 그룹화되며 각 클러스터는 세 가지 유형의 노드로 구성됩니다.

  • 리더 노드 :연결을 관리하고 SQL 끝점 역할을 하며 병렬 SQL 처리를 조정합니다.

  • 컴퓨팅 노드 :슬라이스로 구성 , 이들은 열 형식과 1MB의 불변 블록에 저장된 데이터에 대해 병렬로 쿼리를 실행합니다. Amazon Redshift 클러스터는 1~128개의 컴퓨팅 노드를 포함할 수 있으며, 테이블 데이터를 포함하고 로컬 처리 영역 역할을 하는 슬라이스로 분할됩니다.

  • Amazon Redshift 스펙트럼 노드 :Amazon S3 데이터 레이크에 대해 쿼리를 실행합니다.

Amazon Redshift:쿼리 성능 최적화를 위한 모범 사례

쿼리 성능 최적화

클러스터에 있는 데이터의 물리적 레이아웃을 쿼리 패턴과 일치시키면 최적의 쿼리 성능을 추출할 수 있습니다. Amazon Redshift가 최적의 성능을 발휘하지 못하는 경우 워크로드 관리 재구성을 고려하십시오.

워크로드 관리(WLM) 재구성

종종 기본 설정으로 유지되는 WLM 조정은 성능을 향상시킬 수 있습니다. 이 작업을 자동화하거나 수동으로 수행할 수 있습니다. 자동화된 경우 Amazon Redshift는 클러스터 리소스 사용량을 기반으로 메모리 사용량 및 동시성을 관리합니다. 이를 통해 8개의 우선 순위 지정 대기열을 설정할 수 있습니다. 수동으로 수행하면 동시 쿼리 수, 메모리 할당 및 대상을 조정할 수 있습니다.

다음 WLM 구성 매개변수를 통해 쿼리 성능을 최적화할 수도 있습니다.

  • 쿼리 모니터링 규칙은 비용이 많이 들거나 폭주하는 쿼리를 관리하는 데 도움이 됩니다.

  • 짧은 쿼리 가속은 기계 학습 알고리즘을 사용하여 쿼리 실행 시간을 예측함으로써 장기 실행 쿼리보다 단기 실행 쿼리의 우선 순위를 지정하는 데 도움이 됩니다.

  • 동시 확장 몇 초 만에 여러 임시 클러스터를 추가하여 동시 읽기 쿼리의 속도를 높일 수 있습니다.

WLM 모범 사례

일부 WLM 조정 모범 사례는 다음과 같습니다.

  • 다양한 유형의 워크로드에 대해 다양한 WLM 쿼리 만들기
  • 처리량을 최대화하기 위해 기본 클러스터의 최대 총 동시성을 15개 이하로 제한합니다.
  • 동시 확장 사용.
  • 대기열의 리소스 수 최소화

데이터 분포 수정

테이블의 행은 다음 배포 스타일에 따라 AmazonRedshift가 노드 슬라이스에 자동으로 배포합니다.

  • AUTO :ALL로 시작하여 테이블이 커짐에 따라 EVEN으로 전환됩니다.
  • ALL :각 컴퓨팅 노드의 첫 번째 조각에 배치된 작고 자주 조인되고 자주 수정되지 않는 테이블로 구성됩니다.
  • EVEN :슬라이스 전체에서 라운드 로빈 분포로 자주 조인되거나 집계되지 않는 대규모 독립형 팩트 테이블로 구성됩니다.
  • KEY :자주 조인되는 팩트 테이블 또는 큰 차원 테이블로 구성됩니다. 이 스타일에서는 열 값이 해시되고 동일한 해시 값이 동일한 슬라이스에 배치됩니다.

올바른 배포 패턴을 사용하면 JOIN의 성능을 극대화할 수 있습니다. , GROUP BY , 및 INSERT INTO SELECT 작업.

데이터 정렬 구체화

정렬 키는 디스크에서 데이터의 물리적 순서를 정의합니다. WHERE에서 사용되는 테이블 열 절 술어는 정렬 키에 적합하며 일반적으로 날짜 또는 시간 관련 열을 사용합니다. 메모리에 저장되고 자동으로 생성되는 영역 맵을 사용하여 데이터의 각 블록에 대한 극한 값을 정의합니다. 정렬 키와 영역 맵을 함께 사용하면 효과적으로 도움이 될 수 있습니다. 필요한 최소 블록 수로 스캔을 제한합니다.

다음 다이어그램은 테이블 정렬이 시간 기반 쿼리의 대상 스캔에 집중하여 쿼리 성능을 향상시키는 방법을 보여줍니다.

Amazon Redshift:쿼리 성능 최적화를 위한 모범 사례

최적의 쿼리 성능 모범 사례

앞서 언급한 Amazon Redshift 변경 사항을 사용하면 쿼리 성능이 향상되고 비용과 리소스 효율성이 향상될 수 있습니다. 다음은 추가 성능 개선을 위해 구현할 수 있는 몇 가지 모범 사례입니다.

  • SORT 사용 WHERE에서 자주 사용되는 열의 키 절 필터.
  • DISTKEY 사용 JOIN에서 자주 사용되는 열 술어.
  • 첫 번째 정렬 키 열을 제외한 모든 열을 압축합니다.
  • 액세스 패턴과 같은 쿼리 필터를 기반으로 데이터 레이크의 데이터 분할 .

모범 사례를 더 살펴보려면 Amazon Redshift 변경 사항을 자세히 살펴보고 심층 쿼리 분석의 예를 확인하려면 AWS 파트너 네트워크(APN) 블로그를 읽어보십시오.

데이터 여정을 시작하고 있으며 AWS 서비스를 활용하여 데이터 플랫폼을 빠르고 안정적이며 비용 효율적으로 개발하려는 경우 지금 바로 데이터 엔지니어링 및 분석 팀에 문의하십시오.

Onica 서비스에 대해 자세히 알아보세요.

피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 영업 채팅을 클릭할 수도 있습니다. 지금 채팅하고 대화를 시작하세요.