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

Обзор клиентов Java

Клиент ClickHouse

Клиент Java — это библиотека, реализующая собственный API, который абстрагирует детали сетевых коммуникаций с сервером ClickHouse. В настоящее время поддерживается только HTTP интерфейс. Библиотека предоставляет утилиты для работы с различными форматами ClickHouse и другими связанными функциями.

Клиент Java был разработан еще в 2015 году. Его кодовая база стала очень трудно поддерживаемой, API запутанным, и дальнейшая оптимизация сложна. Поэтому в 2024 году мы его переработали в новый компонент client-v2. У него ясный API, легковесная кодовая база и улучшения производительности, лучшее поддержание форматов ClickHouse (в основном RowBinary и Native). JDBC будет использовать этот клиент в ближайшем будущем.

Поддерживаемые типы данных

Тип данныхПоддержка клиента V2Поддержка клиента V1
Int8
Int16
Int32
Int64
Int128
Int256
UInt8
UInt16
UInt32
UInt64
UInt128
UInt256
Float32
Float64
Decimal
Decimal32
Decimal64
Decimal128
Decimal256
Bool
String
FixedString
Nullable
Date
Date32
DateTime
DateTime32
DateTime64
Interval
Enum
Enum8
Enum16
Array
Map
Nested
Tuple
UUID
IPv4
IPv6
Object
Point
Nothing
MultiPolygon
Ring
Polygon
SimpleAggregateFunction
AggregateFunction

Типы данных ClickHouse

примечание
  • AggregatedFunction - ⚠️ не поддерживает SELECT * FROM table ...
  • Decimal - SET output_format_decimal_trailing_zeros=1 в версии 21.9+ для консистентности
  • Enum - может рассматриваться как строка и целое число
  • UInt64 - сопоставляется с long в клиенте V1

Функции

Таблица функций клиентов:

НазваниеClient V2Client V1Комментарии
Http Connection
Http Compression (LZ4)
Сжатие ответа сервера - LZ4
Сжатие запроса клиента - LZ4
HTTPS
Сертификат SSL клиента (mTLS)
Http Proxy
POJO SerDe
Connection PoolКогда используется Apache HTTP Client
Именованные параметры
Повторная попытка при сбое
Failover
Балансировка нагрузки
Автообнаружение сервера
Лог комментарий
Роли сессии
Аутентификация клиента SSL
Часовой пояс сессии

Драйвер JDBC наследует те же функции, что и реализация клиентской библиотеки. Другие функции JDBC перечислены на его странице.

Совместимость

  • Все проекты в этом репозитории тестируются с всеми активными версиями LTS ClickHouse.
  • Политика поддержки
  • Мы рекомендуем постоянно обновлять клиент, чтобы не пропустить исправления безопасности и новые улучшения.
  • Если у вас возникла проблема с миграцией на API версии 2 - создайте проблему и мы ответим!

Логирование

Наш клиент на языке Java использует SLF4J для логирования. Вы можете использовать любую совместимую с SLF4J фреймворк для логирования, такую как Logback или Log4j. Например, если вы используете Maven, вы можете добавить следующую зависимость в ваш файл pom.xml:

Настройка логирования

Это будет зависеть от фреймворка логирования, который вы используете. Например, если вы используете Logback, вы можете настроить логирование в файле под названием logback.xml:

Изменения