这个项目能做什么

chconn 是一个纯 Go 的 ClickHouse 驱动,通过原生 TCP 协议通信,针对高性能、面向列的数据访问进行了优化。它支持完整的泛型,可为插入和查询实现类型安全的列操作。 主要特性包括: - **面向列的插入和查询**:向类型化列追加数据,并批量插入或逐块读取以实现最大吞吐量。 - **面向行的查询**:使用 `Query` 和 `Scan` 进行熟悉的 SQL 风格迭代。 - **结构体扫描**:按字段名或位置将结果直接映射到 Go 结构体,支持 `RowToStructByName`、`RowToStructByNameLax`、`RowToStructByPos` 和 `RowTo` 等选项。 - **流式插入**:追加行或写入列批次,以进行多批次插入。 - **参数化查询**:使用 ClickHouse 原生语法实现类型安全的查询参数。 - **连接池**:可配置的连接池,支持最小/最大连接数、生命周期、空闲时间和健康检查。 - **全面的类型支持**:包括数值类型、字符串、日期、UUID、IP、枚举、数组、可空、低基数、映射、元组、嵌套、JSON、变体、动态、地理类型等。 - **压缩**:支持 LZ4 和 ZSTD。 - **TLS/SSL**:支持多种 SSL 模式。 - **代码生成器(chgen)**:从 ClickHouse 表或 SQL 文件生成 Go 模型结构体和列声明。 - **SQL 构建器**:用于 SELECT 查询的流式构建器,支持连接、条件、分组等。 - **JSON 导出**:将查询结果导出为 JSON 对象、数组或逐行形式。 - **进度和性能分析回调**:实时监控查询执行。 - **错误处理**:带错误码和堆栈跟踪的类型化 ClickHouse 错误,以及哨兵错误。 - **上下文支持**:所有操作都接受上下文,以支持超时和取消。 支持的 Go 版本为最新的两个稳定版本,以及 ClickHouse 24.3+。该驱动已针对 ClickHouse 24.3、24.8、25.3、25.8 和 26.2 进行测试。基准测试显示,与其他 Go ClickHouse 驱动相比,其在性能和内存分配方面有显著改进。