Penca:开源LTAP数据库,对象存储上的版本化OLTP+OLAP
OLTP和OLAP从来是两种活法,但Penca偏要它们住一间房。这项目是个早期PoC,目标是在对象存储上跑一份开放格式的数据,同时支持事务写入和分析查询,还自带版本管理和分支能力。
下一篇
别再用终端管理 AI Agent 了:开发者正在变成经理 →
架构上分三层:Postgres当临时热层负责写入,后台进程把已提交的行刷成列式文件放到对象存储冷层,查询时用DataFusion引擎把两边结果合并。这思路不算新鲜,Databricks六月刚发布LTAP,说白了就是想把数据湖和数据库的边界磨掉。Penca的差异化在于开源(Apache 2.0)、版本化,所以理论上能做审计、as-of查询,以后还能回滚。
我比较感兴趣的是版本化的实现方式。看了一遍架构博客,它应该是利用对象存储的不可变性做快照,类似Git的commit。这个如果真能做好,数据回滚和分支切换会比直接改表结构优雅得多。但难点也在这:分支意味着多版本共存,查询引擎得在多个快照间做一致性选择,性能开销不会小。
还有个细节挺有意思的——作者自己承认代码是重度AI生成的,还把开发工具链留在仓库里。第一次看到有人把AI生成率当feature写的,也算测试AI编程到底能不能撑起一个数据库项目。
目前瓶颈很明显:隔离级别还是last-write-wins,多语句SQL也不支持,pgwire前端还没做。作者列了Iceberg导出、分支、全文索引这些路线图,听起来野心不小。如果能把版本化做到生产级别,这就是个自带时间旅行和分支的数据湖,那很多数据工程团队的工作流会被简化。
更系统的工具评测汇总在AI工具实测笔记,有不少直接可参考的案例。