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

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

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

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

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

Соберите информацию о подключении

To connect to ClickHouse with HTTP(S) you need this information:

  • The HOST and PORT: typically, the port is 8443 when using TLS or 8123 when not using TLS.

  • The DATABASE NAME: out of the box, there is a database named default, use the name of the database that you want to connect to.

  • The USERNAME and PASSWORD: out of the box, the username is default. Use the username appropriate for your use case.

The details for your ClickHouse Cloud service are available in the ClickHouse Cloud console. Select the service that you will connect to and click Connect:

Choose HTTPS, and the details are available in an example curl command.

If you are using self-managed ClickHouse, the connection details are set by your ClickHouse administrator.

Шаги

  1. Убедитесь, что вы знакомы с ClickHouse Connector Sink
  2. Создайте экземпляр MSK.
  3. Создайте и назначьте IAM роль.
  4. Скачайте файл jar со страницы Релизы ClickHouse Connect Sink.
  5. Установите загруженный файл jar на странице пользовательских плагинов в консоли Amazon MSK.
  6. Если коннектор взаимодействует с публичным экземпляром ClickHouse, включите доступ в интернет.
  7. Укажите имя темы, имя хоста экземпляра ClickHouse и пароль в конфигурации.

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

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

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

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

Замечания по сетевым настройкам для MSK Connect

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

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