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 이슈를 제출해 주세요.

더 알아보기 (Learn more)