Перейти к содержимому
Последнее обновление

Clickhouse JDBC Catalog

JDBC Catalog в Doris поддерживает подключение к базе данных ClickHouse через стандартный интерфейс JDBC. В этом документе описано, как настроить подключение к базе данных ClickHouse.

Обзор JDBC Catalog см. в разделе Обзор JDBC Catalog

Примечания по использованию​

Для подключения к базе данных ClickHouse необходимы:

  • ClickHouse версии 23.x или выше (более ранние версии не прошли полного тестирования).

  • JDBC-драйвер для базы данных ClickHouse. Последнюю или нужную версию JDBC-драйвера ClickHouse можно скачать из репозитория Maven. Рекомендуется использовать версию 0.4.6 JDBC-драйвера ClickHouse.

  • Сетевое соединение между каждым узлом FE и BE в Doris и сервером ClickHouse. Порт по умолчанию: 8123.

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

CREATE CATALOG clickhouse PROPERTIES (
'type' = 'jdbc',
'user' = 'username',
'password' = 'pwd',
'jdbc_url' = 'jdbc:clickhouse://example.net:8123/',
'driver_url' = 'clickhouse-jdbc-0.4.6-all.jar',
'driver_class' = 'com.clickhouse.jdbc.ClickHouseDriver'
)

Параметр jdbc_url задаёт сведения о подключении и параметры, передаваемые JDBC-драйверу ClickHouse. Поддерживаемые параметры URL перечислены в разделе Настройка JDBC-драйвера ClickHouse.

Безопасность подключения​

Если на источнике данных настроен TLS и установлен общедоверенный сертификат, можно включить TLS между кластером и источником данных, добавив параметры в строку подключения JDBC, заданную в свойстве jdbc_url.

Например, чтобы включить TLS, добавьте параметр ssl=true в свойство конфигурации jdbc_url:

'jdbc_url' = 'jdbc:clickhouse://example.net:8123/db?ssl=true'

Дополнительные сведения о параметрах настройки TLS см. в разделе настройки SSL в документации JDBC-драйвера Clickhouse

Сопоставление иерархий​

При сопоставлении с ClickHouse база данных в Doris соответствует базе данных в ClickHouse. Таблица в базе данных Doris соответствует таблицам в этой базе данных ClickHouse. Схема сопоставления приведена ниже:

DorisClickHouse
CatalogСервер ClickHouse
База данныхБаза данных
ТаблицаТаблица

Сопоставление типов столбцов​

Тип ClickHouseТип DorisКомментарий
boolboolean
stringstring
date/date32date
datetime(S)/datetime64(S)datetime(S)
float32float
float64double
int8tinyint
int16/uint8smallintВ Doris нет типов данных UNSIGNED, поэтому используется тип на одну ступень большей разрядности
int32/uInt16intТо же, что и выше
int64/uint32bigintТо же, что и выше
int128/uint64largeintТо же, что и выше
int256/uint128/uint256stringВ Doris нет типов данных такой разрядности, поэтому используется STRING
decimal(P, S)decimal(P, S) или stringЕсли точность превышает максимальную поддерживаемую в Doris, используется string
enum/ipv4/ipv6string
uuiduuidСопоставляется с нативным типом UUID; в предыдущих выпусках 4.x и 3.x сопоставляется со STRING.
arrayarray
прочиеUNSUPPORTED
  • jdbc_clickhouse_query_final

    Переменная сеанса, значение по умолчанию false. При значении true к SQL-инструкциям, отправляемым в Clickhouse, добавляется SETTINGS final = 1.

Распространённые проблемы​

  1. При чтении данных Clickhouse возникает ошибка NoClassDefFoundError: net/jpountz/lz4/LZ4Factory

    Сначала скачайте пакет lz4-1.3.0.jar и поместите его в каталог custom_lib/ внутри каждого каталога FE и BE (если такого каталога нет, создайте его вручную).