BaeBox

Aggregation 본문

개발 관련/DB

Aggregation

배모씨. 2019. 11. 3. 20:42
반응형

(출처 : https://www.elastic.co/kr/blog/found-elasticsearch-aggregations)

Aggregation 의 사전적 정의 : 집합, 집성, 집합체.

ElasticSearch 에서의 Aggregation : 특정 단위로 데이터를 묶어서 뽑아오는 방법. SQL 의 group by 와 대응한다고 생각하자.

 

아래에서 내가 예시로 적을 쿼리들은 아래 링크에서 데이터를 받을 수 있다. 우측에서 ElasticSearch 버전을 선택할 수 있다. 5.x ,6.x , 7.x 버전의 index 생성 쿼리가 조금씩 다르니, 본인의 ElasticSearch 버전을 유의해서 받아야 한다.

https://www.elastic.co/guide/en/kibana/7.1/tutorial-load-dataset.html

 

Loading sample data | Kibana Guide [7.1] | Elastic

If security is enabled, you must have the all Kibana privilege to run this tutorial. You must also have the create, manage read, write, and delete index privileges. See Security Privileges for more information.

www.elastic.co


Aggregation(이하 agg) 크게 구분하면 네 종류가 있다. 

  • Metrics : 산술 계산에 관련된 aggs. (averages, stats, min, max, percentiles, etc...)
  • Buckets : 특정 단위로 묶는 aggs. (histograms, ranges, distances, significant terms, etc...)
  • Pipelines : 다른 집계 및 관련 metric의 결과를 집계하는 agg
  • Matrix : 정해진 dataset을 출력하는 aggs. Scripting 을 지원하지 않는다. 

글 최하단에 Aggregation 공식 문서를 링크해 두었으니 자세하게 알아보고 싶으신 분들은 거기서 보시길 바란다. 

Aggregation 을 사용하는 방법은 아래와 같다.

공식 문서 들어가 보니까 Structure 라고 해서 자세하게 적혀었다.

근데 적혀있다고 쓸 수 있는게 아니란게 함정

Aggregation Structure ( 출처 : 공식문서)
쌈마이한 실제 쿼리

위의 이미지들은 쿼리의 형태이고, 

실제로는 REST API를 통해 요청을 날린다. 

요렇게! bash curl을 날린 이유는 매번 header 를 추가해주기 귀찮아 아래와 같은 코드를 작성하였기 때문이다.
Shell script 만쉐이

 


 

metric, bucket, pipeline, matrix 쿼리 
es-query.json
0.00MB
위 쿼리를 날린 결과는 이렇게 나온다.
es-query-result.json
0.00MB

데이터를 그대로 펴서 올리기에는 가독성이 너무 떨어지는지라, 간단하게 요약 이미지와 파일로 올린다.

 


https://www.elastic.co/guide/en/elasticsearch/reference/7.4/search-aggregations.html

 

Aggregations | Elasticsearch Reference [7.4] | Elastic

When working with scripts, the lang and params settings can also be defined. The former defines the scripting language which is used (assuming the proper language is available in Elasticsearch, either by default or as a plugin). The latter enables defining

www.elastic.co

https://www.elastic.co/kr/blog/found-elasticsearch-aggregations

 

Elasticsearch's New Aggregations

Elasticsearch's faceting feature has made it extremely popular not just for realtime search, but also for analytics. With its new aggregations framework, it'll take you even further.

www.elastic.co

 

반응형

'개발 관련 > DB' 카테고리의 다른 글

Scroll  (0) 2020.02.07
ElasticSearch Cluster 구성  (0) 2019.11.03
ElasticSearch - 설치  (0) 2019.11.03
ElasticSearch - CRUD  (0) 2019.11.03
ElasticSearch 구조 및 데이터 구조.  (0) 2019.11.03
Comments