728x90
64강. Presto 개요
Presto란?
- drill과 유사한 개념이다.
- drill과 같이 다양한 빅데이터 데이터베이스와 연결하고 모든 데이터 베이스에 쿼리작업을 할 수 있다.
- 특히 drill은 카산드라와는 연결이 불가한데 presto는 가능하다.
- drill처럼 다양한 데이터베이스에 걸쳐서 더 복잡한 쿼리를 위해 Join할 수 있다.
- 익숙한 SQL문 제공
- 어떠한 데이터 스토어가 수평적으로 확장된다면 presto를 통해 단일 접근 지점을 만들어서 데이터가 어디에 있든 상관없이 쿼리를 실행할 수 있다.
- presto자체는 데이터베이스가 아니다.
- SQL쿼리와 조직 전체에 걸쳐 분산된 다양한 데이터 스토어 사이의 레이어이다.
- 메모리 기반 쿼리 엔진이다
- JDBC 드라이버를 통해서, 기존의 애플리케이션과 내부 데이터를 프레스토를 통해 연결할 수 있다.(CLI, Tableau 등등)
- 분석쿼리에 최적화
- 피닉스와는 다르게 신속한 트랜잭션이 아니라 데이터분석이나 데이터 웨어하우스 애플리케이션을 위해 설계 되었다.
- 즉 높은 처리율이나 지연을 낮출때 사용하는 것은 아니다
- 복잡한 쿼리로 데이터를 읽을때 굉장히 효율적이다.
- 페이스북이 개발
- 즉 엄청난 빅데이터를 처리할 수 있다
- AWS Athena가 presto기반이다.
Presto를 사용해야하는 이유
- drill 대신 사용할 수 있는 이유는 presto가 카산드라와 연결 가능하기 때문
- 다수의 소스에 있는 데이터를 통합해서 전체 조직에 걸친 분석을 할 수 있다
- 즉 다수의 데이터 소스로부터 프레스토가 데이터를 통합해서 단일 데이터 웅덩이처럼 사용할 수 있게 한다.
그리고 여기서 한번에 쿼리작업을 할 수 있다.(multiple data source를 single query를 통해 진행)
- 즉 다수의 데이터 소스로부터 프레스토가 데이터를 통합해서 단일 데이터 웅덩이처럼 사용할 수 있게 한다.
- 카프카와도 연결되어서 프레스토가 실시간으로 들어오는 데이터를 소화해낼 수 있다.
Presto Architecture
1. 클라이언트에서 Coordinator로 쿼리를 보낸다.
2. Coordinator는 쿼리를 분석하여 플랜을 작성한다.
3. Worker가 작업을 할 수 있게 Task를 준다.
4. Worker는 받은 Task를 기반으로 데이터 소스에 접근한다.
5. 결과를 Coordinator에게 주는 작업 없이 Client로 바로 보내준다.
65~66강. 실습
[65강] Presto 설치 및 Hive 쿼리
[66강] Presto를 사용하여 cassandra와 hive를 모두 쿼리하기
- 카산드라의 thrift서비스를 활성화해야한다. (presto가 cassandra와 소통하기 위해서)
- 그리고 presto에서 cassandra에 쿼리하기 위한 properties 파일을 작업한다/ 확장자가 properties이다
- 아래와 같은 연결을 위한 설정값들을 파일에 작성한 뒤 presto를 실행하는 것.
예시)
# for hive
connector.name=hive-hadoop2
hive.metastore.uri=thrift://127.0.0.1:9083
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
# for cassandra
connector.name=cassandra
cassandra.contact-points=127.0.0.1
- presto 실행
bin/presto --server host:port --catalog hive,cassandra
- presto 내에서 테이블 조회
- 그리고 cassandra뿐 아니라 hive에서 가져온 각각의 데이터를 join할 수 있음.
참고자료
728x90
'DE > Study' 카테고리의 다른 글
[Hadoop_기초]Udemy course - 섹션 8-2. Oozie & Zeppelin & Hue (1) | 2022.08.14 |
---|---|
[Hadoop_기초] Udemy course - 섹션 8-1. Yarn & Tez & Mesos & Zookeeper (0) | 2022.08.08 |
[Hadoop_기초] Udemy course - 섹션 7-1. Drill & Phoenix (0) | 2022.07.17 |
[Hadoop_기초] Udemy course - 섹션 6-2.MongoDB & 데이터베이스 선택하기 (0) | 2022.07.12 |
[Hadoop_기초] Udemy course - 섹션 6-1.Hbase & Cassandra (0) | 2022.07.06 |