Я настраиваю новый поток приема кафки в друид. Это работает нормально, но теперь мне нужно сделать поиск во время приема пищи. Я использую apache-druid-0.13.0.
Я создал функцию Registered Lookup, которая находит необязательный referral_id
с помощью promo_id
. Когда я делаю интроспекцию поиска для этой функции, она работает нормально.
Теперь я хочу сохранить результат этого поиска (referral_id
) в моем источнике данных. Поиск не может быть выполнен во время запроса.
В моей спецификации размеров я определил размер, как указано ниже.
{
"type" : "extraction",
"dimension" : "promo_id",
"outputName":"referral_id",
"outputType": "long",
"replaceMissingValueWith":"0",
"extractionFn": {
"type": "registeredLookup",
"lookup": "referral_promoter"
}
}
Это не работает. Я вижу эту ошибку в логах:
WARN [KafkaSupervisor-TEST6] org.apache.druid.data.input.impl.DimensionSchema - найдено нулевое или пустое измерение
«2019-01-22T10: 08: 39,784 ОШИБКА [KafkaSupervisor-TEST6] org.apache.druid.indexing.kafka.supervisor.KafkaSupervisor - KafkaSupervisor [TEST6] не удалось обработать уведомление: {class = org.apache.druid.indexing. kafka.supervisor.KafkaSupervisor, exceptionType = class java.lang.IllegalArgumentException, exceptionMessage = Исключение реализации значения [простой тип, класс org.apache.druid.data.input.impl.DimensionsSpec]: пусто (через цепочку ссылок: org.apache .druid.data.input.impl.StringInputRowParser ["parseSpec"] -> org.apache.druid.data.input.impl.JSONParseSpec ["sizesSpec"]), noteClass = RunNotice}
"java.lang.IllegalArgumentException: не удалось создать значение [простой тип, класс org.apache.druid.data.input.impl.DimensionsSpec]: null (через цепочку ссылок: org.apache.druid.data.input.impl.StringInputRowParser [ "parseSpec"] -> org.apache.druid.data.input.impl.JSONParseSpec [ "dimensionsSpec"])
...
Вызывается: java.lang.NullPointerException
Понятия не имею, как это решить. Что я делаю неправильно? Я пробовал различные конфигурации измерений, но ни одна не работала.