メインコンテンツまでスキップ
メインコンテンツまでスキップ

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データ型

注記
  • AggregateFunction - ⚠️ 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 Client使用時
Named Parameters
失敗時の再試行
フェイルオーバー
負荷分散
サーバー自動検出
ログコメント
セッションロール
SSLクライアント認証
セッションタイムゾーン

JDBCドライバは、基盤となるクライアントの実装と同じ機能を引き継ぎます。他のJDBC機能はそのページにリストされています。

互換性

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

ロギング

私たちのJava言語クライアントは、SLF4Jをロギングに使用します。LogbackLog4jなど、任意のSLF4J互換ロギングフレームワークを使用できます。 例えば、Mavenを使用している場合は、次の依存関係をpom.xmlファイルに追加できます。

ロギングの設定

これは、使用しているロギングフレームワークによって異なります。例えば、Logbackを使用している場合、logback.xmlというファイルでロギングを設定できます。

変更履歴