Elasticsearch를 직접 체험하려면 당사의 샘플 노트북을 살펴보거나, 무료 클라우드 체험판을 시작하거나, 지금 바로 로컬 기기에서 Elastic을 사용해 보세요.
10월에 출시된 Elasticsearch 9.2는 데이터를 그 어느 때보다 더 빠르고 유연하며 쉽게 분석할 수 있도록 중요한 개선 사항이 반영되었습니다. 이번 릴리즈의 핵심은 최종 사용자에게 더 큰 가치를 직접 제공하도록 설계된 파이프 쿼리 언어인 ES|QL의 중요한 기능 향상입니다.
ES|QL을 통해 데이터 분석 워크플로우를 혁신할 Elasticsearch 9.2의 기능을 살펴보겠습니다.
데이터 상관 관계 혁신: 더 스마트하고 빠르며 유연한 조회 조인
ES|QL의 LOOKUP JOIN 명령은 Elasticsearch 9.2에서 상당한 변화를 거쳐 효율성과 활용도가 크게 향상되었습니다. LOOKUP JOIN은 ES|QL 쿼리 결과 테이블의 데이터를 지정된 조회 모드 인덱스의 일치하는 레코드와 결합합니다. 조인 필드의 일치하는 값을 기준으로 조회 인덱스의 필드를 결과 테이블에 새로운 열로 추가합니다. 이전에는 데이터 조인이 단일 필드와 단순 동등성으로 제한되었지만, 이제는 그렇지 않습니다. 이러한 향상된 기능을 통해 복잡한 데이터 상관관계 시나리오를 손쉽게 처리할 수 있습니다.
Lookup Join의 주요 개선 사항은 다음과 같습니다:
- 다중 필드 조인: 여러 필드를 쉽게 조인할 수 있습니다. 예를 들어
application_logs와(과)service_registry을(를)service_name,environment, 버전을 기준으로 조인하려면 다음과 같이 합니다.version:
- 표현식으로 복잡한 조인 술어 활용(기술 미리 보기):
더 이상 단순한 등식에 국한되지 않습니다. LOOKUP JOIN을 사용하면 상관관계에 대한 여러 기준을 지정하고 ==, !=, <, >, <=, >= 등 다양한 이항 연산자를 사용할 수 있습니다. 즉, 고도로 정교한 조인 조건을 생성하여 데이터에 대해 훨씬 더 정교한 질문을 던질 수 있습니다.
예시 1: 서비스별 SLA 임계값을 사용하여 애플리케이션 메트릭 찾기
예시 2: 이 쿼리는 시간에 따라 변동하는 지역별 가격 정책을 기반으로 납부 금액을 계산합니다. 복잡한 날짜 범위와 등식 조건을 기반으로 세 개의 데이터 세트를 결합하여 최종 due_amount을(를) 계산합니다. 두 번째 LOOKUP JOIN은 meter_readings 인덱스의 measurement_date 필드와 customers 인덱스의 region_id 필드를 사용하여 pricing_policies 인덱스에 조인하고 특정 region 및 measurement_date에 대한 올바른 가격 정책을 찾습니다.
- 필터링된 조인의 대규모 성능 향상
조회 테이블 조건을 사용하여 필터링되는 '확장 조인'의 성능을 개선했습니다. 확장 조인은 입력 행당 여러 개의 일치 항목을 생성하여 큰 중간 결과 세트를 생성할 수 있습니다. 이러한 행 중 상당수가 후속 필터에 의해 삭제되는 경우 상황은 더 악화됩니다. 9.2에서는 조회 데이터에 필터를 적용할 때 불필요한 행을 필터링하여 삭제될 행의 처리를 방지함으로써 이러한 조인을 최적화합니다. 때에 따라 이러한 조인은 최대 1,000배 더 빨라질 수 있습니다.

