Elasticsearch를 직접 체험하려면 당사의 샘플 노트북을 살펴보거나, 무료 클라우드 체험판을 시작하거나, 지금 바로 로컬 기기에서 Elastic을 사용해 보세요.
8.14부터 정식 버전으로 제공되는 Elasticsearch 쿼리 언어 (ES|QL)는 검색, 통합 가시성 및 보안 조사를 위해 특별히 설계된 쿼리 언어와 엔진을 도입합니다. 기존 파이프 언어에서 많은 부분을 차용한 OpenSearch의 파이프 처리 언어(PPL)와 달리, ES|QL은 처음부터 세련미, 사용성, Kibana 플랫폼 전반의 원활한 통합에 중점을 두고 구축되었습니다.
이 블로그에서는 Elasticsearch 9.1의 ES|QL 편집기의 개발자 환경을 OpenSearch 3.2의 이벤트 분석기(줄여서 PPL)와 비교하여 살펴보겠습니다.
ES|QL 편집기는 지능형 자동 완성, 상황에 맞는 도움말, 추천 쿼리 및 클러스터 간 쿼리 지원을 제공하여 초급 사용자뿐만 아니라 전문가 수준의 사용자도 역량을 강화할 수 있습니다. ES|QL 저작을 위한 사려 깊은 설계는 예를 들어 최근 쿼리와 같은 통합 쿼리 검사 및 Kibana 워크플로우를 통한 전체적인 통합에서 더욱 잘 드러납니다.
반면 PPL은 자동 완성, 문맥 안내 및 분산 쿼리에 대한 지원이 부족하여 학습 곡선이 가파르고 시행착오가 더 많이 발생합니다.
ES|QL을 더 쉽게 배우고 사용하기
새로운 쿼리 언어를 시작하는 것은 종종 부담스럽게 느껴질 수 있습니다. Kibana Discover에직접 내장된 ES|QL 편집기는 쿼리 생성 및 디버깅을 지원할 뿐만 아니라 사용자가 언어에 익숙해지고 편안해지는 속도를 가속화하여 이러한 프로세스를 간소화하도록 설계되었습니다. 에디터가 일상적인 작업의 마찰을 줄여주므로 구문과 시행착오에서 벗어나 문제 해결에 집중할 수 있습니다. 이러한 원칙과 이를 에디터에 통합한 방법에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
이 편집기 환경은 Discover에만 국한된 것이 아니라 재사용 가능한 코드 모듈로, 대시보드, Kibana 알림, Kibana 지도와 같은 Kibana의 다른 부분에도 통합하기 위해 노력하고 있습니다.
지능형 자동 완성: 쿼리 생성 가속화
ES|QL 편집기의 자동 완성 기능은 포괄적이며 호환 가능한 함수, 인수, 리터럴, 심지어 중첩된 함수에 대한 제안을 제공하며, PPL에서는 특히 부족한 기능입니다. 사실, 여기에 설명된 대로 완전히 새롭게 재구축되었습니다.
유효성 검사는 여기에 설명된 대로 사용자가 입력하는 대로 실행되며, 필드를 제안하고 오류를 사용자에게 알립니다. 이렇게 하면 사용자의 정신적 부담이 줄어들고 쿼리 작성 프로세스 초기에 오류를 방지할 수 있습니다.
예시: 이 중첩에는 필드와 호환 가능한 함수가 제안됩니다:

PPL은 지원하지 않습니다:

지능형 자동 완성 기능이 호환 가능한 함수, 인수 및 중첩 함수를 안내해 주더라도 사용 가능한 옵션에 대해 더 깊이 이해하고 싶을 수 있습니다. 쿼리 개발을 명확히 하고 개선할 수 있도록 에디터 내에서 즉각적인 지원을 제공하는 ES|QL 에디터의 상황별 도움말은 바로 이 지점에서 매우 유용합니다.
상황에 맞는 도움말을 손끝으로
자동 완성으로 생성된 명령에 대한 추가 정보는 Ctrl-스페이스키를 클릭하면 확인할 수 있습니다. 해당 함수, 인수 또는 필드에 대한 세부 정보가 포함된 패널이 즉시 나타납니다. 이 가벼운 상호작용은 개발자가 에디터를 종료하거나 외부 문서를 검색할 필요 없이 적시 안내를 제공하여 개발자의 흐름을 유지합니다. 이렇게 하면 구문 조회에 낭비되는 시간이 줄어들고 일반적인 실수를 사전에 방지할 수 있습니다.
실제 모습은 다음과 같습니다:

