它到底解决什么问题
普通数据库(如 MySQL)像记账本:一行一笔记录,适合"下单、改状态"这类一条条的操作; 但你想"按月汇总销售额""统计每个品种的成交分布"时,它得把每一行整行翻出来看,千万行就慢了。
Taibai 是统计账房:数据按列摆放。算"每个品种的成交总额"时只翻"品种"和"金额"两列, 碰都不碰其他列,自然快得多;同一列里重复值多,压缩后只占很小空间—— 同样的历史数据,Taibai 占的磁盘常常只有普通数据库的一半以下。
这些场景,适合交给 Taibai
| 场景 | 你会怎么用 |
|---|---|
| 行情数据落地与回溯 | 几年的 Tick/分钟线批量灌入,按品种、时间区间随意回溯统计 |
| 服务器日志集中分析 | 多台机器日志入库,统计错误率 TopN、按服务/时间段切片排查 |
| App / 网站埋点分析 | 用户行为事件入库,留存、漏斗、路径统计随取随算 |
| 历史数据低成本归档 | 冷数据按表调高压缩级别(1-22 档),归档几乎不占地方,要查时还能查 |
但如果你的场景是"高频单条查询"(秒杀下单、按 ID 查订单详情),Taibai 不是合适工具—— 那是 MySQL 这类行存数据库的主场。Taibai 的主场是一次写入、反复统计分析。
能力清单(术语都配了白话)
| 能力 | 对你的意义 |
|---|---|
| SQL 访问 | 标准 SQL 语法,会 SQL 就能上手;多个客户端可同时连一台服务 |
| 列存 + CLUSTER BY | 按列摆放数据,统计查询只读需要的列;聚簇键让常用过滤更快 |
| zstd 压缩(1-22 档) | 每张表自选压缩档位:热表要快调低档,冷表要省调高档 |
| 事务 | 批量导入/更新要么全成、要么全不生效,不会写一半 |
| 用户权限 | 不同的人给不同的库表权限,分析同事不用都给管理员 |
| 分区 + TTL | 按时间分区查询只扫相关区间;过期数据自动清理,不用人守着删 |
| 查询管理 | SHOW PROCESSLIST 看谁在跑大查询,KILL QUERY 一键叫停,可设语句超时 |
| 变更订阅(pub/sub) | 数据有增改时通知下游系统,不用轮询扫表 |
| TLS 加密 | 跨机房/公网连接可加密,数据传输不被窃听 |
| 批量导入 / CSV 导出 | 内置导入工具直接吃 CSV;结果一键导出回 CSV 给 Excel |
和熟人的对比
| 对比对象 | 差别在哪 |
|---|---|
| MySQL 等行存数据库 | 它们擅长高频单条读写(下单、改状态);Taibai 擅长大批量统计分析,快得多、存得省。两者常配合使用:业务库 + 分析库 |
| DuckDB 等嵌入式库 | 嵌入式库长在你的程序里、单机单进程用;Taibai 是独立服务,多客户端同时连,带权限、查询管理、变更订阅这些"服务器"能力 |
| Excel | Excel 是最好的开始,但十万行就卡、公式一多就崩;Taibai 处理亿级行,还是用熟悉的 SQL |
五分钟上手
1. 构建并启动(默认端口 5151)
cargo build --release(或make build);Windows 也有 MSI 图形安装包cargo run --release -- --config conf/example.yaml
2. 连上去试试
cargo run --release -- client --host 127.0.0.1:5151 --user root --password taibai --database main- 建表:
CREATE TABLE ticks (symbol VARCHAR, ts TIMESTAMP, price FLOAT64, volume INT64) CLUSTER BY (symbol, ts); - 统计:
SELECT symbol, COUNT(*), AVG(price) FROM ticks GROUP BY symbol;
3. 灌数据
CSV 批量导入工具直接吃文件;查询结果同样可以导出成 CSV,回 Excel 给同事看。
Taibai 是什么?
天工开物出品的免费开源数据库软件,专为统计分析设计:按列存储查询快、自动压缩存储省,支持 SQL、事务、权限、分区、TLS 与变更订阅。当前版本 v0.2.7。
Taibai 和 MySQL 有什么区别?
MySQL 擅长频繁的单条读写;Taibai 擅长千万行级的统计分析,且压缩后存储成本低得多。业务系统用 MySQL,分析归档用 Taibai,是常见搭配。
Taibai 免费吗?可以商用吗?
免费且开源,Apache-2.0 / MIT 双许可,可商用。Linux/macOS 构建脚本 + Windows MSI 安装包。
Taibai 这个名字和太白金星、李白有什么关系?
没有关系。Taibai 取自秦岭主峰太白山,是天工开物旗下数据库的品牌名,与太白金星、李白、太白县等地名与人名典故均无关联。
