관리 메뉴

피터의 개발이야기

[Elasticsearch] Kibana Query Language 사용법 정리 본문

DevOps/Elasticsearch

[Elasticsearch] Kibana Query Language 사용법 정리

기록하는 백앤드개발자 2024. 8. 6. 10:10
반응형

ㅁ 들어가며

ㅇ Kibana Query Language(KQL)는 Elasticsearch 데이터를 효과적으로 검색하고 필터링하기 위한 강력한 쿼리 언어다. 이 글에서는 KQL의 주요 기능과 사용법을 정리하였다.

 

ㅁ 관련 글

 [kotlin] Spring Data Elasticsearch 샘플코드
 [Elasticsearch] Elasticsearch + Kibana 설치하기 with Docker

 [Elasticsearch] Docker로 Elasticsearch 설치 및 테스트하기

 [Elasticsearch] Kibana Query Language 사용법 정리

 

ㅁ 기본 구문

field:value

ㅇ 예를 들어 username:john은 username이 john인 데이터를 조회한다.

 

ㅁ 와일드카드 검색

*: 0개 이상의 문자
?: 정확히 1개의 문자

ㅇ 와일드카드를 사용하여 부분 일치 검색을 할 수 있다.

ㅇ 예: username:j* (j로 시작하는 모든 사용자명)

          datastream.*: logs (datastream에 종속된 요소들 중 logs가 포함)

 

ㅁ 범위 쿼리

field > value
field >= value
field < value
field <= value

ㅇ 예: age > 30 and age < 40

 

ㅁ 존재 여부 확인

_exists_:field

ㅇ 필드의 존재 여부를 확인할 수 있다.

ㅇ 예: _exists_:email

 

ㅁ 부정 연산자

not status:active
-status:active

ㅇ not 키워드나 - 기호를 사용하여 조건을 부정할 수 있다.

 

 그룹화

 괄호 () 를 사용하여 조건을 그룹화할 수 있다.
ㅇ 예: (status:active or status:pending) and country:US

 

ㅁ 논리 연산자

and, or, not을 사용하여 여러 조건을 결합할 수 있다.

ㅇ 예: status:active and (username:john or username:jane)

 

ㅁ 중첩 필드 쿼리

ㅇ 중첩 필드는 점(.) 표기법을 사용하여 접근할 수 있다.
ㅇ 예: user.name:john

 

ㅁ 쿼터 사용

ㅇ 공백이 포함된 값은 쿼터로 묶어야 한다.
ㅇ 예: message:"Hello world"

 

ㅁ 정규 표현식

ㅇ 정규 표현식을 사용하여 복잡한 패턴 매칭을 할 수 있다.
ㅇ 예: username:/joh?n(ath[ae]n)?/

 

ㅁ 날짜 쿼리

ㅇ 날짜 필드에 대해 특별한 구문을 사용할 수 있다.
ㅇ 예: @timestamp < "2021-01-01"
          @timestamp: [now-1d TO now]

 

ㅁ 스크립트 쿼리

ㅇ 스크립트를 사용하여 더 복잡한 조건을 표현할 수 있다.
ㅇ 예: script{"source": "doc['price'].value < params.threshold", "lang": "painless", "params": {"threshold": 100}}

 

ㅁ 함께 보면 좋은 사이트

elastic 공식문서 - Kibana Query Language

Kibana Query Language 정리

반응형
Comments