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