Logo wiki

ElasticSearch의 Time series data stream

May 29, 2025
2 min read
Table of Contents
index

찾아보게 된 이유

Quote

트래픽이 많은 날에는 많은 데이터가 쌓이게 되고, 해당 날짜 구간 로그를 저장하는 인덱스 조회 시 레이턴시가 증가하는 문제였습니다.

로그 수집용 인덱스(Timeseries)와 달리 Data Stream 기반으로 인덱스 템플릿을 구성하여 더 빠른 성능을 내도록 하였으며 …

위 문장을 기술 블로그에서 읽고, Data Stream이 어떤 부분이 성능이 더 좋은지, 왜 해당 부분에서 더 좋은지를 찾으며 알게 된 내용을 정리했다.

용어 정리

Index Template

  • 특정 패턴(logs-, metrics-)에 맞는 인덱스가 생성될 때 미리 정의한 설정(매핑, 설정, ILM 등)을 자동으로 적용하는 템플릿

ILM (Index Lifecycle Management)

  • 인덱스의 수명 주기를 자동으로 관리해주는 기능
  • ex. 7일이 지난 인덱스는 read-only로 전환, 5GB가 넘는 인덱스는 롤오버(새로운 인덱스로 전환) 등

Backing Indices alt text

  • Data Stream은 데이터를 물리적으로 저장할 때 하나의 인덱스가 아니라, 내부적으로 여러 개의 인덱스를 시점(time)이나 용량 기준으로 분리하여 저장
  • 사용자는 몰라도 되지만, 실제로는 logs-web-000001, logs-web-000002 이런 식으로 인덱스들이 생성됨

Time series data stream (TSDS) alt text

  • 시계열 데이터를 저장할 때 성능 및 저장 효율 면에서 최적화 되어있다.
  • 일반적인 Data stream 과의 차이점 중 하나는 TSDS는 일정 기간별로, 일반적인 Data Stream은 특정 age 또는 사이즈별로 인덱싱이 적용된다.

이해한 내용

  • 기술 블로그에 따르면, Time series와 일반 Data stream 간에 성능 차이가 발생했다. Time series는 일정한 시간 구간 단위로 인덱스가 분할되는 반면, 일반 Data stream은 데이터 크기별로 인덱스가 분할될 수 있다. 이로 인해 트래픽이 몰린 기간의 데이터 조회 시 Data stream의 조회 범위가 더 작아져 결과적으로 조회 성능이 향상되었다고 이해했다.

다음에 해보면 좋을 것

  • 링크 참고해서 실습해보기

참고 링크