Друид только анализирует первый объект json из списка объектов json, использованного из одного сообщения kafka - PullRequest
0 голосов
/ 06 мая 2019

.NET / Java-приложение генерирует количество объектов json (15.00-90.000) в секунду, которое включает в себя различную информацию о финансовых транзакциях.Эти сообщения отправляются в определенную тему на Apache Kafka, которая будет использоваться Друидом (база данных OLAP).

Ниже приведен поток данных между производителем и потребителем.

Produce    --               Persist/Distribute  --    Consume   
Application (.Net/Java) --> Apache Kafka Topic <--- Apache Druid (Kafka Indexing Service) 

Message Payload (список объектов json)

{"filed1" : "value1" , "field2" : "value1"}
{"filed1" : "value2" , "field2" : "value2"}
...     
{"filed1" : "valueN" , "field2" : "valueN"}

Проблема заключается в том, что Druid только читает(и принимать) только первый объект json, игнорируя остальные без предварительной ошибки или предупреждения.

Примечание. Если объекты json отправляются один за другим, проблем не возникает, однако это неэффективно как для сети, так и для приложений.Кроме того, использование linger.ms и batch.size свойств клиента kafka не является эффективным решением, поскольку число сгенерированных сообщений априори неизвестно.

1 Ответ

0 голосов
/ 08 мая 2019

Наконец, потратив много часов на исследования, я обнаружил, что Druid (0.14) не поддерживает эту функциональность "из коробки" ради так называемой концепции exactly-once.Однако, начиная с версии 0.12, вы сможете написать модуль расширения, который позволит Druid анализировать одно сообщение Kafka на несколько отдельных строк Druid.Пример можно найти здесь .

...