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

+ Recent posts