BLOG

성능의 중요성: Amazon Redshift 가 실생활의 워크로드에 유용한 최대 3.5배 빠른 성능을 제공합니다.
작성일: 2018년 11월 20일

Amazon Redshift를 출시한 이래로 수천 명의 고객이 저희 서비스를 신뢰하였고, 이에 저희는 가장 복잡한 분석 워크로드에 있어서 탁월한 속도를 얻을 수 있었습니다. 2017년 동안 고객은 짧은 쿼리 가속, 결과 캐싱, 후기 구체화 및 기타 여러 가지 보완 개선으로 인해 3 배에서 5 배까지의 성능 향상을 얻었습니다. 이 게시물에서는 Amazon Redshift의 최근 개선 사항과 성능 개선에 대한 저희의 지속적인 관심이 고객에게 어떻게 도움이 되는지를 집중 조명합니다. 또한 이러한 지속적인 개선의 영향을 측정하는 데 도움이 되는 산업 표준 벤치 마크에서 파생된 성능 테스트에 대해서도 논의하고자 합니다.

 

최근 성능 향상

클라우드에서 가장 많은 수의 데이터 웨어하우스 배포를 통해 다양한 분석 워크로드에서 사용 패턴을 분석하고 성능을 향상시킬 수 있는 기회를 발견 할 수 있습니다. 저희는 이러한 통찰력을 활용하여 수천 명의 고객에게 원활하게 이익을 주는 개선 사항을 제공합니다. 지난 6개월 동안 성능이 크게 향상 된 것은 다음과 같습니다.

 

  • 메모리 집약적인 쿼리를 위한 향상된 리소스 관리 : Amazon Redshift는 조인 및 집계가 메모리를 소비하고 보존하는 방법을 향상시켰습니다. 이로 인해 대부분의 해시 테이블에 대한 캐시 효율성이 향상되고 메모리 집약적인 조인 및 집계가 최대 1.6 배 감소했습니다.
  • Commit을 위한 성능 향상: 쓰기 트랜잭션의 핵심 구성 요소로서 commit은 ETL (추출, 변환 로드) 작업과 같은 데이터 업데이트와 데이터 처리 워크로드의 성능에 직접적인 영향을 줍니다. 2017년 11월부터는 단일 작업에서 여러 커밋을 일괄 처리하고 커밋 잠금 사용을 개선하며 지역 인식 메타 데이터 조각 모음과 같은 일련의 커밋 성능 최적화를 제공했습니다. 이러한 최적화 및 기타 관련 최적화로 인해 HDD 기반 클러스터의 평균 4배의 커밋 시간이 단축되었습니다. 대량 거래 (Amazon Redshift에서 커밋 작업의 상위 5 %)의 경우 제공되는 최적화로 인해 7.5 배 개선되었습니다.
  • 반복 쿼리의 성능 향상 : 쿼리를 반복적으로 실행하는 Amazon Redshift의 결과 캐싱, 대시 보드, 시각화 및 BI (Business Intelligence) 도구가 이제 성능을 크게 향상시킵니다. 또한 결과 캐싱은 다른 모든 쿼리의 성능을 향상시킬 수있는 리소스를 확보합니다.
  • 쿼리 처리 개선 : Amazon Redshift는 반복된 하위 쿼리, 조건부 고급 분석 기능 및 복잡한 작업 및 합리화 단계를 제거하여 복잡한 쿼리 계획과 같은 시나리오에서 2 배에서 6 배 빠르게 수행됩니다.
  • 빨라진 문자열 조작 : Amazon Redshift는 보다 효율적인 코드 생성 기술로 인해 자주 사용되는 문자열 함수의 성능을 5 배 향상시킵니다.

 

또한 Amazon Redshift Advisor를 사용하여 저렴한 비용으로 더 나은 성능을 얻는 데 도움이 되는 맞춤 권장 사항을 통해 이러한 즉각적인 개선 사항을 보완했습니다. Advisor는 2018 년 7 월에 출시 된 이후 이미 5 만 건이 넘는 권장 사항을 제공했습니다.

 