PPL에는 이러한 수준의 임베디드 가이드가 없기 때문에 사용자는 외부 문서나 시행착오에 의존해야 합니다. 이러한 부재는 단순히 기능의 부재가 아니라 디자인 철학의 광범위한 차이를 강조합니다. ES|QL은 사용자의 데이터와 워크플로에 맞춰 조정되는 사려 깊고 컨텍스트 인식적인 경험을 우선시합니다. 쿼리의 복잡성이 커질수록 이러한 차이는 더욱 뚜렷해지며, ES|QL 편집기는 학습 및 프로덕션 사용 모두에 더욱 효율적이고 안정적인 환경을 제공합니다.
데이터 컨텍스트를 인식하는 권장 쿼리
ES|QL 편집기는 로그와 같이 작업 중인 데이터에 맞게 자동으로 조정되는 추천 쿼리를 제공합니다. 빈 편집기를 표시하는 대신 일반적인 사용 사례에 가장 적합한 시작점을 표시합니다. 추천 쿼리를 선택하면 즉시 사용할 수 있는 표준 쿼리가 생성되며 필요에 따라 더 세분화할 수 있습니다. 이 접근 방식은 특히 아직 전체 구문을 모르는 신규 사용자의 경우 쿼리 개발을 가속화합니다.
다음은 사용자가 '변경 지점 감지' 쿼리를 선택하는 예시입니다:

이를 PPL 경험과 비교해 보세요:

반면 PPL은 기본적인 자동 완성 기능만 제공하므로 문맥이나 구조 없이 쿼리를 조합해야 합니다. 이러한 지침의 부재는 좌절과 시행착오로 이어질 수 있습니다.
ES|QL 편집기의 데이터 인식 추천 쿼리를 사용하면 일상적인 작업을 처음부터 시작하거나 구문을 외우지 않아도 됩니다. 편집기는 인지 부하를 줄이고 오류를 방지하며, 쿼리 구성과 씨름하는 대신 문제 해결과 클러스터 간 검색 실행과 같은 더 광범위한 목표에 집중할 수 있게 해줍니다.
직관적인 클러스터 간 쿼리
ES|QL 편집기의 자동 완성 기능은 CCS를 사용하여 여러 원격 클러스터로 작업하는 경우에도 여전히 우수합니다. 그 이유는 다음과 같습니다:
클러스터 간에도 원활한 자동 완성 기능을 제공하는 ES|QL 편집기
ES|QL 편집기의 자동 완성 기능은 클러스터 이름뿐만 아니라 로컬 및 원격 인덱스도 모두 지원합니다. 여기서 다룬 바와 같이, 이는 로컬 노드로 전송할 쿼리 계획을 검증 및 생성하고, 쿼리를 실행하고, 결과를 집계한 후 사용자에게 다시 전송하는 코디네이터 노드 아키텍처 덕분에 작동합니다. 전체 원격 클러스터 이름을 입력하지 않고 ":"를 입력하면 원격 인덱스에 대한 자동 완성 프로세스가 시작됩니다. 그리고 접두사에 국한되지 않습니다.
따라서 명명 규칙을 외우거나 컨텍스트를 전환하지 않고도 분산된 데이터 집합을 쉽게 검색하고 쿼리할 수 있습니다.
다음은 사용자가 원격 인덱스를 찾기 위해 "clu:g"만 입력하는 예제입니다:

이와는 대조적으로 PPL은 로컬 인덱스에 대한 기본 완성도만 제공하며, 제안은 접두사 일치로 제한됩니다. 원격 클러스터는 수동으로 입력해야 하므로 오류 발생 가능성이 높아지고 쿼리 생성 속도가 느려집니다.

PPL은 로컬 인덱스에 대해서만 완성을 제공하며 제안은 접두사로 제한됩니다:

ES|QL은 음수 부호를 사용하여 직접 제외를 허용함으로써 탐색에 참여하는 클러스터를 세밀하게 제어할 수 있습니다. 이 기능은 클러스터 간 조사 중에 특정 데이터 세트를 포함하거나 생략할 수 있는 하이브리드 환경에서 작업할 때 특히 유용합니다.

이러한 개선 사항은 클러스터 간 검색에서 마찰을 줄이는 데 중점을 둔 Elasticsearch의 광범위한 노력을 반영합니다. 분산 쿼리를 더 쉽게 구성하고 관리할 수 있게 해주는 ES|QL 편집기는 분석가와 개발자가 구문보다는 인사이트에 집중할 수 있게 해주는 반면, PPL은 이러한 부담을 사용자에게 더 많이 떠넘깁니다. 또한 ES|QL 편집기는 클러스터 간 쿼리 생성을 간소화할 뿐만 아니라 이러한 쿼리가 실행되는 방식을 검사하는 도구도 제공하여 여러 클러스터에서 투명성 및 성능 모니터링을 보장합니다.
검사 도구를 사용하여 클러스터 간 검색 세부 정보 분석하기
ES|QL 편집기에서 액세스할 수 있는 검사 도구는 모든 클러스터에서 쿼리 실행에 대한 명시적인 정보가 포함된 메타데이터를 제공하도록 설계되었습니다. 이 기능은 Kibana Discover에서 활성화되며 쿼리 검사기에서 직접 액세스할 수 있어 검색 진행 상황과 세부 정보를 분석할 수 있으며, 이는 특히 클러스터 간 검색 (CCS)에 매우 중요합니다. 이 기능을 사용하면 검색 진행 상황을 모니터링하고 분산된 데이터 세트에서 쿼리가 어떻게 수행되는지 파악할 수 있습니다.

