2025-10-17

1일 1아티클

데보션

Trino

Trino

  • 여러 개의 개별 데이터 소스에 분산된 대규모 데이터 셋 쿼리에 용이한 오픈소스 분산 SQL 쿼리 엔진
  • Hive, Spark에서 겪을 수 있는 느린 쿼리 처리 속도를 개선
    • ex. Ad-Hoc 쿼리(대규모 ETL 처리가 아닌 작은 쿼리) 실행 시 Spark Pool 구성 시간 문제로 응답 지연

성능 비교

데이터 크기 Trino Spark
1GB 15초 45초
10GB 2분 3분
100GB 실패(OOM) 15분

Trino 클러스터

  • Spark : Coordinator - Worker 구조
  • Trino : Spark ThriftServer처럼, 자원 확보 후 쿼리 발생 시 Coordinator를 Task로 분산하여 Worker가 각자 쿼리 처리할 수 있도록 조정

멀티 카탈로그

하나의 쿼리 엔진으로 여러 데이터 소스 통합 조회하는 핵심 개념

  
    -- 하나의 쿼리에서 3개의 서로 다른 데이터 소스 조인
    SELECT 
        ice.user_id,
        ice.transaction_amount,
        redis.app_title_ko,
        pg.user_profile
    FROM spark_catalog.sales.transactions ice
    JOIN redis.cama.app redis ON ice.app_id = redis.app_id  
    JOIN postgresql.users.profiles pg ON ice.user_id = pg.user_id
  
  • 다양한 데이터 소스를 카탈로그로 등록
  • 쿼리 시, 각 데이터를 조합하여 결과 출력
  • ex. On-Prem & Cloud Hybrid 전략으로 설계된 Datalake

한계

  1. 메모리 관리
    • 한 번 정한 메모리 설정이 커스텀 변경되지 않음 → 대용량 조인 시 OutOfMemory, 쿼리 실패, 성능 저하
    • Spill to Disk : 대용량 쿼리 실행 중 메모리 사용량 한계 초과 시, 중간 결과 데이터를 디스크에 임시 저장하는 기술
  2. Coordinator SPOF(Single Point Of Failure)
    • Trino의 구성 : 단일 Coordinator & 다수 Worker
    • Coordinator 장애 발생 시 쿼리 서비스 중단
    • HA 기능을 위한 HAProxy, Trino Gateway가 사용되지만, 두 개의 Trino 클러스터 사용으로 자원도 2배 사용됨

사용 전략

  • Spark : 대용량 배치 처리, 복잡한 ETL
  • Trino : 실시간 대화형 분석, 멀티 소스 조인

사용 예) TrinoAd-Hoc 쿼리용으로, Spark대규모 ETL 파이프라인용으로 설계

오늘 배운 것

  1. AI
    • 파운데이션 모델
    • VLM (Vision-Language Model)
    • Small VLM

내일 할 일

  1. 알고리즘 복습

참고자료

results matching ""

    No results matching ""