Интеграция ClickHouse с Kafka с использованием именованных коллекций
Введение
В этом руководстве мы изучим, как подключить ClickHouse к Kafka с использованием именованных коллекций. Использование файла конфигурации для именованных коллекций предлагает несколько преимуществ:
- Централизованное и более легкое управление параметрами конфигурации.
- Изменения параметров могут быть внесены без изменения определения SQL таблиц.
- Легкий обзор и устранение неполадок в конфигурациях путем проверки одного файла конфигурации.
Это руководство было протестировано на Apache Kafka 3.4.1 и ClickHouse 24.5.1.
Предположения
В этом документе предполагается, что у вас есть:
- Рабочий кластер Kafka.
- Настроенный и работающий кластер ClickHouse.
- Базовые знания SQL и знакомство с конфигурациями ClickHouse и Kafka.
Предварительные требования
Убедитесь, что у пользователя, создающего именованную коллекцию, есть необходимые права доступа:
Смотрите Руководство по управлению пользователями для получения дополнительной информации об отключении управления доступом.
Конфигурация
Добавьте следующий раздел в ваш файл ClickHouse config.xml
:
Примечания по конфигурации
- Настройте адреса Kafka и связанные конфигурации в соответствии с вашей настройкой кластера Kafka.
- Раздел перед
<kafka>
содержит параметры движка ClickHouse Kafka. Для полного списка параметров смотрите Параметры движка Kafka. - Раздел внутри
<kafka>
содержит расширенные параметры конфигурации Kafka. Для получения дополнительных параметров обратитесь к конфигурации librdkafka. - В этом примере используется протокол безопасности
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
, вы можете более легко управлять и настраивать параметры, обеспечивая упрощенную и эффективную интеграцию.