MomentSketch 근사 분위수 모듈
MomentSketch 근사 분위수 모듈
druid-momentsketch 확장은 momentsketch 라이브러리를 사용해 근사 분위수 질의를 위한 집계기를 제공해요. 전통적인 스케치보다 적은 공간과 집계 시간 오버헤드로 거친(coarse) 분위수 추정을 제공해요.
출처: 문서
본문
이 모듈은 momentsketch 라이브러리를 사용한 근사 분위수 질의용 집계기를 제공해요. momentsketch는 전통적인 스케치보다 적은 공간과 집계 시간 오버헤드로 거친 분위수 추정을 제공하며, 계산된 통계에서 분포를 재구성해서 count와 sum에 가까운 성능에 도달해요.
이 Apache Druid 확장을 사용하려면 extensions load list에 포함해 주세요.
Aggregator
집계의 결과는 원시 데이터에서 만들었거나 세그먼트에서 읽어온 모든 스케치의 합집합인 momentsketch예요.
momentSketch 집계기는 원시 데이터에 대해 동작하고, momentSketchMerge 집계기는 미리 계산된 스케치를 집계할 때 사용해야 해요.
{
"type" : <aggregator_type>,
"name" : <output_name>,
"fieldName" : <input_name>,
"k" : <int>,
"compress" : <boolean>
}
| 속성 | 설명 | 필수 |
|---|---|---|
type |
원하는 집계기 타입. "momentSketch" 또는 "momentSketchMerge". |
yes |
name |
계산의 출력(결과) 이름을 위한 String. | yes |
fieldName |
입력 필드의 이름을 위한 String (스케치나 원시 숫자 값을 담을 수 있어요). | yes |
k |
스케치의 정확도와 크기를 결정하는 파라미터. 높은 k는 더 높은 정확도를 의미하지만 스케치를 저장할 공간이 더 필요해요. 일반적으로 사용 가능한 범위는 [3,15]. | no, 기본값 13 |
compress |
집계기가 arcsinh로 숫자 값을 압축할지 여부 플래그. 왜곡(skewed)되고 긴 꼬리(long-tailed) 분포에 대한 견고성을 높일 수 있지만, 더 균일한 분포에서는 정확도를 약간 낮춰요. | no, 기본값 true |
Post Aggregators
사용자는 momentSketch 또는 momentSketchMerge 집계기가 만든 스케치에 momentSketchSolveQuantiles post-aggregator를 사용해 분위수 집합을 조회할 수 있어요.
{
"type" : "momentSketchSolveQuantiles",
"name" : <output_name>,
"field" : <reference to moment sketch>,
"fractions" : <array of doubles in [0,1]>
}
사용자는 분포의 min/max도 조회할 수 있어요.
{
"type" : "momentSketchMin" | "momentSketchMax",
"name" : <output_name>,
"field" : <reference to moment sketch>,
}
Example
수집 시점에 스케치를 미리 집계하는 질의의 예로, 수집 시 다음과 같은 집계기를 설정할 수 있어요.
{
"type": "momentSketch",
"name": "sketch",
"fieldName": "value",
"k": 10,
"compress": true,
}
그리고 다음 집계기 + post-aggregator로 질의할 수 있어요.
{
"aggregations": [{
"type": "momentSketchMerge",
"name": "sketch",
"fieldName": "sketch",
"k": 10,
"compress": true
}],
"postAggregations": [
{
"type": "momentSketchSolveQuantiles",
"name": "quantiles",
"fractions": [0.1, 0.5, 0.9],
"field": {
"type": "fieldAccess",
"fieldName": "sketch"
}
},
{
"type": "momentSketchMin",
"name": "min",
"field": {
"type": "fieldAccess",
"fieldName": "sketch"
}
}]
}
더 알아보기 (Learn more)
- Aggregations와 Post Aggregations 문서에서 집계 전반을 참고할 수 있어요.
- 다른 근사 분위수 스케치 확장으로 DDSketch와 T-Digest도 살펴보세요.