Skip to content

Commit ef6ddbe

Browse files
committed
rewrote about and compatibility sections
1 parent 22a12fc commit ef6ddbe

File tree

2 files changed

+32
-105
lines changed

2 files changed

+32
-105
lines changed

README.md

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -26,28 +26,37 @@ Table of Contents
2626

2727
## About the Project
2828

29-
This is the official Java Client and JDBC for ClickHouse Database (https://github.com/ClickHouse/Clickhouse).
30-
Java client is the base component and has own API for working with ClickHouse in a "direct" way. JDBC driver is
31-
a library implementing JDBC API 1.3 on top of the Java client.
32-
33-
There are two implementations of the Java Client:
34-
- client-v1 - initial implementation (projects: clickhouse-client, clickhouse-data, clickhouse-http-client)
35-
- still maintained
36-
- only critical fixes & features
37-
- client-v2 - refactored implementation (projects: client-v2)
38-
- essential functionality is implemented
39-
- works with cloud
40-
- we are working on performance right now
41-
- also we will refactor JDBC driver to use this client
29+
This is official Java Client and JDBC for ClickHouse Database (https://github.com/ClickHouse/Clickhouse). Java Client is the core component and provides API to interact with the database. In 2023 this component and its API was refactored into a new component `client-v2`. Both version are available but older one will be deprecated soon. However it will receive security and critical bug fixes. New `client-v2` has stable API and we are working on performance and feature parity to make it a production ready.
30+
JDBC driver component is an implementation of JDBC API. It uses Java Client API to interact with the database server.
31+
32+
**Benefits of using Client-V2:**
33+
- Stable API.
34+
- Minimal functionality is implemented
35+
- SSL & mTLS support
36+
- RowBinary* formats support for reading
37+
- Proxy support
38+
- HTTP protocol
39+
- New Insert API that accepts a list of POJOs
40+
- New Query API that returns a list of GenericRecords that cant be used as DTOs
41+
- Native format reader
42+
- Performance improvements
43+
- Less number of internal buffers compare to the old client
44+
- More configuration for performance tuning
45+
- Less object allocation
46+
- Upcoming new features
47+
48+
Old client still be used when:
49+
- using JDBC driver ( we are working on its refactoring )
4250

4351

4452
## Important
4553

4654
### Upcomming deprecations:
4755
| Component | Version | Comment |
4856
|--------------------------------|---------|--------------------------------------------------|
49-
| Clickhouse CLI Client | 0.7.0 | |
50-
| ClickHouse GRPC Client | 0.7.0 | Please use the clickhouse http protocol instead |
57+
| Clickhouse CLI Client (Java) | 0.7.0 | Please use `clickhouse-client` (see https://clickhouse.com/docs/en/interfaces/cli#clickhouse-client) |
58+
| ClickHouse GRPC Client | 0.7.0 | Please use the ClickHouse http client instead. GRPC protos still available https://github.com/ClickHouse/ClickHouse/tree/master/src/Server/grpc_protos |
59+
5160

5261
## Installation
5362

@@ -190,13 +199,6 @@ Client client = new Client.Builder()
190199
| ClickHouse Java HTTP Client | [![Maven Central](https://img.shields.io/maven-central/v/com.clickhouse/clickhouse-client)](https://mvnrepository.com/artifact/com.clickhouse/clickhouse-http-client) |
191200
| ClickHouse JDBC Driver | [![Maven Central](https://img.shields.io/maven-central/v/com.clickhouse/clickhouse-jdbc)](https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc) |
192201

193-
### Compatibility
194-
195-
| ClickHouse Version | Client Version | Comment |
196-
|--------------------|----------------|----------------------------------------------------------------------------------------------------------------------------------------------|
197-
| Server < 20.7 | 0.3.1-patch | use 0.3.1-patch(or 0.2.6 if you're stuck with JDK 7) |
198-
| Server >= 20.7 | 0.3.2 | use 0.3.2 or above. All [active releases](https://github.com/ClickHouse/ClickHouse/pulls?q=is%3Aopen+is%3Apr+label%3Arelease) are supported. |
199-
| Server >= 23.0 | >0.6.0 | use 0.6.0 or above. |
200202

201203
### Features
202204

@@ -206,7 +208,7 @@ Client client = new Client.Builder()
206208
- Apache HTTP Client as HTTP client
207209
- Connection pooling
208210
- Failures on retry
209-
- SSL support
211+
- SSL & mTLS support
210212
- Cloud support
211213
- Proxy support
212214

@@ -216,6 +218,13 @@ See [java client examples](../../tree/main/examples/client)
216218

217219
See [JDBC examples](../../tree/main/examples/jdbc)
218220

221+
## Compatibility
222+
223+
- All projects in this repo are tested with all [active LTS versions](https://github.com/ClickHouse/ClickHouse/pulls?q=is%3Aopen+is%3Apr+label%3Arelease) of ClickHouse.
224+
- [Support policy](https://github.com/ClickHouse/ClickHouse/blob/master/SECURITY.md#security-change-log-and-support)
225+
- We recommend to upgrade client continuously to not miss security fixes and new improvements
226+
- If you have an issue with migration - create and issue and we will respond!
227+
219228
## Documentation
220229

221230
[Java Client V1 Docs :: ClickHouse website](https://clickhouse.com/docs/en/integrations/language-clients/java/client)

0 commit comments

Comments
 (0)