띵유로그

[데이터파이프라인] Presto 본문

DataEngineering

[데이터파이프라인] Presto

띵유 2022. 2. 28. 00:49
반응형

Presto는 분산환경에서의 SQL쿼리 엔진입니다. 서로 다른 DB의 data도 join 할 수 있는 기능이 있습니다. 
Hive는 중간에 데이터를 디스크에 저장하지만 Presto는 메모리에 올리기 때문에 더 빠르다는 장점이 있습니다.
또 AWS 아테나도 Presto 엔진으로 구성되어있어 쿼리를 실행할 수 있지만, 이기종간의 data join이 불가능합니다.
또 아테나는 서버리스이기때문에 데이터 용량에 따라 요금이 부과되지만, Presto는 사용한 computing power을 사용한 시간에따라 요금이 부과됩니다.

Presto CLI에서 명령어를 제출하면 코디네이터는 분석 후 실행계획을 세웁니다. 그 후 실행계획에 따라 worker에게 task를 줍니다. 따라서 당연히 worker노드를 관리합니다. worker는 task 결과를 코디네이터를 거치지 않고 바로 클라이언트에게 줍니다.

참고로 아래 그림에서는 HDFS라고만 적혀있지만 Hive, Cassandra, S3, RDB등에서 데이터를 읽을 수 있습니다.

Presto의 구성요소를 4가지로 나눌 수 있습니다.
1. Connector 
Hive 나 RDS등 DBMS에 접속하기 위한 연결 Adapter입니다. Catalog의 물리적인 정의라고 볼 수 있습니다. 
2. Catalog
Connector의 논리적 이름이라고 볼 수 있습니다. 실제로 쿼리를 날릴때 catalog이름을 사용합니다.
예 ) CatalogName.schema.table
3. Schema
유사한 성격의 Table들의 group
4. Table

 

 

반응형
Comments