ClickHouse
Выбор типа конфигурации
Для указания типа конфигурации необходимо выбрать одну из плиток, представленных на странице. В данном случае необходимо выбрать плитку Clickhouse.
После сохранения поменять тип конфигурации невозможно.
Заполнение информации о подключении
Дальнейшая информация о конфигурации вводится в блоке Введите информацию о конфигурации. Поля, отмеченные красной звездочкой, обязательны. Если в каком-либо поле ввода будут некорректные данные, то конфигурация не сохранится и появится информация о некорректном вводе напротив поля с ошибкой. Для того, чтобы ввести информацию о подключении, следуйте следующим шагам:
- Для ввода информации об имени конфигурации введите данные в поле ввода с названием
Имя конфигурации. Допускаются только латиница или цифры в стиле CamelCase - После этого выберите JDBC драйвер в поле
Загрузите драйвер. Если нужного драйвера нет среди предложенных, то можно загрузить свой, нажав на кнопкуЗагрузить файлпод полем ввода. После этого откроется модальное окно, в котором необходимо выбрать JDBC-драйвер с расширением.jar. В остальных случаях драйвер не будет загружен - Поле
Имя класса драйверазаполняется автоматически. Если в JDBC-драйвере несколько классов, можно ввести нужный класс. При его вводе допускаются только латиница или цифры
Для подключения к ClickHouse рекомендуется использовать официальный драйвер com.clickhouse:clickhouse-jdbc в варианте артефакта *-all-dependencies.jar. Такие JAR-файлы уже содержат все необходимые зависимости и не требуют дополнительной установки библиотек.
Подходящую версию можно найти в центральном репозитории Maven (раздел com.clickhouse / clickhouse-jdbc) или скачать напрямую по ссылке вида:
https://repo1.maven.org/maven2/com/clickhouse/clickhouse-jdbc/<версия>/clickhouse-jdbc-<версия>-all-dependencies.jar
По умолчанию поле строка подключения автодополняется на основе класса JDBC драйвера. Для Clickhouse поддерживаются следующие классы: cc.blynk.clickhouse.ClickHouseDriver, com.clickhouse.jdbc.ClickHouseDriver. Если драйвер не использует эти классы, строка подключения все равно автодополнится, но для корректной работы подключения необходимо будет проверить поле ввода Строка подключения на правильность сгенерированных данных. Иначе перейдите в продвинутый режим и откорректируйте ее.
- Введите хост в поле
Хост. Допускаются строки вида172.168.0.1илиyourhost - Введите порт в поле
Порт. Допускаются только цифры - При необходимости в подключении к базе данных по умолчанию, можно ввести ее название в поле
База данных по умолчанию - Если в вашем подключении есть валидация SSL, то необходимо включить поле
Валидация SSL. После этого появится предупреждение о необходимости сохранения данных в keystore, показанное на рисунке

После этого можно включить проверку имени хоста, а также указать путь до trust store в поле Путь до trust store. Допускаются только строки вида /my_path/to/trust-store/.
SSL параметры устанавливаются для официального драйвера Clickhouse. Если вы используете другой драйвер, перейдите в продвинутый режим и введите необходимые параметры вручную.
- Если в соединении есть авторизация с помощью пользователя и пароля или только пользователя, введите соответствующие поля
ПользовательиПароль - Для проверки подключения нажмите на кнопку
Проверить подключение. Если подключение к ClickHouse прошло успешно, будет выведено следующее сообщение:

В противном случае будет выведена ошибка вида:

В статье показан лишь пример сообщения об ошибке. Фактическая ошибка может быть другой.
Конфигурация может сохраниться с ошибками подключения, но она не сохранится с ошибками формата введенных данных или с пустыми значениями в обязательных полях.
Подготовка trust store и keystore для SSL-подключений
В этом разделе описывается, как подготовить trust store с сертификатами для проверки сервера ClickHouse и как передать пароль от trust store в защищенное хранилище параметров (keystore).
Назначение trust store
trust store — это файловое хранилище доверенных сертификатов (обычно в формате JKS или PKCS12), которое используется JVM для проверки подлинности сервера.
В trust store должен быть добавлен сертификат удостоверяющего центра (CA), которым подписаны серверные сертификаты ClickHouse. Если для ClickHouse используется самоподписанный сертификат, в trust store добавляется именно этот сертификат.
Создание и заполнение trust store
-
Получите файл сертификата CA или самоподписанного сертификата ClickHouse в формате PEM/CRT, например
clickhouse-ca.pem -
Скопируйте этот файл на узел, с которого выполняется подключение к ClickHouse (узел, где работает компонент, использующий JDBC-подключение)
-
Создайте каталог для
trust store, если он еще не существует (например, каталог конфигурации приложения) -
Создайте новый
trust storeи импортируйте в него сертификат с помощью утилитыkeytool:keytool -importcert -file clickhouse-ca.pem -alias clickhouse-ca -keystore /path/to/clickhouse-truststore.jks -storetype JKS -storepass <пароль_от_truststore>При первом запуске
keytoolпредложит создать новый файл хранилища и запросит пароль. Этот пароль необходимо запомнить — он будет использоваться при настройке keystore. -
Ограничьте доступ к файлу
trust storeтак, чтобы к нему имел доступ только системный пользователь, от имени которого запускается приложение:chown <user>:<group> /path/to/clickhouse-truststore.jks
chmod 600 /path/to/clickhouse-truststore.jks -
В интерфейсе конфигурации подключения к ClickHouse укажите полный путь до созданного файла в поле
Путь до trust store
Добавление пароля trust store в keystore
Для безопасности пароль от trust store не хранится в открытом виде в конфигурации. Вместо этого он должен быть сохранен в защищенном хранилище параметров (keystore).
После включения опции Валидация SSL и заполнения поля Путь до trust store в нижней части формы отображается желтое предупреждение с именем переменной keystore, в которую необходимо записать пароль. Имя имеет вид:
sme.sa.trust_store.password.<ИмяКонфигурации>
Общий порядок действий:
-
Нажмите
Сохранить измененияв конфигурации подключения -
Обновите страницу, чтобы убедиться, что предупреждение и имя переменной keystore отображаются корректно
-
На каждом узле, где выполняются подключения к ClickHouse, выполните команду добавления записи в keystore с использованием указанного имени переменной. Для платформ на базе OpenSearch это делается утилитой
opensearch-keystore(путь и команда могут отличаться в зависимости от дистрибутива):opensearch-keystore add sme.sa.trust_store.password.<ИмяКонфигурации> -
В интерактивном режиме утилита запросит значение. Введите пароль, который использовался при создании trust store (
<пароль_от_truststore>) -
Повторите операцию на всех узлах кластера, для которых требуется доступ к ClickHouse через данную конфигурацию
- имя переменной в keystore необходимо брать именно из желтого предупреждения в интерфейсе конфигурации
- если вы измените имя конфигурации, имя переменной также изменится, и пароль нужно будет добавить заново
- после изменения keystore рекомендуется перезапустить соответствующие сервисы, чтобы новые параметры были подхвачены
Особенности редактирования конфигурации
Конфигурация редактируется по тем же правилам, что и создается. Можно изменять поля в любом произвольном порядке, сохраняя общую логику: сначала выбирается корректный JDBC-драйвер, затем задаются параметры подключения (хост, порт, БД), после чего при необходимости включается SSL, настраивается путь до trust store и добавляется пароль в keystore. После сохранения изменений и успешной проверки подключения конфигурация готова к использованию.