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

Клиент ClickHouse

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

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

Типы данных ClickHouse
Частичная поддержка
  • AggregateFunction — Для прямого чтения в бинарном формате поддерживается только groupBitmap. Для других агрегатных функций (min, max, avg и т. д.) используйте комбинаторы -Merge в запросе (например, minMerge(), avgMerge()), чтобы вычислить состояние на стороне сервера. SELECT * FROM table ... не поддерживается для столбцов типа AggregateFunction.
Примечания по типам данных
  • DecimalSET output_format_decimal_trailing_zeros=1 в 21.9+ для единообразия.
  • Enum — может обрабатываться как строка и как целое число.
  • UInt64 — в client-v1 сопоставляется с long.

Возможности

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

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

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

Логирование

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

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

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