본문 바로가기
IT/Elasticsearch

Elasticsearch - Aggregation - date historgram

by 최고영회 2020. 9. 15.
728x90
반응형
SMALL

일별, 주별, 월별 등 일정 기간별 집계 자료가 필요한 경우에 유용하게 사용할 수 있는

calendar_interval 에 대해서 정리 해 본다.

histogram 집계는 bucket 집계 하위 집계 개념 중 하나인데

range 집계와 마찬가지로 숫자의 범위를 집계한다. 지정한 수치를 범위로 하여 산정하며 간격 내 속하는 document 들에 대한 집계를 수행한다.

date_histogram 집계는 histogram 집계와 유사하지만 숫자가 아닌 날짜를 대상으로 한다.

calendar_interval 키워드를 통해 주로 사용하는 단위에 대해서 사용할 수 있으며

- m(minute), h(hour), d(day), w(week), M(month), q(quarter), y(연)

- ex) "calendar_interval": "1M" or "calendar_interval": "month"

fixed_interval 키워드를 통해 자유롭게 단위를 지정할 수도 있다.

- ms(milliseconds), s(second), minutes(m), hours(h), days(d)

- ex) "fixed_interval": "30d"

일별 사용량 추이는 아래와 같이 알 수 있다.

{ 
  "aggs": { 
    "by_week": { 
      "date_histogram": { 
        "field": "date", 
        "calendar_interval": "day", 
        "order": { 
          "_key":"asc" 
        } 
      }, 
      "aggs": { 
        "rtn_avg":{ 
          "avg":{ 
            "field": "rtnCount" 
          } 
        }, 
        "rtn_sum":{ 
          "sum":{ 
            "field": "rtnCount" 
          } 
        } 
      } 
    } 
  } 
}

위의 calendar_interval 의 값을 week 으로 하면 주별, month로 하면 월별 집계가 된다.

 

편리하다.

728x90
반응형
LIST