このプロジェクトについて

chconnは、ネイティブTCPプロトコルを介して通信するClickHouse向けの純Goドライバーであり、高性能な列指向データアクセスに最適化されています。完全なジェネリクスをサポートし、挿入と選択の両方で型安全な列操作を可能にします。 主な機能は次のとおりです。 - **列指向の挿入と選択**: 型付き列にデータを追加し、一括挿入またはブロック単位の読み取りにより最大のスループットを実現します。 - **行指向クエリ**: `Query`と`Scan`による使い慣れたSQLスタイルの反復処理。 - **構造体スキャン**: フィールド名または位置によって結果をGo構造体に直接マッピングし、`RowToStructByName`、`RowToStructByNameLax`、`RowToStructByPos`、`RowTo`などのオプションを提供します。 - **ストリーミング挿入**: 行の追加または列バッチの書き込みによるマルチバッチ挿入。 - **パラメータ化クエリ**: ClickHouseネイティブ構文を使用した型安全なクエリパラメータ。 - **コネクションプール**: 最小/最大接続数、ライフタイム、アイドル時間、ヘルスチェックを構成可能なプール。 - **包括的な型サポート**: 数値型、文字列、日付、UUID、IP、列挙型、配列、Nullable、LowCardinality、Map、Tuple、Nested、JSON、Variant、Dynamic、地理型などを含みます。 - **圧縮**: LZ4およびZSTDをサポート。 - **TLS/SSL**: 複数のSSLモード。 - **コードジェネレーター(chgen)**: ClickHouseテーブルまたはSQLファイルからGoモデル構造体と列宣言を生成します。 - **SQLビルダー**: 結合、条件、グループ化などを備えたSELECTクエリ用の流暢なビルダー。 - **JSONエクスポート**: クエリ結果をJSONオブジェクト、配列、または行単位でエクスポートします。 - **進捗およびプロファイルコールバック**: クエリ実行をリアルタイムで監視します。 - **エラー処理**: コードとスタックトレースを備えた型付きClickHouseエラー、およびセンチネルエラー。 - **コンテキストサポート**: すべての操作がタイムアウトとキャンセルのためのコンテキストを受け入れます。 サポートされるGoバージョンは最新の2つの安定版リリースで、ClickHouse 24.3以降です。このドライバーはClickHouse 24.3、24.8、25.3、25.8、26.2に対してテストされています。ベンチマークでは、他のGo ClickHouseドライバーと比較して大幅なパフォーマンスとメモリ割り当ての改善が示されています。