[VELODB.IO]
DATANOMIX.PRO // БЛОГ // DATA ENGINEERING

Apache Doris Kafka Connector

Практический гайд по загрузке событий из Kafka в Doris: standalone, distributed, SSL, DLQ и schema evolution.

Подготовлено:
Datanomix.pro
Время чтения:
~14 мин
СОДЕРЖАНИЕ:
01 / Когда нужен Kafka Connector
02 / Совместимость версий
03 / Быстрый старт (standalone)
04 / Production (distributed)
05 / SSL и безопасность
06 / DLQ и обработка ошибок
07 / Schema evolution и Debezium
08 / Best practices
FAQ

1. Когда действительно нужен Doris Kafka Connector

Если у вас уже есть Kafka Connect и нужно стабильно доставлять потоковые данные в Apache Doris, официальный Doris Sink Connector — самый быстрый путь. Он закрывает базовую интеграцию без кастомного consumer-кода, работает через Stream Load и позволяет управлять пайплайном через стандартный REST API Kafka Connect.

Подход особенно полезен, когда важны предсказуемость эксплуатации, масштабирование через distributed режим и минимальная «самописная» поддержка команды.

2. Совместимость версий

Перед запуском проверьте матрицу совместимости для вашей связки Kafka, Doris и Java. На практике чаще всего встречается стек Kafka 2.4+, Doris 2.0+ и Java 8 для актуальных версий коннектора.

// MINIMAL CONNECTOR CONFIG
name=test-doris-sink connector.class=org.apache.doris.kafka.connector.DorisSinkConnector topics=topic_test doris.topic2table.map=topic_test:test_kafka_tbl doris.urls=10.10.10.1 doris.http.port=8030 doris.query.port=9030 doris.user=root doris.password= doris.database=test_db value.converter=org.apache.kafka.connect.json.JsonConverter value.converter.schemas.enable=false

3. Быстрый старт: standalone режим

  1. Положите JAR коннектора в каталог plugins Kafka Connect.
  2. Настройте connect-standalone.properties (broker, plugin.path, poll interval).
  3. Создайте файл doris-connector-sink.properties с параметрами sink.
  4. Запустите connect-standalone.sh.

Standalone подходит для локальной проверки, PoC и отладки. Для production обычно используют distributed.

4. Production: distributed режим

В distributed режиме вы получаете отказоустойчивость, масштабирование и стандартные операции через REST: создание коннектора, пауза, резюм, рестарт задач и удаление.

При первом старте Kafka Connect создаст служебные топики config.storage.topic, offset.storage.topic и status.storage.topic.

5. SSL и безопасное подключение

Для SSL-кластера Kafka задайте truststore как для worker, так и для embedded consumer sink-коннектора.

Частая причина «подвисаний» ingestion: слишком маленький max.poll.interval.ms.

6. DLQ: очередь необработанных сообщений

По умолчанию ошибки преобразования и записи могут остановить коннектор. Для production лучше заранее выбрать стратегию: fail-fast или tolerate-and-route с DLQ.

7. Schema evolution и Debezium

При CDC-сценариях с Debezium схема источника может меняться. Не все изменения автоматически маппятся в таблицу Doris.

Практика: сначала добавьте новые колонки в целевую таблицу Doris, затем перезапустите connector-task.

8. Best practices для production

  • Используйте distributed mode и мониторинг статусов connector/task.
  • Разделяйте business topics и DLQ topics, задавайте отдельные retention-политики.
  • Профилируйте буферы (buffer.count.records, buffer.size.bytes, buffer.flush.time) под throughput.
  • Фиксируйте правила schema evolution как операционный runbook.
  • Регулярно проверяйте lag, error rate и фактическую задержку доставки.

FAQ

Какой режим выбрать для продакшна?

Distributed mode. Standalone подходит для тестов и локальной отладки.

Можно ли работать с SSL Kafka?

Да. Настройте truststore и для Kafka Connect worker, и для embedded consumer sink-коннектора.

Что делать с «плохими» сообщениями?

Используйте DLQ, чтобы не останавливать поток и разбирать ошибки отдельно.

Нужен надежный Kafka -> Doris pipeline под production?

./ЗАПРОСИТЬ_АРХИТЕКТУРНУЮ_СЕССИЮ.sh
© 2026 DATANOMIX.PRO — ЭКСКЛЮЗИВНЫЙ ПАРТНЁР VELODB В ЦЕНТРАЛЬНОЙ АЗИИ
VeloDB — Data Engineering ГЛАВНАЯ