view
По порядку.
В топик kafka пишется массив json объектов, eg
[{"TS":288676,"VF":23.34,"VS":null},{"TS":288236,"VF":23.31,"VS":null}]
Делаем
CREATE TABLE queue
(
TS Int64
, VF Nullable(Float64)
, VS Nullable(String)
)
ENGINE = Kafka
SETTINGS kafka_broker_list = '192.168.XX.XX:9092',
kafka_topic_list = 'topicQueueTest',
kafka_group_name = 'group1',
kafka_format = 'JSONEachRow';
В результате получаем ошибку вида "db::exception: cannot parse input: expected ']' before:" при попытке вычитки из очереди.
Делаем
CREATE TABLE queue
(
value String
)
ENGINE = Kafka
SETTINGS kafka_broker_list = '192.168.XX.XX:9092',
kafka_topic_list = 'topicQueueTest',
kafka_group_name = 'group1',
kafka_format = 'LineAsString';
При вычитке из очереди видим в value (из примера сверху)
[{"TS":288676,"VF":23.34,"VS":null},{"TS":288236,"VF":23.31,"VS":null}
То есть последний символ обрезается. Это как то неприятно. Видимо engine ожидает в конце значения "\n" и превентивно его обрезает?
я не уверен, что проблема в этом, но в если схема определяет объект, а в кафку пишется массив, то нужно сделать так, чтобы в кафку писались объекты.
Схемы нет в кафке, просто пишется строка - массив json объектов
я имею в виду схему очереди
Есть jsonasstring
Обсуждают сегодня