Перейти к основному содержимому
Перейти к основному содержимому

Интеграция Kafka с ClickHouse

Apache Kafka — это платформа потоковой передачи событий с распределенной архитектурой с открытым исходным кодом, используемая тысячами компаний для высокопроизводительных конвейеров данных, аналитики в реальном времени, интеграции данных и критически важных приложений. ClickHouse предоставляет несколько вариантов для чтения из и записи в Kafka и другие брокеры, совместимые с API Kafka (например, Redpanda, Amazon MSK).

Доступные варианты

Выбор правильного варианта для вашего случая использования зависит от множества факторов, включая тип развертывания ClickHouse, направление потока данных и операционные требования.

ВариантТип развертыванияПолностью управляемыйKafka в ClickHouseClickHouse в Kafka
ClickPipes для KafkaCloud, BYOC (скоро!)
Kafka Connect SinkCloud, BYOC, Self-hosted
Kafka table engineCloud, 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 клиентских библиотек может быть уместен в случаях, когда требуется специальная обработка событий.