Amazon Web Services 한국 블로그

Amazon Redshift Spectrum – S3 데이터에 대한 엑사바이트(Exabyte)급 질의 수행 서비스

이제 몇 번의 클릭만으로 클라우드 기반 컴퓨팅 및 스토리지 리소스를 시작할 수 있게 되었기 때문에, 이러한 리소스를 사용하여 초기 데이터에서 실행 가능한 결과로 최대한 신속하고 효율적으로 이동해야합니다.

Amazon Redshift를 사용하면 다양한 내부 및 외부 소스의 데이터를 통합하는 페타 바이트 규모의 데이터웨어 하우스를 구축 할 수 있습니다. Redshift는 대형 테이블에서 복잡한 조인(Join, 여러 조인이 수반되는 경우가 많음)을 위해 최적화되어 대규모의 소매, 재고 및 재무 데이터를 처리 할 수 ​​있습니다. 또한, Redshift 파트너가 제공하는 수많은 엔터프라이즈 비즈니스 인텔리전스 도구를 사용할 수 있습니다.

데이터웨어 하우스 운영의 가장 어려운 측면 중 하나는 지속적으로 변화하는 데이터 및 빠른 속도로 들어오는 데이터를 로드하는 것입니다. 뛰어난 쿼리 성능을 제공하기 위해 데이터웨어 하우스에 데이터를 로드하는 데에는 압축, 정규화 및 최적화 단계를 포함합니다. 이러한 단계를 자동화하고 확장 할 수는 있지만, 로드 프로세스는 여전히 오버 헤드와 복잡성을 야기하며 주요 실행 결과에 영향을 주게 됩니다.

데이터 형식은 또 다른 흥미로운 도전 과제입니다. 일부 애플리케이션은 데이터웨어 하우스 외부에서 원래 형식으로 데이터를 처리하거나, 데이터웨어 하우스에 쿼리를 실행합니다. 이 모델은 데이터를 두 번 저장해야하기 때문에 저장 비효율을 초래하며, 데이터 로드 프로세스에서 발생하는 지연으로 인해 한 가지 형식의 처리 결과가 다른 형식의 결과와 정렬되지 않을 수도 있습니다.

Amazon Redshift Spectrum 기능 출시
Amazon Redshift의 기능과 유연성을 활용하면서 데이터를 있는 그대로 처리 할 수 ​​있도록 Amazon Redshift Spectrum을 정식 공개합니다. 스펙트럼을 사용하여 Amazon Simple Storage Service (S3)에 저장된 데이터에 대한 복잡한 쿼리를 로드하거나 다른 데이터를 준비 할 필요 없이 바로 실행할 수 있습니다.

평소와 같이 데이터 소스를 생성하고 Redshift 클러스터에 쿼리를 실행하면 됩니다. 그 이면에서, Spectrum은 쿼리 단위로 수천 개의 인스턴스로 확장되므로 데이터 세트가 엑사바이트(exabyte) 이상으로 커지더라도 빠르고 일관된 성능을 보장 할 수 있습니다! S3에 저장된 데이터를 쿼리 할 수 ​​있다는 것은 Redshift 쿼리 모델 기능, 리포트 및 비즈니스 인텔리전스 도구를 자유롭게 사용하여 컴퓨팅 및 저장소를 독립적으로 확장 할 수 있다는 것을 의미합니다. 검색어는 Redshift 테이블과 S3에 저장된 모든 데이터의 조합을 참조할 수 있습니다.

쿼리를 실행하면 Redshift가 이를 구분하고 열(Column) 기반 형식과 날짜 또는 다른 키로 분할 된 데이터를 모두 활용하여, S3 읽기 데이터 양을 최소화하는 쿼리 계획을 생성합니다. 그런 다음 Redshift는 공유 풀(Pool)에서 Spectrum을 요청하고, S3 데이터를 가져와 필터링 및 집계하도록 지시합니다. 최종 처리는 Redshift 클러스터 내에서 수행되고 결과는 사용자에게 반환됩니다.

Spectrum은 S3에 저장된 데이터에서 작동하기 때문에Amazon EMRAmazon Athena와 같은 다른 AWS 서비스를 사용하여 데이터를 처리 할 수 ​​있습니다. Redshift 로컬 스토리지에 자주 질의되는 데이터가 저장되고, 나머지는 S3 차원 테이블(dimension tables)에서 팩트 테이블(fact tables)의 최신 데이터와 함께 Redshift에 존재하고, S3에는 이전 데이터가 있는 하이브리드 모델을 구현할 수도 있습니다. 높은 수준의 동시성을 구현하기 위해 동일 저장 데이터에서 여러 개의 Redshift 클러스터를 지정할 수 있습니다.

Spectrum은 CSV/TSV, Parquet, SequenceFile, RCFile을 비롯한 개방형 공통 데이터 유형을 지원합니다. 파일은 GZip 또는 Snappy를 사용하여 압축 할 수 있으며 다른 데이터 유형 및 압축 방법을 사용할 수 있습니다.

Spectrum 실행해 보기
Spectrum을 직접 경험해보기 위해 샘플 데이터 세트를 로드하고 쿼리를 실행합니다. 먼저 외부 스키마와 데이터베이스를 작성하여 시작했습니다.

그런 다음 데이터베이스 내에 외부 테이블을 만들었습니다.

간단한 쿼리를 실행하여 데이터 세트의 크기(61 억 행)에 대한 감을 얻었습니다.

그런 다음 모든 행을 처리 한 쿼리를 실행했습니다.

보시다시피, Spectrum은 약 15 초 만에 60 억 행을 처리할 수 있습니다. 클러스터 성능 메트릭을 확인한 결과 많은 쿼리를 동시에 실행하기에 충분한 CPU 성능을 갖춘 것처럼 보입니다.

정식 출시
Amazon Redshift Spectrum 는 오늘부터 사용 가능합니다.

스펙트럼 가격은 쿼리 처리 중에 S3에서 가져온 데이터의 양을 기반으로 하며 테라 바이트 당 5 달러의 요금으로 청구됩니다 (데이터 압축 및 열 기반 형식으로 저장하여 비용을 절약 할 수 있음). Redshift 클러스터를 실행하고 S3에 데이터를 저장하는 데 일반적인 요금을 지불하지만 쿼리를 실행하지 않을 때는 스펙트럼 요금이 없습니다.

Jeff;

PS – 어떤 분들은 Spectrum 과 Athena에 대한 차이에 대해 궁금하실 것입니다. 아래는 Redshift FAQ 에서 이들 서비스간의 차이에 대한 간단한 답변입니다.

Amazon Athena는 S3 데이터에 대한 임의(ad-hoc) 쿼리를 실행할 수 있는 가장 간단한 방법입니다. Athena는 서버가 없으므로 설치 또는 관리 할 인프라가 없으므로 즉시 데이터 분석을 시작할 수 있습니다. 자주 접근하는 데이터를 일관성 있고, 구조화 된 형식으로 저장해야 하는 경우 Amazon Redshift와 같은 데이터웨어 하우스를 사용해야 합니다. Amazon Redshift에 저장한 데이터는 Redshift Spectrum을 사용하여 Amazon Redshift 쿼리를 S3 전체 데이터로 확장 할 수 있습니다. 이렇게 하면 원하는 형식으로 원하는 위치에 자유롭게 데이터를 저장하고 필요할 때 처리 할 수 있습니다.

이 글은 Amazon Redshift Spectrum – Exabyte-Scale In-Place Queries of S3 Data의 한국어 번역입니다.