멀티 스테이지 쿼리 엔진 트러블슈팅
멀티 스테이지 쿼리 엔진 트러블슈팅 (Troubleshoot Multi-Stage Query Engine)
Pinot 멀티 스테이지(다단계) 쿼리 엔진 관련 문제를 진단·해결하는 방법을 안내해요.
출처: 문서
본문
개요 (Overview)
멀티 스테이지 쿼리 엔진(v2 엔진)은 조인, 서브쿼리, 윈도우 함수 등 복잡한 쿼리를 처리해요. 이 엔진 관련 문제는 대부분 워커 리소스, 실행 계획, 메모리·셔플 관련 원인에서 발생해요.
흔한 문제와 진단 (Common issues and diagnosis)
- 쿼리 오류 — 문법, 타입, 함수 지원 여부 등을 확인해요. 실행 계획을 확인해 오류가 난 단계를 찾아요.
- 메모리 부족/실패 — 워커의 오퍼레이터 메모리, 셔플 버퍼가 부족하면 쿼리가 실패할 수 있어요. 워커 리소스를 늘려요.
- 느린 쿼리 — 대형 셔플, 비효율적 조인 순서 등이 원인일 수 있어요. 실행 계획과 통계를 확인해요.
실행 계획 확인 (Checking the query plan)
EXPLAIN PLAN을 사용해 멀티 스테이지 실행 계획을 확인하고 비효율적인 단계(오퍼레이터)를 식별해요. 조인·집계 순서를 개선할 수 있어요.
리소스 조정 (Resource tuning)
- 워커 스레드, 메모리, 셔플 버퍼 크기를 늘려 복잡한 쿼리를 지원해요.
- 워커가 과부하되지 않도록 Run Multi-Stage Engine in Production의 지침을 따르세요.
모범 사례 (Best practices)
- 쿼리가 지원되는 기능을 쓰는지 확인하세요.
- 가능하면 셔플 양을 줄이는 쿼리(파티션 일치 조인 등)를 작성하세요.