Skip to main content

Введение

В этом руководстве мы рассмотрим, как подключить ClickHouse к Kafka с помощью именованных коллекций. Использование файла конфигурации для именованных коллекций дает несколько преимуществ:
  • Централизованное и более удобное управление параметрами конфигурации.
  • Параметры можно изменять без правок в SQL-определениях таблиц.
  • Конфигурации проще проверять и устранять неполадки, анализируя один файл конфигурации.
Это руководство было протестировано на Apache Kafka 3.4.1 и ClickHouse 24.5.1.

Предварительные условия

В этом документе предполагается, что у вас есть:
  1. Рабочий кластер Kafka.
  2. Настроенный и работающий кластер ClickHouse.
  3. Базовые знания SQL и понимание конфигурации ClickHouse и Kafka.

Предварительные требования

Убедитесь, что у пользователя, создающего именованную коллекцию, есть необходимые разрешения на доступ:
Подробнее о том, как включить управление доступом, см. в руководстве по управлению пользователями.

Конфигурация

Добавьте следующий раздел в файл ClickHouse config.xml:

Примечания по конфигурации

  1. Скорректируйте адреса Kafka и связанные параметры в соответствии с конфигурацией вашего кластера Kafka.
  2. Раздел перед <kafka> содержит параметры движка ClickHouse Kafka. Полный список параметров см. в разделе параметров движка ClickHouse Kafka.
  3. Раздел внутри <kafka> содержит расширенные параметры конфигурации Kafka. Дополнительные параметры см. в конфигурации librdkafka.
  4. В этом примере используются протокол безопасности SASL_SSL и механизм PLAIN. Скорректируйте эти параметры в соответствии с конфигурацией вашего кластера Kafka.

Создание таблиц и баз данных

Создайте необходимые базы данных и таблицы в кластере ClickHouse. Если ClickHouse запущен на одном узле, опустите часть SQL-команды, относящуюся к кластеру, и используйте любой другой движок вместо ReplicatedMergeTree.

Создайте базу данных

Создайте таблицы Kafka

Создайте первую таблицу Kafka для первого кластера Kafka:
Создайте вторую таблицу Kafka для второго кластера Kafka:

Создайте реплицированные таблицы

Создайте таблицу для первой таблицы Kafka:
Создайте таблицу для второй таблицы Kafka:

Создайте materialized views

Создайте materialized view для вставки данных из первой таблицы Kafka в первую реплицированную таблицу:
Создайте materialized view для вставки данных из второй таблицы Kafka во вторую реплицированную таблицу:

Проверка настройки

Теперь вы должны увидеть соответствующие группы consumer group в ваших кластерах Kafka:
  • cluster_1_clickhouse_consumer в cluster_1
  • cluster_2_clickhouse_consumer в cluster_2
Выполните следующие запросы на любом из узлов ClickHouse, чтобы увидеть данные в обеих таблицах:

Примечание

В этом руководстве в оба топика Kafka поступают одни и те же данные. В вашем случае они будут различаться. Вы можете добавить сколько угодно кластеров Kafka. Пример вывода:
На этом настройка интеграции ClickHouse с Kafka с использованием именованных коллекций завершена. Централизовав конфигурацию Kafka в файле ClickHouse config.xml, вы сможете проще управлять настройками и изменять их, обеспечивая более удобную и эффективную интеграцию.
Последнее изменение 3 июля 2026 г.