Интеграция 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 при его отсутствии.
-
НАЗВАНИЕ БАЗЫ ДАННЫХ: по умолчанию есть база данных с именем
default
, используйте имя базы данных, к которой вы хотите подключиться. -
ИМЯ ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ: по умолчанию имя пользователя
default
. Используйте имя пользователя, подходящее для вашего случая использования.
Данные для вашей службы ClickHouse Cloud доступны в консоли ClickHouse Cloud. Выберите службу, к которой вы будете подключаться, и нажмите Подключиться:

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

Если вы используете self-managed 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 находился в частной подсети с подключенной частной NAT для доступа в интернет. Инструкции по настройке приведены ниже. Обратите внимание, что публичные подсети поддерживаются, но не рекомендуются из-за необходимости постоянно назначать Elastic IP адрес вашему ENI, AWS предоставляет больше деталей здесь.
- Создайте частную подсеть: Создайте новую подсеть в вашем VPC, назначив её как частную подсеть. Эта подсеть не должна иметь прямого доступа к интернету.
- Создайте NAT-шлюз: Создайте NAT-шлюз в публичной подсети вашего VPC. NAT-шлюз позволяет экземплярам в вашей частной подсети подключаться к интернету или другим AWS сервисам, но предотвращает инициацию соединения с этими экземплярами из интернета.
- Обновите таблицу маршрутов: Добавьте маршрут, который направляет интернет-трафик к NAT-шлюзу.
- Убедитесь в настройке групп безопасности и сетевых ACL: Настройте ваши группы безопасности и сетевая ACL (Списки контроля доступа), чтобы разрешить соответствующий трафик к вашему экземпляру ClickHouse и от него.
- Для ClickHouse Cloud настройте вашу группу безопасности, чтобы разрешить входящий трафик на портах 9440 и 8443.
- Для самостоятельного размещения ClickHouse настройте вашу группу безопасности, чтобы разрешить входящий трафик на порту в вашем конфигурационном файле (по умолчанию 8123).
- Присоедините группы безопасности к MSK: Убедитесь, что эти новые группы безопасности, направленные к NAT-шлюзам, прикреплены к вашему кластеру MSK.