이러한 모든 최적화 작업을 통해 고객은 AWS 분석 플랫폼에서 보다 빠른 통찰력을 투명하게 얻을 수 있었으며 매일 수천 시간의 실행 시간을 절약 할 수 있었습니다. 이는 고객이 Redshift 클러스터에 여러 페타 바이트의 데이터를 보유하고 Amazon Redshift Spectrum을 사용하여 Amazon S3 데이터 레이크의 더 큰 데이터 볼륨에 원활하게 액세스 할 수 있는 가장 큰 배포에도 적용됩니다. “데이터가 커졌지만 Redshift의 쿼리 성능과 확장성은 계속 증가하고 있습니다. 지난 10 개월 동안 비용 증가 없이 커밋 성능이 500 % 증가한 것으로 나타났습니다.” 라고 Cookpad 회사의 수석 데이터 엔지니어인 Minero Aoki가 말했습니다.

 

성공을 측정하기 위해 벤치 마크 사용

이러한 지속적인 개선의 영향을 측정하기 위해 야간에 성능을 측정하고 TPC-DS와 같은 업계 표준 벤치 마크에서 파생된 쿼리를 실행합니다. Amazon Redshift를 다른 데이터 웨어하우스 서비스와 비교하여 때때로 벤치마킹 합니다. 저희는 이전에 강조한 바와 같이 고객의 실제 사용을 반영하여 이러한 측정을 설정했습니다. 이를 통해 매 2 주마다 일어나는 Amazon Redshift가 개선 될지의 여부를 정확하게 측정 할 수 있습니다.

 

지난 수개월 동안 Amazon Redshift를 비교 한 결과, Amazon Redshift는 TPC-DS 벤치 마크에서 파생된 99 개의 쿼리를 모두 실행하면서 6 개월 전보다 3.5 배 빨라졌음을 알 수 있었습니다. 이것은 다음 도표에 나와 있습니다.

 

참고 : 본 연구에서는 TPC-DS에서 파생된 Cloud DW 벤치 마크를 사용했습니다. 따라서 Cloud DW 벤치 마크는 게시된 TPC-DS 결과와 비교할 수 없습니다. TPC 벤치마크 및 TPC-DS는 Transaction Processing Performance Council의 상표입니다.

 

이 게시물에서는 최신 Amazon Redshift 릴리스를 TPC-DS에서 파생된 Cloud DW 벤치마크를 사용하여 Microsoft Azure SQL 데이터 웨어하우스와 비교했습니다. Amazon Redshift용 dc2.8xlarge와 Azure SQL 데이터 웨어하우스용 DW2000c Gen2를 사용하여 두 서비스 모두 4 노드 클러스터에서 3TB 데이터셋에 대한 쿼리가 실행되었습니다. Azure는 퍼블리싱시 용량 제약으로 인해 30 TB 데이터셋에 필요한 DW15000c 클러스터를 할당 할 수 없었기 때문에 더 큰 데이터셋을 실행할 수 없었습니다.

 

Amazon Redshift는 Azure SQL 데이터 웨어하우스보다 한 사용자가 99 개 쿼리를 모두 실행하는 속도가 15 배 빠르고 4 명의 동시 사용자가 14 배 더 빠릅니다. Azure SQL 데이터 웨어하우스를 완료하는 데 몇 시간이 걸린 이상한 쿼리 몇 개가 있었습니다. 2 개의 장기 실행 쿼리를 제외하면 Amazon Redshift는 Azure SQL 데이터 웨어하우스보다 1 명의 사용자로 2 배, 4 명의 동시 사용자가 1.6 배 더 빠릅니다. 다음 차트는 두 서비스를 비교합니다.

 