이러한 최적화는 조회가 초기에 많은 잠재적 일치 항목을 생성할 수 있는 '확장 조인'을 처리할 때 매우 중요합니다. 지능적으로 필터를 적용하면 관련 데이터만 처리되어 쿼리 실행 시간이 크게 단축되고 방대한 데이터 세트에 대한 실시간 분석이 가능해집니다. 즉, 매우 크거나 복잡한 조인 작업에서도 훨씬 빠르게 인사이트를 얻을 수 있습니다.
LOOKUP JOIN 클러스터 간 검색(CCS) 호환성:
LOOKUP JOIN이 8.19와 9.1 버전에서 정식 출시되었을 당시에는 클러스터 간 검색(CCS) 지원이 부족했습니다. 여러 클러스터에서 운영되는 조직의 경우 LOOKUP JOIN은 이제 9.2에서 CCS와 완벽하게 통합됩니다. 조인을 수행하려는 모든 원격 클러스터에 조회 인덱스를 추가하기만 하면 ES|QL이 자동으로 이러한 원격 조회 인덱스를 활용하여 원격 데이터와 조인합니다. 이를 통해 분산 데이터 분석이 간소화되고 전체 Elasticsearch 배포 환경에서 일관된 데이터 보강이 보장됩니다.
이러한 개선 사항을 통해 전례 없는 정밀도, 속도, 용이성으로 다양한 데이터 세트를 상호 연관시켜 복잡한 해결 방법이나 사전 처리 단계 없이 더 깊고 실행 가능한 인사이트를 발견할 수 있습니다.
조회 인덱스용 Kibana Discover UX를 사용해 간편하게 데이터 보강
데이터 보강은 간단해야 하며, 장애물이 되어서는 안 됩니다. Kibana의 Discover에서 조회 인덱스를 생성하고 관리하기 위해 새롭고 환상적인 사용자 환경을 도입했습니다.
직관적인 워크플로우: Discover의 포괄적인 자동 완성 기능은 ES|QL 편집기에서 조회 인덱스와 조인 필드를 제안하여 프로세스를 안내해 주므로, 업로드한 데이터를 기존 인덱스와 매우 쉽게 연결할 수 있습니다. 존재하지 않는 조회 인덱스 이름을 입력하면 클릭 한 번으로 조회 편집기에 바로 액세스하여 인덱스를 생성할 수 있습니다. 기존 조회 인덱스 이름을 입력하면 다음과 같이 편집 옵션을 제안해 드립니다.

인라인 관리(CRUD): Discover에서 직접 인라인 편집 기능(생성, 읽기, 업데이트, 삭제)을 사용하여 참조 데이터 세트를 최신 상태로 유지하세요.

간편한 파일 업로드: 이제 CSV와 같은 파일을 Discover 내에서 직접 업로드하고 LOOKUP JOIN에서 즉시 사용할 수 있습니다. Kibana의 다른 영역을 오가며 컨텍스트를 전환할 필요가 없습니다!

사용자 ID를 이름에 매핑하거나 비즈니스 메타데이터를 추가하거나 정적 참조 파일을 조인할 때, 이 기능은 데이터 보강을 대중화하고 모든 사용자가 조인 기능을 직접 사용할 수 있도록 합니다. 빠르고 간편하며 모든 것이 한 곳에서 가능합니다.
컨텍스트 보존: INLINE STATS 소개 (기술 미리 보기)
데이터 집계는 중요하지만, 때로는 집계된 데이터를 원본 데이터와 함께 확인해야 할 때가 있습니다. 기술 미리 보기 기능으로 인라인 통계를 소개하게 되어 기쁩니다.
STATS 명령은 입력 필드를 집계된 출력으로 대체하지만, INLINE STATS 명령은 원래 입력 필드를 그대로 유지하고 집계된 새 필드를 추가합니다. 이는 집계 후 원래 입력 필드에서 추가 작업을 수행할 수 있게 하여 보다 지속적이고 유연한 워크플로우를 제공합니다.
예를 들어 개별 비행 행을 유지하면서 평균 비행 거리를 계산하려면 다음을 수행합니다.

