Clickhouse версии 21.12.3.32. Я следую этому PR(https://github.com/ClickHouse/ClickHouse/pull/21850) для обработки неправильных сообщений из темы kafka, но после некоторого исследования я обнаружил, что если одно сообщение содержит неверные данные, весь пакет полученных сообщений не может быть проанализирован, и это может привести к потере данных. .
Таблица двигателей Кафки:
CREATE TABLE default.kafka_engine (message String)
ENGINE = Kafka
SETTINGS
kafka_broker_list = 'kafka:9092',
kafka_topic_list = 'topic',
kafka_group_name = 'group',
kafka_format = 'JSONAsString',
kafka_row_delimiter = '\n',
kafka_num_consumers = 1,
kafka_handle_error_mode ='stream';
Пример неработающего сообщения: [object Object]
Ошибка в первом сообщении: JSON object must begin with '{'.: (at row 1)
.
Ошибка других сообщений: Cannot parse input: expected ']' at end of stream.
.
Можно ли пропустить только это сломанное сообщение и правильно проанализировать другие сообщения в пакете, полученном из темы кафки?
Изменение kafka_format на RawBLOB
устранило мою проблему.