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