본문 바로가기

Elastic Stack

[elasticsearch] aggregation

aggregation = rdbms 의 group by !

 

1. Metric Aggregation

https://esbook.kimjmin.net/08-aggregations/8.1-metrics-aggregations

 

 

[이슈]

elastalert에서 metritbeat 데이터를 metric aggregation로 알람을 설정하니 field 들의 값이 missing value 로 노티됨 ㅜ

-> https://github.com/Yelp/elastalert/issues/1260

 alert 필드에 집계 대상 필드만 가능 집계 대상 외 필드 접근 불가 ㅜ

 

 

2. bucket aggregation

https://esbook.kimjmin.net/08-aggregations/8.2-bucket-aggregations

 

[이슈] aggregation 값과 실제값이 왜 다름?

검색하는 인덱스가 다중 샤드로 분산 저장 형태일 경우 샤드별로 집계하고 각각의 결과값을 합쳐서 최종집계하기 때문에 실제 데이터와 차이가 있을 수 있다. 

ex) 아래와 같은 구조로 분산저장된 데이터에 terms aggregation  size:3 (top3) 를 집계할 때

샤드1 샤드2 샤드3
a(100) c(100) b(80)
e(80) a(50) d(70)
b(40) e(30) a(50)
c(30) b(20) c(20)
d(20) d(10) e(10)

- 샤드별 top3 집계

샤드1 샤드2 샤드3
a(100) c(100) b(80)
e(80) a(50) d(70)
b(40) e(30) a(50)
c(30) b(20) c(20)
d(20) d(10) e(10)

- 샤드별 계산한 합계 집계와 실제 결과의 값이 다르게 집계된다.

집계결과 실제결과
200 - 120 - 100- 70 - 30 200 - 140 - 150 - 110 - 120
a(200) a(200)
b(120) c(150)
c(100) b(140)

 

'Elastic Stack' 카테고리의 다른 글

[elasticsearch] Open shard limit  (0) 2022.01.04
[elasticsearch] 2개의 index를 병합하는 법  (0) 2021.12.28
데이터 migration(snapshot)  (0) 2021.11.16
[elasticsearch] red index 살리기  (0) 2021.11.11
ELK vs EFK  (0) 2021.10.15