突发奇想:除了向量库、图库,是不是还得有个“时间数据库”?
本文纯属个人突发奇想搞RAG、搞知识图谱都忽略了时间。如果能像Join关系表一样关联向量、图和时序数据是不是更接近真实世界1. 起因为啥突然想这个最近看了一些因果推断的东西发现一个事情现实世界最重要的规律是因果律而因果律的前提就是时间先后——原因必须发生在结果之前。所以我们给AI喂数据的时候光有向量语义、有图关系是不够的还得有一个严格的时间轴。于是冒出两个问题有没有专门管时间的数据库比如支持“某个事件在数据库里是什么时候记录的”和“这个事件在现实中是什么时候发生的”这两个时间要能分开查。现在这么多库关系库、向量库、图库、时序库能不能像传统数据库那样一条SQL把它们联表查起来2. 时间数据库确实有但很少有人提我后来查了一下这类数据库确实存在只是不在AI热点的C位。真正的“时间数据库”比如XTDB。它支持双时态就是说每一条数据有两个时间有效时间Valid Time这件事在真实世界啥时候发生的事务时间Transaction Time这条记录啥时候被写进数据库的这个设计很符合现实——数据可能是延迟到达的比如昨天发生的交易今天才入库但你分析因果时得按“发生时间”算。PostgreSQL的时序扩展TimescaleDB比较成熟本质上是在关系库上长出一个时序能力。如果不想引入新数据库可以用这个。更实验的有人基于PG做了MemoriesDB试图把时序、语义向量、关系揉在一起但要上生产还得观察。3. 更头疼的问题怎么联查真正难的是第二个问题公司里可能已经有一套组合拳了——MySQL存业务数据、Milvus存向量、Neo4j存图、InfluxDB存时序。我想查一个很自然的因果问题“在事件A发生前24小时内相关实体的向量相似度超过0.8的记录以及在知识图谱里与A有直接关系的实体全部列出来。”这写代码得多痛苦要在四五套系统里分别查然后在应用层做归并。有没有办法像关系数据库那样JOIN我了解到目前有两种主流思路方案一多模数据库All in One一个数据库原生支持多种数据模型关系表、JSON、时序、图、向量。代表产品国产的金仓KES据说已经在一个库里支持关系时序图向量实测能跨模型用类似SQL的方式查询国外的ArcadeDB图文档向量比较轻量优点不用折腾数据搬家一条查询搞定。缺点对单库能力要求高不是所有多模库都成熟。方案二数据联邦Queries on Top不搬数据但用一个查询引擎在逻辑层把多个库“虚拟”成一个库。技术手段比如PostgreSQL的外部数据包装器FDW或者Doris、Trino这类联邦查询引擎。优点零迁移老系统可以直接被整合。缺点跨库JOIN性能一般查询优化器很难全局最优。4. 我一个突发奇想的人怎么选纯个人瞎想如果真要动手做点东西场景建议新项目想折腾直接上多模数据库比如金仓KES或ArcadeDB少即是多已有PG不想迁移用TimescaleDB扩展管时序向量和图的联合查询先写视图或简单应用层合并公司一堆现成的异构库搭一层联邦查询比如Trino或PG FDW不求性能极致先能联合查再说金融反欺诈、供应链溯源认真考虑双时态数据库比如XTDB否则因果分析不准5. 最后几句实在话我现在明白了时间数据库不是没人需要而是大部分业务场景用PG加一个时间戳就糊弄过去了。真正需要双时态的都是严谨的金融、审计、因果追溯场景。至于“联查多种数据库”目前没有银弹。要么接受多模数据库的不成熟要么接受联邦查询的性能损耗。说不定过两年这真会成为数据库的一个标准配置关系 时序 图 向量外加统一查询语言。反正这是我下午突发奇想记录一下如果哪位大佬真这么做了欢迎交流。后记写完这文章我又想了想也许本质问题不是“有没有时间数据库”而是现在的数据库太擅长遗忘——只记当前状态不记变更历史和因果关系。这跟现实世界拟合还差得远。