Distributed SQL Engine Operations
대규모 분산 SQL 엔진(Trino, Presto)의 멀티클러스터 라우팅, 워크로드 격리, 운영 관리 패턴
핵심 개념
대규모 조직에서 분석 SQL 엔진은 단일 클러스터로 운영할 수 없다. 워크로드 유형(Ad-hoc, ETL, BI)별 격리, 쿼리 라우팅, 무중단 업그레이드가 핵심 운영 과제이며, Gateway/Proxy 패턴이 표준 해법으로 자리잡았다.
Trino Gateway — Expedia 사례
Lyft의 Presto Gateway를 포크한 단일 엔드포인트 프록시:
워크로드 격리
- Ad-hoc 클러스터: 탐색적 분석 (저복잡, 다양한 쿼리)
- ETL 클러스터: 고복잡 대용량 변환 (장시간 실행)
- BI 클러스터: 저복잡 고동시성 (Tableau/Looker 쿼리)
라우팅 룰
- 대형 테이블 쿼리 → 전용 클러스터로 라우팅
- 메타데이터 쿼리(
select version(),show catalogs) → 경량 클러스터로 분리 - BI 도구 쿼리 → BI 전용 클러스터로 격리
운영 기능
- Blue/Green 또는 Canary 배포로 무중단 클러스터 업그레이드
- 클러스터 헬스 상태(HEALTHY/UNHEALTHY/PENDING) 실시간 가시성
- Expedia가 오픈소스에 기여한 UI: 라우팅 룰 편집, 쿼리 히스토리, 전체 쿼리 텍스트 보기
PostgreSQL Portable Statistics
분산 SQL 엔진의 쿼리 최적화를 지원하는 새 기법:
- PostgreSQL 18의
pg_restore_relation_stats/pg_restore_attribute_stats로 프로덕션 통계를 테스트 환경에 주입 - CI에서 프로덕션과 동일한 쿼리 플랜 생성 — Seq Scan → Index Scan 전환 사전 감지
- 통계 덤프 크기: 수백 테이블/수천 컬럼에서도 1MB 미만
트레이드오프
| 접근 | 장점 | 비용 |
|---|---|---|
| Gateway 프록시 | 워크로드 격리, 무중단 배포 | 프록시 레이어 복잡도, 라우팅 규칙 관리 |
| 단일 대형 클러스터 | 운영 단순 | 노이지 네이버, 장애 전파 |
| 클라우드 관리형 (Athena 등) | 인프라 관리 불필요 | 비용 예측 어려움, 커스터마이징 제한 |
연관 개념
- Query Optimization — 쿼리 비용 절감 기법
- Distributed Systems Reliability — 클러스터 장애 격리
- Spark at Scale — 분산 처리 엔진과 보완적 관계
Source: Operating Trino at Scale With Trino Gateway, Production Query Plans Without Production Data