Интеграция Amazon MSK с ClickHouse
Предварительные условия
Мы предполагаем:
- вы знакомы с ClickHouse Connector Sink, Amazon MSK и MSK Connectors. Мы рекомендуем ознакомиться с Руководством по началу работы с Amazon MSK и Руководством по MSK Connect.
- Брокер MSK доступен публично. См. раздел Публичный доступ Руководства по разработке.
Официальный коннектор Kafka от ClickHouse с Amazon MSK
Соберите ваши данные для подключения
Чтобы подключиться к ClickHouse с помощью HTTP(S), вам нужна следующая информация:
-
ХОСТ и ПОРТ: как правило, порт составляет 8443 при использовании TLS или 8123 при отсутствии TLS.
-
НАЗВАНИЕ БАЗЫ ДАННЫХ: по умолчанию существует база данных с именем
default
, используйте имя базы данных, к которой вы хотите подключиться. -
ИМЯ ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ: по умолчанию имя пользователя равно
default
. Используйте имя пользователя, соответствующее вашему случаю.
Сведения о вашем ClickHouse Cloud-сервисе доступны в консоли ClickHouse Cloud. Выберите сервис, к которому вы будете подключаться, и нажмите Подключиться:

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

Если вы используете самоуправляемый ClickHouse, детали подключения устанавливаются вашим администратором ClickHouse.
Шаги
- Убедитесь, что вы знакомы с ClickHouse Connector Sink
- Создайте экземпляр MSK.
- Создайте и назначьте IAM роль.
- Загрузите файл
jar
с страницы Релизов ClickHouse Connect Sink. - Установите загруженный файл
jar
на странице пользовательских плагинов консоли Amazon MSK. - Если Коннектор взаимодействует с публичным экземпляром ClickHouse, включите интернет-доступ.
- Укажите имя темы, имя хоста экземпляра ClickHouse и пароль в конфигурации.
Настройка производительности
Один из способов увеличения производительности — это настройка размера пакета и количества записей, которые извлекаются из Kafka, добавив следующее в конфигурацию worker:
Конкретные значения будут варьироваться в зависимости от желаемого количества записей и размера записи. Например, значения по умолчанию:
Более подробную информацию (как по реализации, так и другие аспекты) вы можете найти в официальной документации Kafka и Amazon MSK.
Примечания по сетевой настройке для MSK Connect
Для того чтобы MSK Connect мог подключиться к ClickHouse, мы рекомендуем размещать ваш кластер MSK в частной подсети с подключенным Private NAT для доступа к интернету. Инструкции по настройке приведены ниже. Обратите внимание, что публичные подсети поддерживаются, но не рекомендуются из-за необходимости постоянно назначать Elastic IP-адрес вашему ENI, AWS предоставляет более подробную информацию здесь
- Создайте частную подсеть: Создайте новую подсеть в вашем VPC, назначив ее как частную подсеть. Эта подсеть не должна иметь прямого доступа к интернету.
- Создайте NAT шлюз: Создайте NAT шлюз в публичной подсети вашего VPC. NAT шлюз позволяет экземплярам в вашей частной подсети подключаться к интернету или другим сервисам AWS, но предотвращает инициирование соединения с этими экземплярами из интернета.
- Обновите таблицу маршрутов: Добавьте маршрут, который направляет трафик в интернет на NAT шлюз.
- Обеспечьте конфигурацию групп безопасности и сетевых ACL: Настройте ваши группы безопасности и сетевые ACL (Access Control Lists) для разрешения соответствующего трафика к вашему экземпляру ClickHouse и обратно.
- Для ClickHouse Cloud настройте вашу группу безопасности для разрешения входящего трафика на портах 9440 и 8443.
- Для собственного ClickHouse настройте вашу группу безопасности для разрешения входящего трафика на порту в вашем конфигурационном файле (по умолчанию 8123).
- Прикрепите группы безопасности к MSK: Убедитесь, что эти новые группы безопасности, маршрутизированные к NAT шлюзам, прикреплены к вашему кластеру MSK.