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