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
한계
- 메모리 관리
- 한 번 정한 메모리 설정이 커스텀 변경되지 않음 → 대용량 조인 시 OutOfMemory, 쿼리 실패, 성능 저하
Spill to Disk: 대용량 쿼리 실행 중 메모리 사용량 한계 초과 시, 중간 결과 데이터를 디스크에 임시 저장하는 기술
- Coordinator SPOF(Single Point Of Failure)
Trino의 구성 : 단일 Coordinator & 다수 Worker- Coordinator 장애 발생 시 쿼리 서비스 중단
- HA 기능을 위한
HAProxy,Trino Gateway가 사용되지만, 두 개의 Trino 클러스터 사용으로 자원도 2배 사용됨
사용 전략
Spark: 대용량 배치 처리, 복잡한 ETLTrino: 실시간 대화형 분석, 멀티 소스 조인
사용 예)
Trino는 Ad-Hoc 쿼리용으로,Spark는 대규모 ETL 파이프라인용으로 설계
오늘 배운 것
- AI
- 파운데이션 모델
- VLM (Vision-Language Model)
- Small VLM
내일 할 일
- 알고리즘 복습