Aggregations을 수행할 때 사용할 데이터
Sub Aggregations
aggregation을 통해 집계를 내고 그 결과에서 세부적인 집계를 위해 Sub Aggregation을 지원하고 있습니다.
level 필드별 duration의 평균 시간 구하기
우리는 데이터를 가져오는 것이 목적이 아닌 Aggregations을 수행하는 것이 목적이기 때문에 "size"를 0으로 설정하였습니다.
api | POST http://localhost:9200/test-log-index-2021-09-12/_search |
header | content-type: application/json |
body | { "size": 0, "query": { "match_all": {} }, "aggs": { "byLevel": { "terms": { "field": "level" }, "aggs": { "avgDuration": { "avg": { "field": "duration" } } } } } } |
결과 보기
level의 "info"는 9개가 있으며 9개의 duration 평균은 167.777777입니다.
level의 "warn"는 6개가 있으며 6개의 duration 평균은 333.33333입니다.
level의 "debug"는 5개가 있으며 5개의 duration 평균은 258입니다.
level별 action 종류 및 개수 측정하기
우리는 데이터를 가져오는 것이 목적이 아닌 Aggregations을 수행하는 것이 목적이기 때문에 "size"를 0으로 설정하였습니다.
api | POST http://localhost:9200/test-log-index-2021-09-12/_search |
header | content-type: application/json |
body | { "size": 0, "query": { "match_all": {} }, "aggs": { "byLevel": { "terms": { "field": "level" }, "aggs": { "byAction": { "terms": { "field": "action" } } } } } } |
결과 보기
{ "took": 4, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 20, "relation": "eq" }, "max_score": null, "hits": [] }, "aggregations": { "byLevel": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": "info", "doc_count": 9, "byAction": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": "close_file", "doc_count": 4 }, { "key": "open_file", "doc_count": 4 }, { "key": "open_socket", "doc_count": 1 } ] } }, { "key": "warn", "doc_count": 6, "byAction": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": "close_file", "doc_count": 2 }, { "key": "open_file", "doc_count": 2 }, { "key": "close_socket", "doc_count": 1 }, { "key": "open_socket", "doc_count": 1 } ] } }, { "key": "debug", "doc_count": 5, "byAction": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": "close_file", "doc_count": 2 }, { "key": "open_file", "doc_count": 2 }, { "key": "close_socket", "doc_count": 1 } ] } } ] } } } |
"info"는 9개이며 그중에 "close_file"는 4개, "open_file"은 4개, "open_socket"은 1개 입니다.
"warn"는 6개이며 그중에 "close_file"는 2개, "open_file"은 2개, "open_socket"은 1개, "close_socket"은 1개입니다.
"info"는 9개이며 그중에 "close_file"는 2개, "open_file"은 2개, "close_socket"은 1개입니다.
'Elasticsearch > Elasticsearch 데이터' 카테고리의 다른 글
Elasticsearch copy_to로 여러 필드의 데이터를 하나로 검색 (1) | 2023.10.01 |
---|---|
Elasticsearch Aggregations#3 terms, ranges, histogram, date_range (0) | 2021.09.17 |
Elasticsearch Aggregations#2 cardinality, percentiles, percentile_ranks (0) | 2021.09.15 |
Elasticsearch Aggregations#1 min, max, sum, avg, stats (0) | 2021.09.13 |
Elasticsearch 검색하기#3 match, term, range 쿼리 (0) | 2021.09.10 |