Skip to main content
公式 C# クライアントは、HTTP またはネイティブ TCP プロトコルを介して ClickHouse に接続します。 どちらのクライアントも ClickHouse.Driver NuGet パッケージに含まれています。

HTTP

HTTP クライアントは、高レベルでスレッドセーフな ClickHouseClient API と、ORM が使用する ADO.NET API を提供します。 .NET 6.0 以降に対応しており、ほとんどのアプリケーションでの使用を推奨します。 次のいずれかが必要な場合は、HTTP クライアントを使用してください。
  • ADO.NET または ORM。
  • CSV、JSONEachRow、Parquet、または生のストリームによる入出力。
  • Bearer 認証またはカスタム HTTP ヘッダー。
  • パラメータの型解決やフォーマット、読み取り時の変換のカスタマイズ。
  • クエリごとのデータベースまたはロールの指定。
  • JSON の処理性能の向上。TCP クライアントでは、JSON の値をテキストとしてしか転送できません。
HTTP クライアントのドキュメントを読む。

ネイティブ TCP

ネイティブ TCP クライアントは実験的な機能であり、公開 API は今後のリリースで変更される可能性があります。列指向のブロック読み取り、ネイティブ圧縮、プールされた接続、特定の接続に固定されたセッションに対応する ClickHouseTcpClient API を提供します。.NET 8.0 以降に対応しています。 次の機能が必要な場合は、ネイティブ TCP クライアントを使用してください。
  • パフォーマンスの向上 (特にカラム単位でデータを処理する場合)
  • 列指向のデータブロック
  • 接続の維持
  • OpenSessionAsync による特定の接続に固定されたセッション
  • 進捗、プロファイル、ログ、合計値、極値を受け取るコールバック
  • W3C トレースコンテキストの ClickHouse への伝播
ネイティブ TCP クライアントのドキュメントを読む。