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