728x90
반응형
SMALL
aggregation 으로 집계 시 집계로 가져올 수 있는 정보들 (sum, avg, max, min... 등) 을 한번에 가져오는 기능으로 stats 와 extended_stats 가 있다.
stats 를 이용하면 min, max, avg, sum 을 한번에 가져올 수 있고
extended_stats 를 이용하면 stats 에서 가져올 수 있는 정보와 제곱, 분산, 표준편차, 표준편차 구간도 함께 확인 가능하다.
사용 예제는 아래 링크에서 확인 가능하다.
그런데 집계 정보를 가지고 올 때 우리는 bucket 을 이용해서 그룹핑 한 정보들을 가지고 온다.
그렇다면 bucket 으로 그룹핑한 데이터에 대한 stats 정보를 가지고올 수 있을까?
extended_stats_bucket 을 이용하면 가능하다.
{
"query": {
"bool": {
"filter": [
{
"terms": {
"id": ["userid_52"]
}
},
{
"range": {
"date": {
"gte": "2020-09-10",
"lte": "2020-09-13"
}
}
}
]
}
},
"sort":[
{
"date": "desc"
},
{
"rtnCount": "desc"
}
],
"aggs":{
"estats":{
"extended_stats_bucket":{
"buckets_path": "by_date>rtn_sum"
}
},
"by_date": {
"date_histogram": {
"field": "date",
"calendar_interval": "day",
"order": {
"_key":"asc"
}
},
"aggs": {
"rtn_sum":{
"sum":{
"field": "rtnCount"
}
}
}
}
},
"size": 0,
"_source":["id", "name", "dept", "date", "rtnCount"]
}
사용자 userid_52 에 대한 9월 일별 사용량을 가지고 오는 query 에
각 일별 데이터에 대한 평균값과 표준편차등을 알기 위해서 extended_stats_bucket 을 이용했다.
특정 사용자의 일별 평균 사용량을 추이 그래프로 표현함과 동시에
표준편차를 계산하여 표준 편차 이상 또는 표준 편차 + N% 이상 사용량이 늘어날 경우를 캐치하여
평소와 다른 패턴으로 사용량이 늘어났음을 확인할 수 있다.
728x90
반응형
LIST
'IT > Elasticsearch' 카테고리의 다른 글
Limit of total fields [1000] in index has been exceeded (0) | 2022.08.23 |
---|---|
Elasticsearch Mappings - Nested type (0) | 2022.06.23 |
Elasticsearch - Aggregation - date historgram (0) | 2020.09.15 |
Elasticsearch 검색 - Aggregation (0) | 2020.09.14 |
ElasticSearch - kibana (visualize 분석) (0) | 2020.09.09 |