Интеграция Kafka с ClickHouse
Apache Kafka — это распределённая платформа потоковой передачи событий с открытым исходным кодом, используемая тысячами компаний для высокопроизводительных конвейеров данных, потоковой аналитики, интеграции данных и критически важных для бизнеса приложений. ClickHouse предоставляет несколько способов чтения из и записи в Kafka и другие брокеры, совместимые с Kafka API (например, Redpanda, Amazon MSK).
Доступные варианты
Выбор подходящего варианта для вашего сценария использования зависит от нескольких факторов, включая тип развертывания ClickHouse, направление потока данных и эксплуатационные требования.
| Вариант | Тип развертывания | Полностью управляемый | Kafka → ClickHouse | ClickHouse → Kafka |
|---|---|---|---|---|
| ClickPipes for Kafka | Cloud, BYOC (скоро!) | ✅ | ✅ | |
| Kafka Connect Sink | Cloud, BYOC, Self-hosted | ✅ | ||
| Движок таблиц Kafka | Cloud, BYOC, Self-hosted | ✅ | ✅ |
Более детальное сравнение этих вариантов см. в разделе Выбор варианта.
ClickPipes for Kafka
ClickPipes — это управляемая платформа интеграции, которая делает приём данных из широкого набора источников таким же простым, как пара кликов. Поскольку это полностью управляемое решение, специализированное для промышленных нагрузок, ClickPipes значительно снижает инфраструктурные и эксплуатационные затраты, устраняя необходимость во внешних средствах потоковой передачи данных и инструментах ETL.
Это рекомендуемый вариант, если вы используете ClickHouse Cloud. ClickPipes — полностью управляемое решение, специально разработанное для обеспечения максимальной производительности в облачных средах.
Основные возможности
- Оптимизирован для ClickHouse Cloud и обеспечивает сверхвысокую производительность
- Горизонтальная и вертикальная масштабируемость для высоконагруженных сценариев
- Встроенная отказоустойчивость с настраиваемыми репликами и автоматическими повторами
- Развертывание и управление через ClickHouse Cloud UI, Open API или Terraform
- Защита уровня Enterprise с поддержкой облачно-нативной авторизации (IAM) и частных сетевых подключений (PrivateLink)
- Поддержка широкого спектра источников данных, включая Confluent Cloud, Amazon MSK, Redpanda Cloud и Azure Event Hubs
- Поддержка наиболее распространённых форматов сериализации (JSON, Avro, Protobuf — скоро!)
Начало работы
Чтобы начать работу с ClickPipes for Kafka, обратитесь к справочной документации или перейдите на вкладку Data Sources в интерфейсе ClickHouse Cloud.
Kafka Connect Sink
Kafka Connect — это open source-фреймворк, который работает как централизованный хаб данных для простой интеграции данных между Kafka и другими системами. Коннектор ClickHouse Kafka Connect Sink предоставляет масштабируемый и гибко настраиваемый вариант чтения данных из Apache Kafka и других брокеров, совместимых с Kafka API.
Это рекомендуемый вариант, если для вас важна высокая настраиваемость или вы уже используете Kafka Connect.
Основные возможности
- Может быть настроен для поддержки семантики exactly-once
- Поддерживает наиболее распространённые форматы сериализации (JSON, Avro, Protobuf)
- Непрерывно тестируется с ClickHouse Cloud
Начало работы
Чтобы начать работу с ClickHouse Kafka Connect Sink, обратитесь к справочной документации.
Движок таблиц Kafka
Движок таблиц Kafka может использоваться для чтения и записи данных в Apache Kafka и другие брокеры, совместимые с Kafka API. Этот вариант поставляется в составе ClickHouse с открытым исходным кодом и доступен для всех типов развертывания.
Это рекомендуемый вариант, если вы самостоятельно развертываете ClickHouse и вам нужен вариант с низким порогом входа, или если вам нужно записывать данные в Kafka.
Основные возможности
- Может использоваться для чтения и записи данных
- Поставляется в составе ClickHouse с открытым исходным кодом
- Поддерживает наиболее распространённые форматы сериализации (JSON, Avro, Protobuf)
Начало работы
Чтобы начать работу с движком таблиц Kafka, см. справочную документацию.
Выбор варианта
| Продукт | Преимущества | Недостатки |
|---|---|---|
| ClickPipes for Kafka | • Масштабируемая архитектура для высокой пропускной способности и низкой задержки • Встроенный мониторинг и управление схемой • Приватные сетевые подключения (через PrivateLink) • Поддержка аутентификации SSL/TLS и авторизации IAM • Поддержка программной конфигурации (Terraform, API-эндпоинты) | • Не поддерживает отправку данных в Kafka • Семантика at-least-once |
| Kafka Connect Sink | • Семантика exactly-once • Позволяет тонко управлять преобразованием данных, пакетированием и обработкой ошибок • Может быть развернут в приватных сетях • Позволяет выполнять репликацию в реальном времени из баз данных, которые ещё не поддерживаются в ClickPipes, с помощью Debezium | • Не поддерживает отправку данных в Kafka • Операционно сложен в развертывании и сопровождении • Требует экспертизы по Kafka и Kafka Connect |
| Kafka table engine | • Поддерживает отправку данных в Kafka • Прост в развертывании и настройке | • Семантика at-least-once • Ограниченное горизонтальное масштабирование потребителей. Нельзя масштабировать независимо от сервера ClickHouse • Ограниченные возможности обработки ошибок и отладки • Требуется экспертиза по Kafka |
Другие варианты
-
Confluent Cloud - Confluent Platform предоставляет возможность загрузить и запустить ClickHouse Connector Sink в Confluent Cloud или использовать HTTP Sink Connector для Confluent Platform, который интегрирует Apache Kafka с API через HTTP или HTTPS.
-
Vector - Vector — это независимый от поставщика конвейер данных. Благодаря возможности читать данные из Kafka и отправлять события в ClickHouse это является надёжным вариантом интеграции.
-
JDBC Connect Sink - Коннектор Kafka Connect JDBC Sink позволяет экспортировать данные из топиков Kafka в любую реляционную базу данных с JDBC-драйвером.
-
Пользовательский код - Пользовательский код, использующий Kafka и ClickHouse клиентские библиотеки, может быть подходящим в случаях, когда требуется кастомная обработка событий.