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

JDBC Catalog для Clickhouse

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

Общие сведения о JDBC Catalog см. в разделе Обзор JDBC Catalog.

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

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

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

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

  • Сетевое соединение между каждым узлом 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/ipv6/uuidstring
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 (если такого каталога нет, создайте его вручную).