Trino 개요

Trino(과거 PrestoSQL)는 대규모 분산 SQL 쿼리 엔진으로, 데이터가 어디에 있든 상관없이 표준 SQL을 사용하여 초고속으로 분석할 수 있도록 설계된 오픈소스 소프트웨어입니다.


1. Trino의 개념 및 개요

Trino는 페이스북(현 Meta)에서 하둡(Hadoop)의 하이브(Hive) 쿼리 속도 문제를 해결하기 위해 개발한 Presto에서 파생되었습니다.

  • 분산 SQL 엔진: 데이터를 직접 저장하지 않고, 외부 데이터 소스(HDFS, S3, MySQL, Kafka 등)에 연결하여 쿼리를 실행합니다.
  • MPP(Massive Parallel Processing) 아키텍처: 여러 노드에서 작업을 병렬로 처리하여 수 테라바이트에서 페타바이트급 데이터를 빠르게 처리합니다.
  • 인메모리 처리: 디스크 I/O를 최소화하고 메모리 상에서 연산을 수행하여 지연 시간을 극적으로 줄였습니다.

2. 사용 목적

  • 데이터 연합(Data Federation): 서로 다른 저장소에 있는 데이터를 복사하거나 이동(ETL)하지 않고, SQL 한 번으로 조인(Join)하여 분석하기 위함입니다.
  • 대화형 분석(Ad-hoc Query): 데이터 사이언티스트나 분석가가 수초 내에 결과를 확인해야 하는 즉각적인 질의를 수행하기 위해 사용합니다.
  • 데이터 레이크 쿼리: S3나 HDFS 같은 거대한 데이터 저장소에서 필요한 데이터만 빠르게 추출하는 관문 역할을 합니다.

3. 주요 활용도

  • BI 대시보드 연결: Tableau, Power BI, Superset 등과 연결하여 실시간 시각화 지표를 생성합니다.
  • 이기종 데이터 통합 분석: 예를 들어, 서비스 DB인 MySQL의 유저 정보와 S3 로그 데이터를 조인하여 사용자 행동 패턴을 분석합니다.
  • 데이터 웨어하우스(DW) 보완: 기존 DW의 비용 부담을 줄이기 위해, 자주 쓰지 않는 대용량 데이터는 저렴한 스토리지에 두고 Trino로 조회하는 구조를 취합니다.

4. 장점과 단점

장점

  • 압도적인 속도: 인메모리 방식과 MPP 아키텍처 덕분에 Hive보다 훨씬 빠릅니다.
  • 유연한 확장성: 커넥터(Connector) 구조를 통해 관계형 DB, NoSQL, 객체 스토리지 등 수십 개의 데이터 소스를 지원합니다.
  • 표준 SQL 준수: ANSI SQL을 지원하므로 학습 곡선이 낮고 기존 쿼리를 재사용하기 좋습니다.
  • 실시간성: ETL 과정 없이 데이터 소스에 직접 접근하므로 가장 최신 데이터를 즉시 조회할 수 있습니다.

단점

  • 메모리 집약적: 모든 처리가 메모리에서 이루어지므로, 쿼리가 가용 메모리를 초과하면 실패할 확률이 높습니다.
  • 내결함성(Fault Tolerance) 부족: (최근 ‘Project旁’ 등을 통해 개선되고 있으나) 기본적으로 쿼리 실행 중 한 노드만 장애가 나도 전체 쿼리를 처음부터 다시 실행해야 합니다.
  • 복잡한 설정: 대규모 클러스터 운영 시 메모리 관리 및 리소스 튜닝이 까다로울 수 있습니다.
  • 저장소 부재: 데이터를 저장하지 않으므로, 데이터 정합성이나 관리 기능은 연결된 원천 소스에 의존합니다.

5. 결론

Trino는 “데이터 이동 없는 초고속 분석”이 필요할 때 가장 강력한 도구입니다. 데이터 가상화 계층으로서 여러 파편화된 데이터들을 하나로 묶어주는 역할을 수행하며, 현대적인 데이터 플랫폼(Modern Data Stack)의 핵심 구성 요소로 자리 잡고 있습니다.


© 2020. AiDALab Co. All rights reserved.

Powered by Hydejack v9.2.1