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

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

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

Мы предполагаем:

Официальный Kafka соединитель от ClickHouse с Amazon MSK

Соберите свои данные для подключения

Чтобы подключиться к ClickHouse с помощью HTTP(S), вам необходима следующая информация:

  • ХОСТ и ПОРТ: как правило, порт 8443 при использовании TLS или 8123 при отсутствии TLS.

  • ИМЯ БАЗЫ ДАННЫХ: по умолчанию существует база данных с именем default, используйте имя базы данных, к которой вы хотите подключиться.

  • ИМЯ ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ: по умолчанию имя пользователя default. Используйте имя пользователя, подходящее для вашего случая.

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

Кнопка подключения к сервису ClickHouse Cloud

Выберите HTTPS, и данные будут доступны в примере команды curl.

Детали подключения ClickHouse Cloud по HTTPS

Если вы используете самоуправляемый ClickHouse, детали подключения устанавливаются вашим администратором ClickHouse.

Шаги

  1. Убедитесь, что вы знакомы с ClickHouse Connector Sink.
  2. Создайте экземпляр MSK.
  3. Создайте и назначьте IAM роль.
  4. Скачайте файл jar со страницы Релиз ClickHouse Connect Sink.
  5. Установите загруженный файл jar на странице пользовательских плагинов консоли Amazon MSK.
  6. Если соединитель взаимодействует с публичным экземпляром ClickHouse, включите доступ в интернет.
  7. Укажите имя темы, имя хоста экземпляра ClickHouse и пароль в конфигурации.
connector.class=com.clickhouse.kafka.connect.ClickHouseSinkConnector
tasks.max=1
topics=<topic_name>
ssl=true
security.protocol=SSL
hostname=<hostname>
database=<database_name>
password=<password>
ssl.truststore.location=/tmp/kafka.client.truststore.jks
port=8443
value.converter.schemas.enable=false
value.converter=org.apache.kafka.connect.json.JsonConverter
exactlyOnce=true
username=default
schemas.enable=false

Настройка производительности

Один из способов увеличения производительности — это настройка размера партии и количества записей, которые извлекаются из Kafka, добавив следующее в конфигурацию worker:

consumer.max.poll.records=[NUMBER OF RECORDS]
consumer.max.partition.fetch.bytes=[NUMBER OF RECORDS * RECORD SIZE IN BYTES]

Конкретные значения, которые вы используете, будут варьироваться в зависимости от желаемого количества записей и размера записей. Например, значения по умолчанию:

consumer.max.poll.records=500
consumer.max.partition.fetch.bytes=1048576

Вы можете найти больше деталей (как реализации, так и другие соображения) в официальной документации Kafka и Amazon MSK.

Примечания по сетевому взаимодействию для MSK Connect

Для того чтобы MSK Connect мог подключиться к ClickHouse, мы рекомендуем располагать ваш кластер MSK в частной подсети с подключенным Private NAT для доступа в интернет. Инструкции по настройке приведены ниже. Обратите внимание, что публичные подсети поддерживаются, но не рекомендуются из-за необходимости постоянно назначать Elastic IP-адрес вашему ENI, AWS предоставляет больше подробностей здесь.

  1. Создайте частную подсеть: Создайте новую подсеть в вашем VPC, назначив ее как частную подсеть. Эта подсеть не должна иметь прямого доступа в интернет.
  2. Создайте NAT Gateway: Создайте NAT-шлюз в публичной подсети вашего VPC. NAT-шлюз позволяет экземплярам в вашей частной подсети подключаться к интернету или другим сервисам AWS, но предотвращает подключение из интернета к этим экземплярам.
  3. Обновите таблицу маршрутов: Добавьте маршрут, который направляет интернет-трафик к NAT-шлюзу.
  4. Убедитесь в правильной конфигурации групп безопасности и сетевых ACL: Настройте ваши группы безопасности и сетевые ACL (Списки контроля доступа) для разрешения соответствующего трафика к вашему экземпляру ClickHouse и от него.
    1. Для ClickHouse Cloud настройте вашу группу безопасности для разрешения входящего трафика на портах 9440 и 8443.
    2. Для самоуправляемого ClickHouse настройте вашу группу безопасности для разрешения входящего трафика на порту в вашем конфигурационном файле (по умолчанию 8123).
  5. Присоедините группы безопасности к MSK: Убедитесь, что эти новые группы безопасности, направленные к NAT-шлюзам, присоединены к вашему кластеру MSK.