Перейти к основному содержимому
Версия: 5.2

ClickHouse

Выбор типа конфигурации

Для указания типа конфигурации необходимо выбрать одну из плиток, представленных на странице. В данном случае необходимо выбрать плитку Clickhouse.

Важно!

После сохранения поменять тип конфигурации невозможно.


Заполнение информации о подключении

Дальнейшая информация о конфигурации вводится в блоке Введите информацию о конфигурации. Поля, отмеченные красной звездочкой, обязательны. Если в каком-либо поле ввода будут некорректные данные, то конфигурация не сохранится и появится информация о некорректном вводе напротив поля с ошибкой. Для того, чтобы ввести информацию о подключении, следуйте следующим шагам:

  1. Для ввода информации об имени конфигурации введите данные в поле ввода с названием Имя конфигурации. Допускаются только латиница или цифры в стиле CamelCase
  2. После этого выберите JDBC драйвер в поле Загрузите драйвер. Если нужного драйвера нет среди предложенных, то можно загрузить свой, нажав на кнопку Загрузить файл под полем ввода. После этого откроется модальное окно, в котором необходимо выбрать JDBC-драйвер с расширением .jar. В остальных случаях драйвер не будет загружен
  3. Поле Имя класса драйвера заполняется автоматически. Если в JDBC-драйвере несколько классов, можно ввести нужный класс. При его вводе допускаются только латиница или цифры
Рекомендуемый 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. Если драйвер не использует эти классы, строка подключения все равно автодополнится, но для корректной работы подключения необходимо будет проверить поле ввода Строка подключения на правильность сгенерированных данных. Иначе перейдите в продвинутый режим и откорректируйте ее.

  1. Введите хост в поле Хост. Допускаются строки вида 172.168.0.1 или yourhost
  2. Введите порт в поле Порт. Допускаются только цифры
  3. При необходимости в подключении к базе данных по умолчанию, можно ввести ее название в поле База данных по умолчанию
  4. Если в вашем подключении есть валидация SSL, то необходимо включить поле Валидация SSL. После этого появится предупреждение о необходимости сохранения данных в keystore, показанное на рисунке

Предупреждение о keystore Сlickhouse

После этого можно включить проверку имени хоста, а также указать путь до trust store в поле Путь до trust store. Допускаются только строки вида /my_path/to/trust-store/.

Важно!

SSL параметры устанавливаются для официального драйвера Clickhouse. Если вы используете другой драйвер, перейдите в продвинутый режим и введите необходимые параметры вручную.

  1. Если в соединении есть авторизация с помощью пользователя и пароля или только пользователя, введите соответствующие поля Пользователь и Пароль
  2. Для проверки подключения нажмите на кнопку Проверить подключение. Если подключение к 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

  1. Получите файл сертификата CA или самоподписанного сертификата ClickHouse в формате PEM/CRT, например clickhouse-ca.pem

  2. Скопируйте этот файл на узел, с которого выполняется подключение к ClickHouse (узел, где работает компонент, использующий JDBC-подключение)

  3. Создайте каталог для trust store, если он еще не существует (например, каталог конфигурации приложения)

  4. Создайте новый trust store и импортируйте в него сертификат с помощью утилиты keytool:

    keytool -importcert      -file clickhouse-ca.pem      -alias clickhouse-ca      -keystore /path/to/clickhouse-truststore.jks      -storetype JKS      -storepass <пароль_от_truststore>

    При первом запуске keytool предложит создать новый файл хранилища и запросит пароль. Этот пароль необходимо запомнить — он будет использоваться при настройке keystore.

  5. Ограничьте доступ к файлу trust store так, чтобы к нему имел доступ только системный пользователь, от имени которого запускается приложение:

    chown <user>:<group> /path/to/clickhouse-truststore.jks
    chmod 600 /path/to/clickhouse-truststore.jks
  6. В интерфейсе конфигурации подключения к ClickHouse укажите полный путь до созданного файла в поле Путь до trust store

Добавление пароля trust store в keystore

Для безопасности пароль от trust store не хранится в открытом виде в конфигурации. Вместо этого он должен быть сохранен в защищенном хранилище параметров (keystore).

После включения опции Валидация SSL и заполнения поля Путь до trust store в нижней части формы отображается желтое предупреждение с именем переменной keystore, в которую необходимо записать пароль. Имя имеет вид:

sme.sa.trust_store.password.<ИмяКонфигурации>

Общий порядок действий:

  1. Нажмите Сохранить изменения в конфигурации подключения

  2. Обновите страницу, чтобы убедиться, что предупреждение и имя переменной keystore отображаются корректно

  3. На каждом узле, где выполняются подключения к ClickHouse, выполните команду добавления записи в keystore с использованием указанного имени переменной. Для платформ на базе OpenSearch это делается утилитой opensearch-keystore (путь и команда могут отличаться в зависимости от дистрибутива):

    opensearch-keystore add sme.sa.trust_store.password.<ИмяКонфигурации>
  4. В интерактивном режиме утилита запросит значение. Введите пароль, который использовался при создании trust store (<пароль_от_truststore>)

  5. Повторите операцию на всех узлах кластера, для которых требуется доступ к ClickHouse через данную конфигурацию

Важно!
  • имя переменной в keystore необходимо брать именно из желтого предупреждения в интерфейсе конфигурации
  • если вы измените имя конфигурации, имя переменной также изменится, и пароль нужно будет добавить заново
  • после изменения keystore рекомендуется перезапустить соответствующие сервисы, чтобы новые параметры были подхвачены

Особенности редактирования конфигурации

Конфигурация редактируется по тем же правилам, что и создается. Можно изменять поля в любом произвольном порядке, сохраняя общую логику: сначала выбирается корректный JDBC-драйвер, затем задаются параметры подключения (хост, порт, БД), после чего при необходимости включается SSL, настраивается путь до trust store и добавляется пароль в keystore. После сохранения изменений и успешной проверки подключения конфигурация готова к использованию.