오픈소스/ELK stack

[ElasticSearch] 어그리게이션 (Aggregation)

닝닝깅 2021. 6. 30. 21:24

어그리게이션(Aggregation)

: 갖고 있는 document 중에서 어떤 값을 조합해서 값을 내는 방법

 

매트릭 어그리게이션 (Metric Aggregation)

: 산수를 사용하여 값을 내는 aggregation

 

1. aggregation 파일을 확인한다

{
	"size" : 0, //보고싶은 값만 보기 위해 size는 0으로
   	 "aggs" : {
    		"avg_score" : {                      //aggregatino 이름
            		"avg" : {                    //사용할 aggregation
                    		"field" : "points"   //사용할 field값
                    }
            }
     }
}

 

field중에서 points값을 사용하여 평균을 낸 것을 도출시키는 avg_points_aggs.json 파일

 

avg자리에 count / min / max / avg / sum 모두 사용 가능하다.

한꺼번에 모든 결과값을 알고 싶다면 stats을 사용한다

 

2. aggregation파일을 사용하여 원하는 값을 도출한다.

$ curl -XGET localhost:9200/_search?pretty --data-binary @avg_points_aggs.json(파일이름)

 

버켓 어그리게이션 (Bucket Aggregation)

: 주어진 조건으로 분류된 버킷을 만들고 , 각 버킷에 소속되는 document를 모아 그룹으로 구분하는 aggregation

 

1. aggregation 파일을 확인한다.

terms_aggs.json파일

{
	"size" : 0, //보고싶은 값만 보기 위해 size는 0으로
   	 "aggs" : {
    		"players" : {                      //aggregatino 이름
            		"terms" : {                //사용할 aggregation
                    		"field" : "team"   //사용할 field값
                    }
            }
     }
}

 

2. aggregation파일을 사용하여 원하는 값을 도출한다.

$ curl -XGET localhost:9200:/_search?pretty --data-binary @terms_aggs.json