Presto는 짧은 지연 시간의 임시 데이터 분석에 최적화된 오픈 소스 분산 SQL 쿼리 엔진입니다. Presto는 복잡한 쿼리, 집계, 조인, 윈도우 함수 등 ANSI SQL 표준을 지원합니다. Presto는 하둡 분산 파일 시스템(HDFS)과 Amazon S3를 비롯한 여러 데이터 소스의 데이터를 처리할 수 있습니다. Presto에는 PrestoDB와 PrestoSQL라는 두 가지 커뮤니티 프로젝트가 있습니다. Amazon EMR은 두 프로젝트 모두를 지원합니다. 여기에서 PrestoDB에 대해 자세히 알아보세요.
AWS Management Console, AWS CLI 또는 Amazon EMR API에서 관리형 Presto 클러스터를 쉽고 빠르게 생성할 수 있습니다. 또한 빠른 Amazon S3 연결, Amazon EC2 스팟 인스턴스와의 통합, 메모리 최적화 인스턴스 등 다양한 Amazon EC2 인스턴스 중에서 선택, 클러스터에서 인스턴스를 손쉽게 추가 또는 제거할 수 있는 크기 조정 명령 등을 비롯하여 추가적인 Amazon EMR 기능을 활용할 수 있습니다.
기능 및 장점
대화형 쿼리 성능
Presto는 SQL 의미 체계를 지원하도록 설계된 연산자가 포함된 사용자 지정 쿼리 실행 엔진을 사용합니다. Hive/MapReduce와는 달리 Presto는 메모리에서 쿼리를 실행하고 단계 간에 네트워크를 통해 파이프라인되므로 불필요한 I/O를 방지할 수 있습니다. 파이프라인된 실행 모델은 여러 단계를 병렬로 실행되며, 데이터를 사용할 수 있게 되는 대로 한 단계에서 다음 단계로 데이터를 스트리밍합니다.
사용 편의성
Presto를 실행하는 Amazon EMR 클러스터를 몇 분 만에 시작할 수 있습니다. 노드 프로비저닝, 클러스터 설정, 구성 또는 클러스터 튜닝에 대해 걱정할 필요가 없습니다. Amazon EMR이 이 작업을 모두 처리해주기 때문에 분석에만 집중할 수 있습니다. 또한, Airebnb에서 오픈 소스로 제공하는 웹 기반 쿼리 실행 도구인 Airpal과 같은 도구를 사용할 수도 있습니다. Airpal의 사용자 인터페이스는 데이터 탐색과 임시 분석을 간소화하며, 구문 강조 표시, 결과를 CSV로 내보내기, 나중에 사용하도록 쿼리를 저장, 스키마를 시각화하기 위해 테이블을 탐색하는 기능 등을 지원합니다.
Amazon EMR 기능 집합과 통합
Amazon S3에 있는 데이터에 직접 액세스하는 대화형 쿼리를 실행하고, Amazon EC2 스팟 인스턴스 용량을 사용하여 비용을 절감하며, EMR 관리 Scaling을 사용하여 용량을 동적으로 추가 및 제거하고, 워크로드에 맞춰 장기 실행 또는 휘발성 클러스터를 시작할 수 있습니다. 또한, 다른 하둡 에코시스템 애플리케이션을 클러스터에 추가할 수 있습니다.
ANSI SQL 지원
Presto는 ANSI SQL 표준을 지원하므로, 데이터 분석가와 개발자가 손쉽게 대규모로 정형 데이터 및 비정형 데이터를 쿼리할 수 있습니다. 현재 Presto는 복잡한 쿼리, 집계, 조인, 윈도우 함수를 비롯하여 다양한 SQL 기능을 지원합니다.
고객 성공 사례
Netflix는 빅 데이터를 위한 대화형 ANSI SQL 호환 쿼리 엔진으로 Presto를 선택했습니다. Presto는 확장성이 뛰어나고, 오픈 소스이며, Netflix의 빅 데이터 웨어하우스 환경의 백본인 Amazon S3 및 Hive Metastore와 통합됩니다. Netflix는 영구 Amazon EMR 클러스터에서 Presto를 실행하여 25PB 규모의 Amazon S3 데이터 스토어 전체에서 쿼리를 신속하고 유연하게 수행합니다. Netflix는 Presto에 적극적으로 기여하고 있으며 Amazon EMR은 Amazon EMR 클러스터에서 자체 Presto 빌드를 실행할 수 있는 유연성을 Netflix에 제공합니다. 평균적으로 Netflix는 자체 Presto 클러스터에서 하루에 약 3,500개의 쿼리를 실행합니다.
Jampp는 첨단 광고 리타겟팅 기법을 사용하여 활성 사용자를 애플리케이션으로 유도하는 모바일 애플리케이션 마케팅 플랫폼입니다. Jampp는 전환 중심의 자체 실시간 입찰(RTB) 엔진을 통해 모바일 미디어 인벤토리를 구매하는 방법으로 이를 실현합니다. 이 엔진은 18개의 RTB 거래소 및 150개의 모바일 광고 네트워크 전체에서 인벤토리를 동적으로 입찰합니다. Jampp는 고급 임시 로그 분석을 위해 Amazon EMR에서 실행되는 Presto를 활용하여 여러 소스의 데이터와 복잡한 리타겟팅 세그먼트 계산을 결합합니다. Jampp의 사용자 기반이 600% 증가함에 따라 복잡한 분석 쿼리에 대한 수요도 함께 증가했습니다. Jampp는 MySQL 기반의 복잡한 멀티 코어 Python 애플리케이션을 실행하던 것을 Presto를 실행하는 것으로 전환하면서 성능을 12배 향상했습니다. Jampp는 현재 Amazon EMR 기반 Presto를 사용하여 매일 40TB의 데이터를 처리하고 있습니다.
스타트업 인큐베이터인 Cogo Labs는 포트폴리오 회사와 내부 팀에서 사용하는 마케팅 분석 및 비즈니스 인텔리전스를 위한 플랫폼을 운영합니다. 빠르게 혁신되는 OLAP 환경을 지원하기 위해 데이터와 상호 작용하는 SQL을 표준화했습니다. Cogo Labs는 실시간 쿼리 성능, ANSI SQL 지원, Amazon S3에서 직접 데이터를 처리하는 기능을 위해 Presto를 선택했습니다. Amazon EMR에서 실행되는 Presto를 사용하면 100명 이상의 개발자와 분석가가 데이터 탐색, 임시 분석 및 보고를 위해 Amazon S3에 저장된 500TB가 넘는 데이터에 대해 SQL 쿼리를 실행할 수 있습니다. Cogo Labs는 비용 절감을 위해 유효 기간이 짧은 클러스터와 영구 클러스터의 조합을 사용하고 Amazon EMR을 스팟 인스턴스와 통합하여 사용합니다.
OpenSpan은 사람, 프로세스 및 기술을 연결하여 직원 생산성에 대한 통찰력을 확보하고, 트랜잭션을 간소화하며 직원과 고객의 참여를 유도하는 데 도움이 되는 자동화 및 인텔리전스 솔루션을 제공합니다. OpenSpan은 HBase에서 Amazon EMR 기반 Presto로 마이그레션하였으며 Amazon S3에 데이터를 저장합니다. OpenSpan은 SQL 인터페이스와 Amazon S3에서 직접 데이터를 실시간으로 쿼리하는 기능을 위해 Presto를 선택했습니다. 이를 통해 대량의 데이터를 신속하게 탐색하고 이후 데이터 제품에 대해 빠르게 반복할 수 있습니다. OpenSpan은 parquet 파일 형식을 사용하며, PrestogreSQL을 사용하여 Presto에 연결합니다. OpenSpan은 고객으로부터 매일 수신되는 기가바이트의 데이터를 비용 효율적으로 처리하기 위해 Amazon EMR과 Amazon S3를 선택했습니다.
Kanmu는 금융 서비스 산업의 일본 스타트업으로 소비자의 신용 카드 사용에 따라 카드와 연결된 상품을 제공합니다. Kanmu는 Hive에서 Amazon EMR 기반 Presto로 마이그레이션했습니다. 대화형 속도로 탐색과 반복 분석을 수행하는 Presto의 기능, Amazon S3의 뛰어난 성능, 대규모 데이터 세트를 쿼리할 수 있는 확장성이 이유입니다. Kanmu는 Fluentd-plugin-s3를 사용하여 데이터를 Amazon S3로 푸시하고, ORC(Optimized Row Columnar) 형식으로 데이터를 저장하고 shib를 사용하며, node.js 기반 웹 클라이언트로 SQL 쿼리를 실행합니다.
Amazon EMR 요금에 대해 자세히 알아보십시오