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. Сопоставление выглядит следующим образом:
| Doris | ClickHouse |
|---|---|
| Catalog | Сервер ClickHouse |
| База данных | База данных |
| Таблица | Таблица |
Сопоставление типов столбцов
| Тип ClickHouse | Тип Doris | Примечание |
|---|---|---|
| bool | boolean | |
| string | string | |
| date/date32 | date | |
| datetime(S)/datetime64(S) | datetime(S) | |
| float32 | float | |
| float64 | double | |
| int8 | tinyint | |
| int16/uint8 | smallint | В Doris нет типов данных UNSIGNED, поэтому используется тип на одну ступень большей разрядности |
| int32/uInt16 | int | То же, что и выше |
| int64/uint32 | bigint | То же, что и выше |
| int128/uint64 | largeint | То же, что и выше |
| int256/uint128/uint256 | string | В Doris нет типов данных такой разрядности, поэтому используется STRING |
| decimal(P, S) | decimal(P, S) или string | Если точность превышает максимальную точность, поддерживаемую Doris, используется string |
| enum/ipv4/ipv6/uuid | string | |
| array | array | |
| прочие | UNSUPPORTED |
Связанные параметры
-
jdbc_clickhouse_query_finalПеременная сеанса, по умолчанию имеет значение false. Если задано значение true, к SQL-запросам, отправляемым в Clickhouse, добавляется
SETTINGS final = 1.
Распространённые проблемы
-
При чтении данных Clickhouse возникает ошибка
NoClassDefFoundError: net/jpountz/lz4/LZ4FactoryСкачайте пакет lz4-1.3.0.jar и поместите его в каталог
custom_lib/внутри каждого каталога FE и BE (если такого каталога нет, создайте его вручную).