JDBC bridge

ClickHouse JDBC Bridge https://github.com/ClickHouse/clickhouse-jdbc-bridge позволяет обращаться из ClickHouse к внешним источникам данных (datasources).

Установка

ClickHouse JDBC Bridge является компонентом сервиса ADQMDB и устанавливается вместе с остальными компонентами.

Настройка

В поставку ClickHouse JDBC Bridge входит четыре источника данных (datasources).

      select name from jdbc('', 'show datasources');

┌─name────────┐
│ ch-server   │
│ self_server │
│ postgres13  │
│ script      │
└─────────────┘

postgres13 и ch-server являются значениями по умолчанию поля datasource.json JDBC Bridge configuration конфигурации сервиса ADQMDB в режиме Advanced.

      [
 {
     "$schema": "../datasource.jschema",
     "postgres13": {
         "converter": {
             "mappings": [
                 {
                     "nativeType": "bool",
                     "toType": "String"
                 }
             ]
         },
         "driverUrls": [
             "drivers/postgresql/postgresql-jdbc.jar"
         ],
         "driverClassName": "org.postgresql.Driver",
         "jdbcUrl": "jdbc:postgresql://localhost/test",
         "username": "",
         "password": "",
         "initializationFailTimeout": 0,
         "minimumIdle": 0,
         "maximumPoolSize": 10
     }
 },
 {
     "$schema": "../datasource.jschema",
     "ch-server": {
         "driverUrls": [
             "drivers/clickhouse/clickhouse-jdbc.jar"
         ],
         "driverClassName": "ru.yandex.clickhouse.ClickHouseDriver",
         "jdbcUrl": "jdbc:clickhouse://ch-server:8123/system",
         "username": "default",
         "password": "",
         "initializationFailTimeout": 0,
         "minimumIdle": 0,
         "maximumPoolSize": 10
     }
 }
]

Их можно модифицировать или использовать как шаблоны для описания новых источников данных, соблюдая формат JSON.

Для PostgreSQL нужно указать реальные значения username и password, а в jdbcUrl заменить localhost на хост, на котором установлен PostgreSQL, а test на нужный database.

Использование

  • select * from jdbc(‘postgresql13’, ‘select 1’);
  • select * from jdbc(‘postgresql13’, ‘select * from test_click’);
  • create table default.jdbc_test (id Int32) ENGINE = JDBC(‘datasource://postgresql13’, ‘’, ‘test_click’)
  • select * from jdbc_test

В примерах выше подразумевается, что таблица test_click существует на стороне PostgreSQL и имеет поле ‘id’ типа Int.