Home ElasticSearch
Post
Cancel

ElasticSearch

Aggregations

Q. SQL의 distinct와 비슷한 효과를 내려면 어떤 집계를 사용해야할까? 해당 집계에서 precision_threshold값은 무엇을 의미하는가? A. 카디널리티 집계(Cardinality Aggregation) 정확도 수치를 의미하며 기본값은 3000이다. 높을수록 정확하며 리소스도 많이 소모한다.

Q. 금요일날 판매된 제품들의 아이디(키워드)를 중복 제거하여 구하라 (데이터는 예제와 동일하게 kibana_sample_data_ecommerce 사용, field명은 products._id.keyword) A. 검색 후 버킷집계 사용 GET kibana_sample_data_ecommerce/_search { “size”:0, “query”: { “term”: { “day_of_week”: { “value”: “Friday” } } }, “aggs”: { “cardi_aggs”:{ “terms”:{ “field” : “products._id.keyword” } } } }

Q. 부모집계와 형제집계란 무엇인가? A. 파이프라인 집계(pipeline aggregation, 이전 집계결과를 입력으로 사용하는 집계)의 유형 부모집계(parent-aggregation) : 단독으로 사용할 수 없으며 기존집계 내부에서 작성된다. 형제집계(sibling-aggregation) : 기존집계 내부가 아니라 외부에서 수행되는 집계를 말한다.

메트릭집계

[평균/중간값] GET kibana_sample_data_ecommerce/_search { “size”:0, “aggs”:{ “stats_aggs”:{ “avg”:{ “field” : “products.base_price” } } } }

[유니크한 값 개수 / 카디널리티 집계] GET kibana_sample_data_ecommerce/_search { “size”:0, “aggs”:{ “cardi_aggs”:{ “cardinality”:{ “field” : “day_of_week”, “precision_threshold”: 100 } } } }

버킷집계

파이프라인집계

This post is licensed under CC BY 4.0 by the author.