이 쿼리에서는 그룹화 기준으로 사용된 해당 Dest(ination)을(를) 사용하여 각 행에 avgDist을(를) 추가한 다음, 항공편 정보 열이 남아 있으므로 평균보다 거리가 먼 항공편으로 결과를 필터링할 수 있습니다.
ES|QL의 시계열 지원 (기술 미리 보기)
Elasticsearch는 시계열 데이터 스트림을 사용하여 메트릭을 저장합니다. TS 소스 명령을 통해 ES|QL에서 시계열 집계에 대한 지원을 추가하고 있습니다. 이 기능은 Elastic Cloud Serverless 및 9.2 기본 버전에서 기술 미리 보기로 제공됩니다.
시계열 분석은 주로 시간 버킷에 대한 메트릭 값을 하나 이상의 필터링 차원으로 분할하여 요약하는 집계 쿼리를 기반으로 합니다. 대부분의 집계 쿼리는 2단계 처리 방식을 사용하는데, (a) 시계열별 값을 요약하는 내부 집계 함수와 (b) 시계열 전반에 걸쳐 (a)의 결과를 결합하는 외부 집계 함수가 있습니다.
TS 소스 명령어와 STATS을(를) 결합하면 시계열 데이터에 대한 쿼리를 간결하면서도 효과적으로 표현할 수 있습니다. 좀 더 구체적으로 호스팅 및 시간당 총 요청 비율을 계산하는 다음 예시를 살펴보겠습니다.
이 경우 시계열 집계 함수 RATE이(가) 먼저 시계열 및 시간별로 평가됩니다. 그런 다음 SUM을(를) 사용하여 생성된 부분 집계를 결합하여 호스팅 및 시간당 최종 집계 값을 계산합니다.
사용 가능한 시계열 집계 함수 목록은 여기에서 확인하세요. 카운터 비율이 이제 지원되며, 이는 카운터 처리를 위한 가장 중요한 집계 함수라고 할 수 있습니다.
TS 소스 명령은 STATS와(과) 결합하여 사용할 수 있도록 설계되었으며, 시계열 집계를 효율적으로 지원하도록 실행이 최적화되었습니다. 예를 들어 데이터는 STATS(으)로 이동하기 전에 정렬됩니다. FORK 또는 INLINE STATS와(과) 같은 시계열 데이터 또는 그 순서를 보강하거나 변경할 수 있는 처리 명령은 현재 TS와(과) STATS 사이에 허용되지 않습니다. 이 제한은 향후 해제될 수 있습니다.
STATS 표 형식 출력은 해당 명령을 사용하여 추가로 처리할 수 있습니다. 예를 들어 다음 쿼리는 호스팅 및 시간당 평균 cpu_usage와(과) 호스팅당 최대값의 비율을 계산합니다.
시계열 데이터는 Lucene doc 값으로 구동되는 기본 열 형식 저장 공간 엔진에 저장됩니다. TS 명령은 ES|QL 컴퓨팅 엔진을 통해 벡터화된 쿼리 실행 기능을 추가합니다. 동급 DSL 쿼리에 비해 쿼리 성능이 10배 이상 향상되는 경우가 많습니다. 향후 자세한 아키텍처 및 성능 분석을 제공할 예정이니 기대해 주시기 바랍니다.
툴킷 확장: 새로운 ES|QL 함수
스트링 조작: 더욱 강력한 텍스트 및 URL 처리를 위해 CONTAINS, MV_CONTAINS, URL_ENCODE, URL_ENCODE_COMPONENT, URL_DECODE을(를) 제공합니다.
시계열 및 위치 정보: 유연한 시간 버킷을 위한 TBUCKET, 벡터 연산을 위한 TO_DENSE_VECTOR, 고급 위치 기반 분석을 위한 ST_GEOHASH, ST_GEOTILE, ST_GEOHEX, TO_GEOHASH, TO_GEOTILE, TO_GEOHEX 와 같은 포괄적인 위치 정보 함수 세트를 제공합니다.
날짜 형식: 가독성 높은 날짜 표현을 위해 DAY_NAME, MONTH_NAME을 제공합니다.
이러한 함수는 ES|QL 내에서 직접 데이터를 조작하고 분석할 수 있는 더욱 풍부한 도구 세트를 제공합니다.
내부적인 개선을 통한 성능 및 효율성 향상
Elasticsearch 9.2에는 강조된 기능 외에도 ES|QL 전반에 걸쳐 다양한 성능 최적화가 포함되어 있습니다. RLIKE (LIST) 함수가 여러 개의 유사한 RLIKE 쿼리를 대체하는 경우 푸시다운을 사용하여 속도를 높였습니다. RLIKE (LIST)를 사용하면 이러한 쿼리를 단일 Automaton로 병합하여 여러 Automaton 대신 하나의 Automaton를 적용할 수 있습니다. 또한 인덱스 정렬을 통해 키워드 필드를 더 빠르게 로딩하고 일반적인 쿼리를 최적화하여 ES|QL 쿼리를 그 어느 때보다 효율적으로 실행할 수 있도록 개선했습니다.
오늘 바로 시작해 보세요!
Elasticsearch 9.2는 ES|QL의 획기적인 도약을 의미하며, 데이터 분석 워크플로우에 전례 없는 지원과 유연성을 제공합니다. 이러한 새로운 기능을 살펴보고 그 차이를 경험해 보시기 바랍니다.
Elasticsearch 9.2의 모든 변경 사항과 향상된 기능에 대한 전체 목록은 공식 릴리즈 노트에서 확인하세요. 쿼리 작업을 즐겨보세요!




