8.4 파이프라인 - Pipeline Aggregations
이 문서의 허가되지 않은 무단 복제나 배포 및 출판을 금지합니다. 본 문서의 내용 및 도표 등을 인용하고자 하는 경우 출처를 명시하고 김종민(kimjmin@gmail.com)에게 사용 내용을 알려주시기 바랍니다.
Aggregation 중에는 다른 metrics aggregation의 결과를 새로운 입력으로 하는 pipeline aggregation이 있습니다. pipeline 에는 다른 버킷의 결과들을 다시 연산하는 min_bucket, max_bucket, avg_bucket, sum_bucket, stats_bucket, 이동 평균을 구하는 moving_avg, 미분값을 구하는 derivative, 값의 누적 합을 구하는 cumulative_sum 등이 있습니다. Pipeline aggregation 은 "buckets_path": "<버킷 이름>"
옵션을 이용해서 입력 값으로 사용할 버킷을 지정합니다. 다음은 my_stations 에서 date_histogram을 이용해서 월별로 나눈 passangers 의 합계 sum을 다시 cumulative_sum을 이용해서 누적값을 구하는 예제입니다.
위 결과에서 accum_sum_psg 결과에 sum_psg 값이 다음과 같이 계속 누적되어 더해지고 있는 것을 확인할 수 있습니다.
"accum_sum_psg" : { "value" : 7726.0}
= 7726.0"accum_sum_psg" : { "value" : 20425.0}
= 7726.0 + 12699.0"accum_sum_psg" : { "value" : 31970.0}
= 7726.0 + 12699.0 + 11545.0...
서로 다른 버킷에 있는 값들도 bucket_path에 >
기호를 이용해서 "부모>자녀"
형태로 지정이 가능합니다. 다음은 sum_bucket 을 이용해서 mon>sum_psg 버킷에 있는 passangers 필드값의 합을 구하는 예제입니다.
이번 장에서는 Elasticsearch가 텍스트 검색엔진을 넘어 데이터 분석 엔진으로서의 기능을 가능하게 해 준 Aggregations 에 대해서 알아보았습니다. Aggregations 에는 다양한 값들을 연산하는 metrics, 범위나 종류 별로 값들을 분리하는 bucket, 그리고 다른 aggregation의 결과를 입력으로 받아 새로운 연산을 수행하는 pipeline 이 있습니다. 이 장에서는 주로 사용되는 aggregation들 위주로 기본적인 사용 방법에 대해 설명했습니다. 지금까지 설명한 것 외에도 수많은 종류의 aggregation 들이 있으니 공식 도큐먼트에서 확인 하시기 바랍니다.
Last updated