Downsampling — Rollup을 대체하는 시계열 데이터 압축
Elasticsearch Painless script_score 및 Downsampling 공식 문서 종합 (웹 리서치, 2026) — Elastic 공식 문서(query-dsl-script-score-query, painless-score-context, manage-data/lifecycle/rollup/migrating-from-rollup-to-downsampling) Elastic 공식 문서 Migrating from rollups to downsampling
이 모듈을 다 읽으면
- Rollup이 deprecated된 이유와 Downsampling이 그 자리를 대체하는 방식을 설명할 수 있다
- Downsampling이 성립하기 위한 전제조건(TSDS)을 설명할 수 있다
elasticsearch-learn-07에서 다룬 ILM/데이터 스트림 자동화를 전제로, 오래된 시계열 데이터를 원본 그대로 두지 않고 요약(집계)된 형태로 압축해 저장 공간을 줄이는 Downsampling 기능과, 이 기능이 예전의 Rollup 기능을 어떻게 대체했는지를 정리한다.
Rollup의 문제와 Downsampling의 등장
Rollup은 Elasticsearch 8.11부터 deprecated됐고 이후 버전에서 제거될 예정이다(8.15부터는 기존에 Rollup을 쓰고 있지 않던 클러스터에서 신규 Rollup 작업 생성 자체가 실패한다). Rollup은 별도의 예약 작업(cron 기반 job)을 직접 관리해야 했고, 조회 시에도 일반 검색 API가 아닌 전용 Rollup Search API를 따로 써야 하는 등 운영 부담이 있었다 — Downsampling은 이런 별도 job 관리나 전용 검색 API 없이, 시계열 데이터를 위한 ILM/Data Stream Lifecycle(DSL) 정책에 통합된 형태로 동작한다.
핵심 포인트
- Rollup은 8.11부터 deprecated(향후 제거 예정), Downsampling이 공식 후속 기능
- Rollup은 별도 job 관리+전용 Rollup Search API가 필요했지만, Downsampling은 ILM/DSL에 통합되고 일반 검색 API(및 ES|QL)로 그대로 조회 가능
전제조건 — 반드시 TSDS(시계열 데이터 스트림)여야 한다
Downsampling이 동작하려면 데이터가 반드시 Time Series Data Stream(TSDS, time_series 인덱스 모드)으로 저장돼 있어야 한다 — 매핑에 이미 정의된 dimension(예: 호스트/서비스 식별자 필드)과 metric(예: CPU 사용률처럼 집계 대상이 되는 수치 필드) 지정을 그대로 재사용해 별도 설정 없이 집계 방식을 결정한다. 이 전제조건 때문에 기존 Rollup 사용 사례를 전부 Downsampling으로 그대로 옮길 수 있는 건 아니다 — 시간과 '모든' 차원 기준으로 집계하던 단순한 Rollup 사용 사례만 이관 가능하고, 차원의 일부만 골라 집계하는 등 더 복잡한 Rollup 설정은 Downsampling의 TSDS 전제와 맞지 않아 이관이 안 될 수 있다.
핵심 포인트
- Downsampling은 반드시 TSDS(time_series 인덱스 모드)여야 동작 — 매핑에 정의된 dimension/metric 필드를 그대로 재사용
- '시간+모든 차원' 기준으로 집계하던 단순 Rollup 사용 사례만 이관 가능 — 차원 일부만 집계하는 복잡한 설정은 이관 불가할 수 있음