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

Интеграция ClickHouse с Kafka с использованием именованных коллекций

Введение

В этом руководстве мы изучим, как подключить 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. Для полного списка параметров смотрите Параметры движка Kafka.
  3. Раздел внутри <kafka> содержит расширенные параметры конфигурации Kafka. Для получения дополнительных параметров обратитесь к конфигурации librdkafka.
  4. В этом примере используется протокол безопасности SASL_SSL и механизм PLAIN. Настройте эти параметры в зависимости от конфигурации вашего кластера Kafka.

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

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

Создание базы данных

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

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

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

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

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

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

Создание материализованных представлений

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

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

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

Теперь вы должны видеть соответствующие группы потребителей на ваших кластерах Kafka:

  • cluster_1_clickhouse_consumer на cluster_1
  • cluster_2_clickhouse_consumer на cluster_2

Запустите следующие запросы на любом узле ClickHouse, чтобы увидеть данные в обеих таблицах:

Примечание

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

Пример вывода:

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