Подключение ClickHouse

Используется для подключения к базе данных ClickHouse.

Параметры подключения

При настройке подключения задаются следующие параметры:

  • Автоматическая метка — переключатель режима формирования метки узла. Если выбран режим Автоматическая метка, то она формируется по правилу: Строка подключения. Если выбран режим Пользовательская метка — метка задается пользователем.
  • Строка подключения — строка вида host[:port][:database] задается как в отдельном окне, которое вызывается при клике мышью по кнопке  , так и вводом параметров вручную. Параметры port и database опциональные. По умолчанию port 9000, database default.
  • Тестировать — тест указанных настроек подключения.

Примечание: Если опция Спрашивать пароль активна, то при тестировании подключения будет запрошен логин/пароль.

  • Логин — логин пользователя БД. По умолчанию default.
  • Пароль — пароль пользователя БД. По умолчанию пароль отсутствует.
  • Спрашивать пароль — при установке этого флага пароль, введенный в мастере настройки, не сохранится. Он будет запрошен единовременно при первой активации Импорта или Экспорта из БД и больше не будет запрашиваться до деактивации узла Подключения. Диалоговое окно ввода логина/пароля имеет тайм-аут 60 секунд.

Примечание: во время работы в Пакетном режиме, а также при запуске пакета из Планировщика задач или через Loginom Integrator, при включенной опции Спрашивать пароль будет выполняться попытка подключения без пароля (логи будут содержать сообщение о том, что пароль не указан).

  • Настройки SSL — по кнопке  вызывается диалог установки параметров подключения через безопасное соединение:

    • Использовать SSL — при установленном флаге данные передаются по криптографическому протоколу SSL/TLS.
    • Проверка сертификата сервера — может принимать значения:
      • Отключена — проверка сертификата не выполняется;
      • Полная — проверяется подпись ЦС и хост (используется по умолчанию).

    Примечание: С помощью этого параметра можно задать проверку через системные сертификаты:

    • Параметр «Сертификат CA» должен быть не задан.
    • В параметрах безопасности Loginom не должна быть включена опция «Всегда проверять SSL-сертификаты».

    Если опция «Всегда проверять SSL-сертификаты» включена, используется режим проверки сертификата сервера «Полная». В этом случае установить собственный корневой сертификат нельзя: редакторы становятся недоступными, а заданные значения игнорируются при выполнении узлов.

    • Сертификат CA — путь к файлу с корневым сертификатом.
    • Сертификат пользователя — путь к файлу с клиентским сертификатом.
    • Приватный ключ — путь к файлу с приватным ключом.
    • Пароль приватного ключа — пароль приватного ключа. По умолчанию пустой.

Параметры ClickHouse

  • Кластер — значение параметра выбирается из выпадающего списка (для ClickHouse в облаке этот параметр подключения игнорируется и выпадающий список не заполняется). Если указан параметр подключения «Кластер», то запросы, выполняемые при работе компонента Экспорт в базу данных, модифицируются:
Модифицированные запросы:
  • Запрос CREATE TABLE создает 2 таблицы:

    • Таблицу с данными с суффиксом _data и ENGINE = ReplicatedMergeTree для автоматической репликации в кластере (если выполнять INSERT INTO в эту таблицу, то данные попадут на сервер, к которому подключены).
    • Distributed таблицу (если выполнять INSERT INTO в эту таблицу, то данные будут равномерно распределены по таблицам кластера).
  • Запрос на удаление DROP TABLE подготавливается с указанием ON CLUSTER {cluster}. Если передаётся Distributed таблица, то данные удаляются также из таблиц, по которым она создана.
  • Запрос DELETE FROM перенаправляется на запрос TRUNCATE TABLE.
  • Мутация ALTER TABLE ... DELETE FROM, которая используется при экспорте в базу данных для удаления по ключам, а также запрос TRUNCATE TABLE, который используется для удаления данных из таблицы, выполняются с указанием ON CLUSTER {cluster}. Если передается Distributed таблица, то данные удаляются из таблиц, по которым она создана. Если Distributed таблица создана для кластера, отличного от указанного в параметре «Кластер», то выполнение завершится ошибкой.