참고 :이 연구에서는 TPC-DS v2.9에서 파생된 쿼리를 사용했습니다. Amazon Redshift 및 Azure SQL DW는 롤업 쿼리를 지원하지 않으므로 TPC-DS는 쿼리 5, 14, 18, 27, 36, 67, 70, 77, 80 및 86에 대해 변형을 제공했습니다. 즉각적인 5 개의 동시 쿼리를 허용하는 Amazon Redshift의 워크로드 관리 구성 및 4 개의 동시 쿼리의 한도가 낮은 Azure SQL DW의 ‘largerc’ 리소스 클래스를 제공합니다. Azure SQL Data Warehouse는 6.4 시간이 걸렸지만 Amazon Redshift는 99 개의 쿼리를 실행하는 데 25 분이 걸렸습니다. Azure SQL 데이터 웨어하우스를 실행하는 데 걸리는 두 가지 쿼리 (Q38 및 Q67)는 1 시간 이상이었지만 Amazon Redshift는 22 분, Azure SQL 데이터 웨어하우스는 42 분이 걸렸습니다.

 

 

 

Amazon Redshift 평가

다른 데이터 웨어하우스 서비스에 대한 벤치 마크는 흥미롭긴 하지만 제한적입니다. 첫째, 모든 벤치 마크에는 적합하지 않습니다. 각 서비스에는 고유한 실제 사용 패턴과 이를 구성하고 조정하는 방법이 있습니다. 공개적으로 제공되는 지침에 따라 서비스를 구성하기 위해 최선을 다하고 있지만 특정 서비스에 대해 최적의 성능을 보장 할 수는 없습니다. Amazon Redshift의 강력한 배포 및 분류 키를 사용하지 않는 고객의 대다수가 사용하는 경우와 같이 타사 벤치 마크를 통해 이를 보게 됩니다.

 

마찬가지로, 각 벤치 마크 쿼리는 한 번만 실행할 수 있으며 실제 시나리오와 달리, 저희가 관찰한 쿼리의 99.5%는 컴파일 캐시에서 찾을 수 있는 구성 요소를 가지고 있습니다. (Amazon Redshift는 각 쿼리 실행 계획에 대해 코드를 생성하고 편집합니다. 컴파일된 코드 세그먼트는 가장 최근에 사용된 캐시에 저장되고 클러스터의 여러 세션에서 공유됩니다.) 즉, 이전에 실행된 쿼리와 유사합니다. 따라서 벤치마킹 연구로 측정된 쿼리 실행 시간은 컴파일 시간에 과도한 색인 생성을 유발할 수 있습니다. 이는 예상되는 실제 성능을 나타내지 않을 수 있습니다.

 

둘째, 이러한 연구는 필요에 따라 특정 시점 평가입니다. 클라우드 공급 업체가 서비스를 업데이트하고 발전 시킴에 따라 벤치 마크 수치는 게시될 때 이미 폐기되었을 수 있습니다.

 

따라서 데이터 및 쿼리 워크로드가 고유한 특성을 가지고 있기 때문에 이러한 벤치 마크를 기반으로 제품 선택을 결정하지 않는 것이 좋습니다. 분석 플랫폼을 위해 Amazon Redshift를 평가하는 경우 도움이 될 Proof of Concept 안내서를 만들었습니다. 또한 도움을 요청하거나 시스템 통합 및 컨설팅 파트너 중 한 곳과 협력하여 데이터 기반 결정을 내릴 수 있습니다.

 

마지막으로, 최신 Fireside 채팅 웨비나에 참여하시고, 라스베가스 re:Invent 2018을 가시게 된다면 흥미진진한 소식들이 여러분을 기다리고 있을 겁니다. 많은 질문 부탁 드려요!

 

지침에 따라 벤치 마크를 재현하려면 redshift-pm@amazon.com으로 문의하십시오.

 

원문 URL: https://aws.amazon.com/ko/blogs/big-data/performance-matters-amazon-redshift-is-now-up-to-3-5x-faster-for-real-world-workloads/

** 메가존클라우드 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.