finds.dev← search

// the find

housepower/ClickHouse-Native-JDBC

★ 540 · Java · Apache-2.0 · updated Jun 2025

ClickHouse Native Protocol JDBC implementation

A JDBC driver for ClickHouse that talks the native TCP binary protocol instead of the HTTP interface used by the official yandex/clickhouse-jdbc driver, plus a separate module for Spark integration. It's for JVM teams running ClickHouse who are hitting throughput ceilings on the HTTP driver and want columnar wire-format performance.

Native TCP protocol with columnar compression gives a real, benchmarked performance edge over the HTTP-based alternative, and the benchmark report is actually linked rather than just claimed. Ships a shaded jar specifically to dodge dependency conflicts, which matters a lot in Spark environments where classpath collisions are common. The Spark module is a legitimately separate artifact rather than bolted-on glue code, with its own dialect implementation and its own test suite (SparkOnClickHouseITest, SparkDateITest). CI runs both current and legacy integration test workflows, which is more rigor than most drivers this size bother with.

Can't insert complex value expressions like toDate(123456) or anything in non-VALUES formats like TSV, which rules out a chunk of real-world ETL insert patterns — you're stuck doing query-then-transform in Java instead of pushing it to SQL. No ZSTD support, which is the compression codec most ClickHouse deployments actually standardize on now, so you lose wire-size savings the native protocol was supposed to buy you. The Spark integration is pinned to Scala 2.11/2.12 and Spark up to 3.1; for anything on Spark 3.2+ the README itself tells you to go use a different project, meaning this half of the repo is on a deprecation path. Only tested against Java 8/11 — no Java 17/21 in the test matrix despite those being the current LTS targets, so you're taking on some risk if your stack has moved past 11.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →