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

Java クライアントの概要

ClickHouse クライアント

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

Java クライアントは 2015 年に開発されました。そのコードベースは非常にメンテナンスが難しく、API は混乱を招くものであり、さらなる最適化が困難でした。そこで、私たちは 2024 年に新しいコンポーネント client-v2 にリファクタリングしました。これにより、明確な API、より軽量なコードベース、パフォーマンスの向上、ClickHouse フォーマットのサポート(主に RowBinary と Native)が改善されました。JDBC は近い将来にこのクライアントを使用します。

サポートされているデータ型

データ型クライアント V2 サポートクライアント 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 データ型

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

機能

クライアントの機能一覧:

名称クライアント V2クライアント V1コメント
Http 接続
Http 圧縮 (LZ4)
サーバー応答圧縮 - LZ4
クライアントリクエスト圧縮 - LZ4
HTTPS
クライアント SSL 証明書 (mTLS)
Http プロキシ
POJO SerDe
接続プールApache HTTP Client 使用時
名前付きパラメータ
失敗時の再試行
フェイルオーバー
ロードバランシング
サーバーの自動発見
ログコメント
セッションロール
SSL クライアント認証
セッションタイムゾーン

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

互換性

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

ロギング

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

ロギングの設定

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

変更履歴