아무거나

메트릭 어그리게이션(Metric Aggregation) 본문

Data Store/Elastic Stack

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

전봉근 2019. 5. 9. 15:15
반응형

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

* elasticsearch안에있는 도큐먼트안에서 조합을 통해서 어떠한 값을 도출할때 쓰는 방법중 하나이다.

  그중 메트릭 어그리게이션은 평균, 최소값, 최대값 등.. 산술값을 구할때 쓴다.

 

1. vi simple_basketball.json

#[data내용]
{ "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" : 20,"rebounds" : 5,"assists" : 8, "submit_date" : "1996-10-11"}

 

2. 1번의 데이터를 도큐먼트에 bulk로 입력

   - curl -XPOST 'localhost:9200/_bulk' --data-binary @simple_basketball.json

 

3. 평균 구하는 aggregation파일 작성 avg_points_aggs.json

# [data내용]
{
    "size" : 0,
    	"aggs" : {
          "avg_score" : {
          "avg" : {
            "field" : "points"
          }
    	}
    }
}

 

4. curl -XGET localhost:9200/_search?pretty --data-binary @avg_points_aggs.json  // 평균값이 나올것이다. 25

 

5. 최대값을 구할꺼면 3번의 avg_points_aggs에 avg를 max로 변경만 해주면 된다. max_points_aggs.json 파일을 만들어 테스트를 해보자

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

 

6. 5번처럼 최소값도 같은식으로 구하면된다. avg를 min으로 바꾸면됨.

 

7. 두개의 합을 구하려면 avg를 sum으로 변경하자.

 

8. 이 모든것을 한번에 결과를 도출하는 방법[stats]

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

# [json data 내용]
{
	"size" : 0,
	"aggs" : {
      "stats_score" : {
        "stats" : {
          "field" : "points"
        }
      }
	}
}

   - 모든 유형의 결과값이 나온다.   ​

반응형

'Data Store > Elastic Stack' 카테고리의 다른 글

모든 인덱스 삭제 및 방어  (0) 2019.05.13
버킷 어그리게이션(Bucket Aggregation)  (0) 2019.05.10
데이터 조회  (0) 2019.05.09
MAPPING (SCHEMA)  (0) 2019.05.08
벌크(BULK) INSERT  (0) 2019.05.08
Comments