Skip to main content
Edit this page

Java クライアント概要

ClickHouse クライアント

Java クライアントは、ClickHouse サーバーとのネットワーク通信の詳細を抽象化する独自の API を実装するライブラリです。現在、HTTP インターフェースのみサポートされています。このライブラリは、様々な ClickHouse フォーマットおよび関連する機能を扱うためのユーティリティを提供します。

Java クライアントは 2015 年に開発されました。そのコードベースは非常に維持しにくく、API は混乱し、これ以上最適化するのが難しくなりました。そのため、2024 年に新しいコンポーネント client-v2 へのリファクタリングを行いました。これには、明確な API、より軽量なコードベース、パフォーマンスの向上、より良い ClickHouse フォーマットサポート(主に RowBinary と Native)が含まれます。JDBC は近い将来このクライアントを使用する予定です。

サポートされているデータタイプ

データタイプClient V2 サポートClient 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 データタイプ

Note
  • AggregatedFunction - ⚠️ SELECT * FROM table ... はサポートされていません
  • Decimal - 一貫性のために 21.9+ で SET output_format_decimal_trailing_zeros=1 を使用
  • Enum - 文字列および整数の両方として扱うことができます
  • UInt64 - client-v1 では long にマッピングされます

機能

クライアントの機能の表:

名称Client V2Client V1コメント
Http 接続
Http 圧縮(LZ4)
サーバー応答の圧縮 - LZ4
クライアント要求の圧縮 - LZ4
HTTPs
クライアント SSL 証明書 (mTLS)
Http プロキシ
POJO シリアライズ・デシリアライズ
コネクションプールApache HTTP クライアントを使用する場合
名前付きパラメータ
失敗時のリトライ
フェイルオーバー
ロードバランシング
サーバー自動検出
ログコメント
セッションロールV2 で導入予定
SSL クライアント認証V2 で導入予定
セッションタイムゾーン

JDBC ドライバーは、基盤となるクライアント実装と同様の機能を継承します。他の JDBC の機能はその ページ に記載されています。

互換性

  • このリポジトリ内のすべてのプロジェクトは、すべての アクティブな LTS バージョン の ClickHouse でテストされています。
  • サポートポリシー
  • セキュリティ修正や新たな改善を逃さないよう、クライアントを継続的にアップグレードすることをお勧めします
  • v2 API への移行で問題がある場合は、問題を作成 していただければ対応します!