Timestamp Min/Max 애그리게이터

Timestamp Min/Max 애그리게이터 (Timestamp Min/Max aggregators)

이 확장 기능은 이벤트의 최소/최대 시간을 훨씬 정밀하게 계산할 수 있게 해줘요. 쿼리 granularity와 동일하게 희소(sparse)한 granularity를 갖는 __time 컬럼보다 세밀한 시간 계산이 필요할 때 유용해요.

출처: 문서

본문

이 Apache Druid 확장 기능을 사용하려면 extensions load list에 druid-time-min-max를 포함하세요.

이 애그리게이터들은 주어진 이벤트들의 min/max 시간을, 쿼리 granularity와 동일하게 희소한 granularity를 갖는 __time 컬럼보다 더 정밀하게 계산할 수 있게 해줘요. 이 기능을 사용하려면 인덱싱 시점에 timeMin 또는 timeMax 애그리게이터를 포함해야 해요. 이들은 timestamp로 변환 가능한 모든 컬럼에 적용할 수 있는데, 여기에는 Long, DateTime, Timestamp, String 타입이 포함돼요.

예를 들어, 데이터 세트가 timestamp, dimension, metric 값으로 구성되어 있다고 가정해볼게요.

2015-07-28T01:00:00.000Z  A  1
2015-07-28T02:00:00.000Z  A  1
2015-07-28T03:00:00.000Z  A  1
2015-07-28T04:00:00.000Z  B  1
2015-07-28T05:00:00.000Z  A  1
2015-07-28T06:00:00.000Z  B  1
2015-07-29T01:00:00.000Z  C  1
2015-07-29T02:00:00.000Z  C  1
2015-07-29T03:00:00.000Z  A  1
2015-07-29T04:00:00.000Z  A  1

인제이션 시점에 timeMin과 timeMax 애그리게이터를 다른 애그리게이터처럼 포함할 수 있어요.

{
    "type": "timeMin",
    "name": "tmin",
    "fieldName": "<field_name, typically column specified in timestamp spec>"
}
{
    "type": "timeMax",
    "name": "tmax",
    "fieldName": "<field_name, typically column specified in timestamp spec>"
}

name은 애그리게이터의 출력 이름으로 어떤 문자열이든 될 수 있어요. fieldName은 일반적으로 timestamp spec에 지정된 컬럼이지만, timestamp로 변환 가능한 어떤 컬럼이든 될 수 있어요.

결과를 조회하려면 동일한 timeMin과 timeMax 애그리게이터를 사용해요.

{
  "queryType": "groupBy",
  "dataSource": "timeMinMax",
  "granularity": "DAY",
  "dimensions": ["product"],
  "aggregations": [
    {
      "type": "count",
      "name": "count"
    },
    {
      "type": "timeMin",
      "name": "<output_name of timeMin>",
      "fieldName": "tmin"
    },
    {
      "type": "timeMax",
      "name": "<output_name of timeMax>",
      "fieldName": "tmax"
    }
  ],
  "intervals": [
    "2010-01-01T00:00:00.000Z/2020-01-01T00:00:00.000Z"
  ]
}

그러면 결과에는 쿼리 granularity보다 더 세밀한 timestamp의 min/max 값이 담겨요.

2015-07-28T00:00:00.000Z A 4 2015-07-28T01:00:00.000Z 2015-07-28T05:00:00.000Z
2015-07-28T00:00:00.000Z B 2 2015-07-28T04:00:00.000Z 2015-07-28T06:00:00.000Z
2015-07-29T00:00:00.000Z A 2 2015-07-29T03:00:00.000Z 2015-07-29T04:00:00.000Z
2015-07-29T00:00:00.000Z C 2 2015-07-29T01:00:00.000Z 2015-07-29T02:00:00.000Z

더 알아보기 (Learn more)