SQL 및 PPL 문제 해결
SQL 및 PPL 문제 해결 (SQL and PPL troubleshooting)
SQL 플러그인은 상태를 유지하지 않는(stateless) 구조라서, 문제 해결은 대부분 특정 질의가 왜 실패하는지에 집중돼요.
가장 흔한 오류는 파싱 오류가 발생하거나 잘못된 HTTP 메서드(POST를 GET으로, 그 반대로)를 사용할 때 생기는 널 포인터 예외(null pointer exception)예요. POST 메서드와 HTTP 요청 본문이 가장 일관된 결과를 제공해요.
POST _plugins/_sql
{
"query": "SELECT * FROM my-index WHERE ['name.firstname']='saanvi' LIMIT 5"
}
질의가 예상대로 동작하지 않으면 _explain API를 사용해 변환된 질의를 확인한 다음 문제를 해결해 보세요. 대부분의 연산에서 _explain은 OpenSearch 질의 DSL을 반환해요. UNION, MINUS, JOIN의 경우에는 SQL 실행 계획에 더 가까운 내용을 반환해요.
출처: 문서
본문
예시 요청
POST _plugins/_sql/_explain
{
"query": "SELECT * FROM my-index LIMIT 50"
}
예시 응답
{
"from": 0,
"size": 50
}
인덱스 매핑 검증 예외 (Index mapping verification exception)
다음 검증 예외가 보이면 질의의 인덱스가 인덱스 패턴이 아니고 여러 타입을 갖지 않는지 확인하세요.
{
"error": {
"reason": "There was internal problem at backend",
"details": "When using multiple indices, the mappings must be identical.",
"type": "VerificationException"
},
"status": 503
}
이러한 단계로 해결되지 않으면 GitHub 이슈를 제출해 주세요.