데이터 엔지니어 기술 블로그

[간단 데이터 엔지니어링] 프레스토(Presto)란? 본문

데이터 엔지니어링

[간단 데이터 엔지니어링] 프레스토(Presto)란?

jun_yeong_park 2021. 6. 2. 13:00
반응형

개요

Presto는 페이스북에서 아주 많은 데이터를 빠르고 효율적으로 분석하기 위해 개발되었다. 페이스북에서는 300PB 규모의 데이터 웨어하우스에 쿼리할 때 사용하고 있으며 현재는 Airbnb와 Dropbox 등에서도 사용되고 있다.

다양한 소스를 지원해주는데 Hive, Cassandra, RDB, AWS S3 등에서 데이터를 읽을 수 있다.

Hive는 처리할 때 중간 결과를 디스크에 저장하지만 Presto는 메모리에 저장하기 때문에 속도가 훨씬 빠르다. 하지만 리소스를 더 사용하게 된다.

 

Architecture

Presto는 하나의 Coordinator가 다양한 소스에서 데이터를 가져와 Worker에게 전달을 해주는 역할을 한다.

https://speakerdeck.com/ahana/level-103-for-presto-deep-dive-into-the-prestodb-architecture-at-twitter?slide=3

 

쿼리 처리 방법

https://speakerdeck.com/ahana/level-103-for-presto-deep-dive-into-the-prestodb-architecture-at-twitter?slide=3

  1. 클라이언트에서 Coordinator로 쿼리를 보낸다.
  2. Coordinator는 쿼리를 분석하여 플랜을 작성한다.
  3. Worker가 작업을 할 수 있게 Task를 준다.
  4. Worker는 받은 Task를 기반으로 데이터 소스에 접근한다.
  5. 결과를 Coordinator에게 주는 작업 없이 Client로 바로 보내준다.

 

반응형
Comments