У меня проблемы с получением правильных отдельных чисел из модуля Theta Sketch DataSketches.
Используемая мной спецификация приема выглядит так:
"granularitySpec" :
{
"type" : "uniform",
"segmentGranularity" : "HOUR",
"queryGranularity" : "HOUR",
"intervals": ["${hourToProcess.intervalFormat}"]
}
..........
"dimensionsSpec" :
{
"dimensions" : [
"dimension1",
"dimension2",
......
"dimensionN"
]
}
..........
"timestampSpec" :
{
"format" : "${hourToProcess.ingestionDateFormat}",
"column" : "eventTimestamp"
}
..........
"metricsSpecs" :
[
.........,
{"type": "thetaSketch", "name": "uniqueUsers", "fieldName": "uniqueUsers"}
........
]
Поле uniqueUsers
a String.
Если я запрашиваю Друида следующим образом без какой-либо операции фильтрации или группировки
{
"type" : "thetaSketch",
"fieldName" : "uniqueUsers",
"isInputThetaSketch": true
}
, результаты верны.Но если я выполняю какую-либо фильтрацию или группировку по измерениям
"filter": {
"type": "selector",
"dimension": "dimensionX",
"value": "1"
}
, результаты значительно превышают ожидаемые значения.
Что-то не так внутри Theta Sketch или моей конфигурации?
Я также хочу добавить, что если я использую DataSketches HLL вместо ThetaSketch, я получаю гораздо лучшие результаты.