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 |