跳转到主要内容

ClickHouse client

Java client 是一个实现了自身 API 的库,用于屏蔽与 ClickHouse server 进行网络通信的底层细节。目前仅支持 HTTP interface。该库还提供了处理不同 ClickHouse formats 以及其他相关功能的实用工具。 Java Client 最早于 2015 年开发。如今,它的代码库已变得非常难以维护,API 也较为混乱,并且很难再继续优化。因此,我们在 2024 年将其重构为一个新组件 client-v2。它具有更清晰的 API、更轻量的代码库和更好的性能提升,同时对 ClickHouse formats 的支持也更完善 (主要是 RowBinary 和 Native) 。JDBC 在不久的将来将使用这个客户端。

支持的数据类型

ClickHouse 数据类型
部分支持
  • AggregateFunction — 仅支持直接以二进制方式读取 groupBitmap。对于其他聚合函数 (minmaxavg 等) ,请在查询中使用 -Merge 组合器 (例如 minMerge()avgMerge()) ,以便在服务端解析其状态。不支持对 AggregateFunction 类型的列执行 SELECT * FROM table ...
数据类型说明
  • Decimal — 在 21.9 及以上版本中,设置 SET output_format_decimal_trailing_zeros=1 以保持一致性。
  • Enum — 可同时按字符串和整数处理。
  • UInt64 — 在 client-v1 中映射为 long

功能

客户端功能表: JDBC 驱动继承了其底层客户端实现的相同功能。其他 JDBC 功能请参见其页面

兼容性

  • 此仓库中的所有项目均已针对 ClickHouse 所有当前活跃的 LTS 版本进行了测试。
  • 支持策略
  • 我们建议持续升级客户端,以免错过安全修复和新改进
  • 如果你在迁移到 v2 API 时遇到问题,请创建 issue,我们会及时回复!

日志

我们的 Java 客户端使用 SLF4J 进行日志记录。你可以使用任何兼容 SLF4J 的日志框架,例如 LogbackLog4j。 例如,如果你使用 Maven,可以将以下依赖添加到 pom.xml 文件中:
pom.xml

配置日志

这取决于所使用的日志框架。例如,如果你使用的是 Logback,则可以在名为 logback.xml 的文件中配置日志:
logback.xml
更新日志
最后修改于 2026年7月2日