Подключение ClickHouse к внешним источникам данных с помощью JDBC
Использование JDBC требует ClickHouse JDBC Bridge, поэтому вам понадобится использовать clickhouse-local на локальной машине, чтобы передавать данные из вашей базы данных в ClickHouse Cloud. Перейдите на страницу Using clickhouse-local в разделе Migrate документации для получения подробной информации.
Обзор: ClickHouse JDBC Bridge в сочетании с табличной функцией jdbc или табличным движком JDBC позволяет ClickHouse получать доступ к данным из любого внешнего источника данных, для которого доступен JDBC-драйвер:

Это удобно, когда для внешнего источника данных нет встроенного интеграционного движка, табличной функции или внешнего словаря, но существует JDBC-драйвер для этого источника данных.
Вы можете использовать ClickHouse JDBC Bridge как для чтения, так и для записи, и параллельно — для нескольких внешних источников данных; например, вы можете выполнять распределённые запросы в ClickHouse по нескольким внешним и внутренним источникам данных в режиме реального времени.
В этом уроке мы покажем, насколько просто установить, настроить и запустить ClickHouse JDBC Bridge для подключения ClickHouse к внешнему источнику данных. В качестве внешнего источника данных в этом уроке мы будем использовать MySQL.
Приступим!
У вас есть доступ к машине, на которой:
- установлена оболочка Unix и есть доступ в интернет
- установлен wget
- установлена актуальная версия Java (например, OpenJDK версии >= 17)
- установлена и запущена актуальная версия MySQL (например, MySQL версии >= 8)
- установлена и запущена актуальная версия ClickHouse (см. установку)
Установка ClickHouse JDBC Bridge локально
Самый простой способ использовать ClickHouse JDBC Bridge — установить и запустить его на той же машине, где работает ClickHouse:

Начнём с подключения к командной оболочке Unix на машине, где запущен ClickHouse, и создания локальной папки, в которую мы позже установим ClickHouse JDBC Bridge (можно назвать папку как угодно и разместить её в любом удобном месте):
Теперь загрузим текущую версию ClickHouse JDBC Bridge в эту папку:
Чтобы подключиться к MySQL, создадим именованный источник данных:
Теперь вы можете скопировать и вставить следующую конфигурацию в файл ~/clickhouse-jdbc-bridge/config/datasources/mysql8.json:
в конфигурационном файле выше
- вы можете использовать любое имя для источника данных, мы использовали
mysql8 - в значении
jdbcUrlвам нужно заменить<host>и<port>на соответствующие значения для запущенного экземпляра MySQL, например"jdbc:mysql://localhost:3306" - вам нужно заменить
<username>и<password>на ваши учётные данные MySQL; если вы не используете пароль, вы можете удалить строку"password": "<password>"в конфигурационном файле выше - в значении
driverUrlsмы просто указали URL, по которому можно скачать текущую версию JDBC‑драйвера MySQL. На этом всё — ClickHouse JDBC Bridge автоматически скачает этот JDBC‑драйвер (в зависящий от ОС каталог).
Теперь мы готовы запустить ClickHouse JDBC Bridge:
Мы запустили ClickHouse JDBC Bridge в режиме переднего плана. Чтобы остановить Bridge, вы можете вернуть показанное выше окно оболочки Unix на передний план и нажать CTRL+C.
Использование JDBC-подключения из ClickHouse
Теперь ClickHouse может получать доступ к данным MySQL с помощью табличной функции jdbc или движка таблицы JDBC.
Самый простой способ выполнить следующие примеры — скопировать и вставить их в clickhouse-client или в Play UI.
- Табличная функция jdbc:
В качестве первого параметра табличной функции jdbc мы используем имя именованного источника данных, который был настроен выше.
- Табличный движок JDBC:
В качестве первого параметра в секции движка jdbc мы используем имя именованного источника данных, который мы настроили выше.
Схема таблицы движка ClickHouse JDBC и схема подключённой таблицы MySQL должны быть согласованы: например, имена и порядок столбцов должны совпадать, а типы данных столбцов — быть совместимыми.
Внешняя установка ClickHouse JDBC Bridge
Для распределённого кластера ClickHouse (кластера с более чем одним хостом ClickHouse) имеет смысл установить и запускать ClickHouse JDBC Bridge отдельно, на выделенном хосте:

Преимущество такого подхода в том, что каждый хост ClickHouse может обращаться к JDBC Bridge. В противном случае JDBC Bridge пришлось бы устанавливать локально на каждый экземпляр ClickHouse, который должен обращаться к внешним источникам данных через Bridge.
Для внешней установки ClickHouse JDBC Bridge выполните следующие шаги:
-
Установите, настройте и запустите ClickHouse JDBC Bridge на выделенном хосте, следуя шагам, описанным в разделе 1 данного руководства.
-
На каждом хосте ClickHouse добавьте следующий блок конфигурации в конфигурацию сервера ClickHouse (в зависимости от выбранного формата конфигурации используйте XML- или YAML-вариант):
- XML
- YAML
- необходимо заменить
JDBC-Bridge-Hostна имя хоста или IP-адрес выделенного хоста ClickHouse JDBC Bridge - указан порт ClickHouse JDBC Bridge по умолчанию
9019; если вы используете для JDBC Bridge другой порт, необходимо соответствующим образом изменить конфигурацию выше