产品概述
ColumnDB 是一款自主研发的高性能列式分析型数据库系统,采用 Go 语言编写,参考 ClickHouse 的列式存储与向量化执行架构。产品专为 OLAP(在线分析处理) 场景设计,支持完整的 SQL 语法、多表 JOIN、聚合分析、数据压缩等核心功能。
ColumnDB 定位于大数据分析、BI 报表、数据仓库、日志分析、指标聚合等场景。采用列式存储大幅减少 I/O,配合多种压缩算法和向量化执行引擎,在分析型查询上可实现比行存数据库数十倍到数百倍的性能提升。
技术架构
核心特性
📊 列式存储
数据按列存储,查询时只读取涉及的列,大幅减少磁盘 I/O 和内存占用。支持固定大小列向量和可变大小列向量,提供 Append、Get、Set、Slice、Concat 等高效列操作。
⚡ 向量化执行
批量处理数据而非逐行处理,充分利用 CPU SIMD 指令和缓存行,提升 CPU 利用率,在分析型查询上实现数量级性能提升。
🔍 SQL 解析器
完整的 SQL 词法分析器和递归下降语法分析器,生成 AST 语法树。支持 SELECT、INSERT、CREATE TABLE、DROP TABLE、ALTER TABLE 等 SQL 语句。
📈 查询优化
基于规则的查询优化器,支持谓词下推(Predicate Pushdown)、投影下推(Projection Pushdown)、列裁剪(Column Pruning)、常量折叠(Constant Folding)。
🌳 多类型索引
支持位图索引(低基数列快速 AND/OR/XOR)、跳表索引(高基数列 O(log n) 查找)、B+树索引(范围查询),自动选择最优索引。
🗜️ 数据压缩
内置 4 种压缩算法:Delta 编码(差分编码)、RLE(游程编码)、Dictionary 编码(字典编码)、FOR 编码(Frame Of Reference),大幅减少存储空间。
🔗 JOIN 支持
支持 7 种 JOIN 类型:INNER、LEFT、RIGHT、FULL、SEMI、ANTI、CROSS。实现嵌套循环 JOIN 和交叉 JOIN,配合 JOIN 优化器自动选择最优执行策略。
📊 聚合框架
支持 COUNT、SUM、AVG、MIN、MAX、STDDEV、VARIANCE 等聚合函数,支持无分组聚合和 GROUP BY 分组聚合,满足各种统计分析需求。
🔢 数据类型
丰富的数据类型系统:Int8/16/32/64、Float32/64、String、Bool、Date、DateTime 等基础类型,以及 Array、Tuple、Map、Nullable、LowCardinality 等复合类型。
🔒 事务支持
完整的事务管理:Begin、Commit、Rollback。支持 4 种隔离级别:ReadUncommitted、ReadCommitted、RepeatableRead、Serializable。支持共享锁、排他锁和死锁检测。
💾 持久化与 WAL
WAL 预写日志记录所有数据变更,支持 CRC32 校验和、文件轮转、崩溃恢复。数据块持久化到磁盘,支持校验和验证数据完整性。
📈 监控系统
内置指标注册表(Counter、Gauge),预定义查询、连接、行、字节、错误、缓存等指标。支持系统统计(Goroutine、内存、GC)和健康检查。
快速开始
1. 启动服务器
2. 连接客户端
3. SQL 示例
产品对比
| 特性 | ColumnDB | ClickHouse |
|---|---|---|
| 存储方式 | 列式存储 | 列式存储 |
| 执行方式 | 向量化执行 | 向量化执行 |
| SQL 支持 | 完整 SQL 解析器 | 扩展 SQL |
| JOIN | 7 种 JOIN 类型 | 多种 JOIN |
| 压缩算法 | Delta/RLE/Dictionary/FOR | LZ4/ZSTD 等 |
| 索引 | 位图/跳表/B+树 | 稀疏索引/主键索引 |
| 事务 | 4 种隔离级别 | 有限事务支持 |
| 语言 | Go | C++ |
| 数据分区 | 范围/列表/哈希 | 分区键 |
| 开源协议 | MIT | Apache 2.0 |
立即下载
选择合适的方式获取 ColumnDB
📦 下载完整项目版本: v1.1.0 | 平台: Windows/Linux/macOS | 语言: Go 1.21+
包含: 服务器 + CLI 客户端 + 配置文件 + 完整文档 + 测试用例