Особенности выполнения импорта из базы данных при работе в режиме кластера:

  • Если выполнять импорт Distributed таблицы {db}.{table}, то конкатенируются данные из таблиц кластера, указанных при создании Distributed таблицы в аргументах Distributed(cluster, database, table[, sharding_key[, policy_name]]).
  • Если выполнять импорт из таблицы с данными {db}.{table}_data, то импортируются данные только с сервера, к которому подключены.
  • Учитывать временную зону — выполнять конвертацию из локального времени в UTC и обратно для столбцов типа DateTime. По умолчанию опция включена.
  • Метод сжатия данных — доступны варианты Без сжатия (используется по умолчанию) и LZ4.
  • Тайм-аут сетевой записи (с) — определяет, в течение какого времени выполняется запись пакета. Если достигнуто значение тайм-аута и не получен ответ, то соединение закрывается. Значение по умолчанию — 120 с; диапазон значений редактора [0, 2073600], где 2073600 с — это 24 суток, а 0 означает бесконечность.
  • Тайм-аут сетевого чтения (с) — определяет, в течение какого времени выполняется чтение пакета. Если достигнуто значение тайм-аута и не получен ответ, то соединение закрывается. Значение по умолчанию — 120 с; диапазон значений редактора [0, 2073600].

Параметры

  • Показывать системные таблицы — при установке этого флага в мастере импорта, использующего данное подключение, становятся видимы доступные пользователю системные таблицы БД.
  • Обрамлять имена кавычками — если имена объектов базы данных (например, имена таблиц, полей) содержат пробелы или зарезервированные символы, то необходимо использовать обрамляющие символы, фиксирующие начало и конец имени.
  • Не использовать клиент СУБД — параметр недоступен, т. к. для подключения к ClickHouse всегда используется встроенный драйвер.
  • Работать в одной сессии — при установке этого флага подключение может использоваться только одним узлом. При попытке запроса сессии от второго узла будет выдано сообщение о том, что подключение к БД занято. В этом режиме созданная временная таблица становится доступна для использования в нескольких узлах.
  • Тайм-аут ожидания сессии (с) — определяет время ожидания освобождения сессии при параллельном использовании подключения в режиме «Работать в одной сессии». Попытка параллельного использования подключения завершится с ошибкой, если за указанный тайм-аут эта единственная сессия не освободилась. То есть второй узел будет ожидать сессию в течение тайм-аута. Минимальное значение параметра — 0, максимальное — 2073600 (24 суток).

Примечание: процесс ожидания сессии может быть отменён из Панели «Процессы».

  • Тайм-аут подключения (c) — задает предельное время подключения, значение по умолчанию 20 секунд. Если импорт из базы данных или экспорт в базу данных будет выполняться в режиме игнорирования ошибок, то в случае неудавшегося подключения в течение установленного времени, соответствующая ошибка будет записана в выходной порт Статус выполнения узла Импорт из БД/Экспорт в БД, а при импорте/экспорте в обычном режиме — выполнение узла завершится ошибкой.
  • Тайм-аут блокировки (с) — устанавливает тайм-аут ожидания снятия блокировки с ресурса (таблицы, строки). Задаётся выпадающим списком с редактируемым полем ввода, которое принимает целые положительные значения. Предустановленный список значений:

    • По умолчанию — используется значение по умолчанию сервера БД.
    • — максимальное значение равное 24 суткам.
    • Числовые значения — выбор из следующих значений: 5,10,20,30,60,120.

    В ClickHouse тайм-аут блокировки поддерживается с версии 20.4.2.

  • Комментарий — в этой форме можно оставить любую справочную информацию о подключении.

Примечание:

  • Пул подключений не используется.
  • При экспорте данных в новую таблицу создается таблица движка Log.
  • Ввиду ограничений БД ClickHouse:
    • Не поддерживаются транзакции.
    • Поддерживаются даты с 1970 до 2106 года.
    • Не поддерживается обновление существующих записей в таблице.
    • Удаление по ключу работает только для таблиц с движком из семейства MergeTree.

Важно: В таблицах семейства MergeTree операции мутации данных не атомарны (подробнее см. Мутации). Поскольку мутации используются при выполнении операции экспорта с удалением по ключу, то факт активации узла экспорта не гарантирует завершение процесса удаления записей. Длительность выполнения мутации пользователем не контролируется. Таким образом, запрос на выборку данных, заданный непосредственно после выполнения узла экспорта с удалением по ключу, может вернуть старые записи. Данную особенность БД ClickHouse следует учитывать при проектировании систем.

Совместимость

Версии БД ClickHouse 19.1 и выше.

Смотри также:

Новости, материалы по аналитике, кейсы применения, активное сообщество