특히 복잡한 분산 검색의 경우 쿼리 실행에 대한 자세한 가시성을 통해 최적의 성능과 문제 해결을 보장할 수 있습니다.
개별 쿼리의 메커니즘을 이해하는 것 외에도, ES|QL 편집기는 전체 Kibana 플랫폼에 걸쳐 필수 기능을 심층적으로 내장함으로써 사용자 여정을 더욱 향상시켜 원활하고 중단 없는 워크플로우를 촉진합니다.
ES|QL과 Kibana의 통합 쿼리 환경
쿼리 기반 분석에서 가장 일반적인 마찰의 원인 중 하나는 컨텍스트 전환입니다. 이미 작성한 쿼리를 다시 불러와야 하는 경우가 종종 있습니다. 방해가 있을 때마다 집중력이 흐트러지고 조사 속도가 느려집니다. ES|QL 편집기는 Kibana 전체에 쿼리 기록을 통합하여 이 문제를 해결합니다.
최근 쿼리
ES|QL 편집기의 최근 쿼리 기능은 과거 작업에 즉시 액세스할 수 있도록 하여 작업 흐름을 유지하는 데 도움이 됩니다. Discover의 ES|QL 편집기에서 최근 20개의 쿼리를 보고, 다시 실행하고, 별표를 표시할 수 있어 자주 사용하거나 복잡한 쿼리를 클릭 한 번으로 쉽게 찾을 수 있습니다. 이렇게 저장된 쿼리는 대시보드, 시각화, 알림, 지도와 통합되어 Kibana 전체에 적용되므로 현재 화면을 떠나거나 명령을 처음부터 다시 입력할 필요가 없습니다. 이를 통해 반복적인 작업을 줄이고 조사 속도를 높이며 오류 위험을 최소화할 수 있습니다.
예를 들어 사용자는 Discover의 ES|QL 편집기에서 최근 쿼리를 활용하고 별표를 표시할 수 있습니다:

최근 쿼리가 대시보드에 통합됩니다:

PPL은 이에 필적할 만한 기능을 제공하지 않기 때문에 사용자는 수동 복사-붙여넣기나 외부 메모에 의존하여 쿼리를 재사용해야 합니다. 이 차이는 편의성 그 이상입니다. Kibana 에코시스템 내에서 진정한 통합 언어로 ES|QL을 구축하려는 Elastic의 전략이 반영된 것입니다. 최근 쿼리와 같은 기능을 통해 ES|QL 편집기는 일상적인 워크플로를 간소화할 뿐만 아니라 현재 기술 미리보기에서 고급 기능을 위한 기반을 마련하여 지속적으로 발전하는 환경을 보장합니다.
결론
ES|QL은 단순한 구문이 아니라 사용자가 데이터를 검색, 탐색, 분석하는 방식을 개선하기 위한 Elastic의 전략을 반영합니다. 지능형 자동 완성, 컨텍스트 인식 추천 쿼리, 편집기 내 안내, Inspect와 같은 도구를 통해 ES|QL 편집기는 학습을 가속화하고 오류를 줄이며 클러스터 간 분석과 같은 복잡한 워크플로를 간소화합니다. Kibana 전체에 통합되어 쿼리를 대시보드, 알림, 시각화에 원활하게 연결하여 중단 없는 워크플로우를 제공합니다.
요약하자면, ES|QL은 단순히 또 하나의 파이프 언어가 아니라, 데이터와 상호 작용하는 방식을 근본적으로 재정의하는 직관적인 UI와 결합된 세심하게 설계된 쿼리 엔진으로, 종종 순차적이고 안내가 부족한 OpenSearch PPL과는 확연히 대조되는 통합적이고 지능적이며 지속적으로 진화하는 경험을 제공합니다.
다음 단계
이 블로그는 ES|QL의 표면적인 부분만 다루고 있습니다. 다음 게시물에서는 OpenSearch PPL과의 비교를 자세히 살펴보고, 컨트롤 (대시보드에서 이미 사용 가능), 다중 데이터 탐색 탭, 배경 검색, 더 풍부한 쿼리 기록 및 FUSE와 같은 지리적 공간, 시각화 및 곧 출시될 에디터 기능에 대해 살펴볼 예정입니다.
지금 ES|QL 체험하기
무료 체험 판으로 완전 관리형 Elasticsearch 서버리스 프로젝트에서 ES|QL을 확인해 보세요. 8.11 버전에서도 사용할 수 있지만 8.19와 9.1에서 가장 잘 사용할 수 있습니다.
명령 한 번으로 로컬 환경에서 몇 분 안에 시작할 수 있습니다:




