Elastic Search - Metric Aggregation
도큐먼트 안에서 조합을 통해 어떠한 값을 도출하는 방법
Metric Aggregation은 산술적인 부분에 사용된다
xxxxxxxxxx
curl -XPOST -H "Content-Type:application/json" --data-binary @basket.json
파일의 내용을 넣는 것이니 `-data-binary
을 쓴다.
농구 데이터
basket.json
의 내용
xxxxxxxxxx
{
"index" :
{
"_index": "basketball",
"_type": "record",
"_id": "1"
}
}
{
"team" : "Chicago Bulls",
"name" : "Michael Jordan",
"points": 30,
"rebounds": 3,
"assists": 4,
"submit_date" : "1996-10-11"
}
{
"index" :
{
"_index": "basketball",
"_type": "record",
"_id": "2"
}
}
{
"team" : "Chicago Bulls",
"name" : "Michael Jordan",
"points": 30,
"rebounds": 5,
"assists": 8,
"submit_date" : "1996-10-11"
}
산술적인 값 도출을 위해
avg_points_aggs.json
을 작성한다.
파일이름에서 알 수 있듯 평균 값을 도출해낼 것이다.
xxxxxxxxxx
{
"size": 0,
"aggs": {
"avg_score": {
"avg": {
"field": "points"
}
}
}
}
도큐먼트에서 points 값들의 평균을 나타낸다.
xxxxxxxxxx
curl -XGET localhost:9200/_search?pretty -H "Content_Type:application/json" --data-binary @avg_points_aggs.json
그럼 아래와 같은 결과가 출력된다.
x
{
"took" : 8,
"timed_out" : false,
"_shards" : {
"total" : 15,
"successful" : 15,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 26,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"avg_score" : {
"value" : 25.0
}
}
}
'avg_points_aggs.json' 에서 "avg" 는 평균을 나타내게 한다.
sum , max, min , count 도 사용가능하다.
"avg_score"는 출력될때 무슨 값인질 나타내는 것이다.
그대로 이름이기에 산술 결과에 영향을 미치진 않는다.
그럼 sum. avg .... 등 산술연산들을 한번에 보기 위한 search를 해본다.
먼저 바이너리 데이터로 stats_points_aggs.json
을 작성해본다.
xxxxxxxxxx
{
"size": 0,
"aggs" : {
"stats_score" : {
"stats" : {
"field": "points"
}
}
}
}
xxxxxxxxxx
curl -XGET localhost:9200/_search?pretty -H "Content-Type:application/json" --binary-data @stats_points_aggs.json
출력결과
xxxxxxxxxx
{
"took" : 4,
"timed_out" : false,
"_shards" : {
"total" : 15,
"successful" : 15,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 26,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"roharon_score" : {
"count" : 2,
"min" : 20.0,
"max" : 30.0,
"avg" : 25.0,
"sum" : 50.0
}
}
}
위와 같이 출력된다.
다음 Aggregation은 Bucket Aggregation.
'Back-end' 카테고리의 다른 글
Kibana - Visualization (0) | 2018.09.05 |
---|---|
Elastic Search - Bucket Aggregation (0) | 2018.09.01 |
ElasticSearch Search 데이터 조회하기 (0) | 2018.08.30 |
ElasticSearch Mapping (0) | 2018.08.30 |
Elastic Search 벌크 (0) | 2018.08.29 |
댓글