人工智能基础设施格局正在以惊人的速度发展。每个构建智能应用程序的团队都面临一个基本问题: 什么数据库支撑您的人工智能堆栈? 答案决定了您的查询能力、部署灵活性、成本结构,以及最终迭代人工智能功能的能力。
本文对两者进行了全面的比较 星云数据库 — 用 Rust 编写的开源 AI 原生混合数据库 — 以及新兴类别 代理内存平台 (专有 SaaS 服务为 AI 代理提供持久内存、上下文检索和临时状态)。我们检查架构、功能、API、部署、成本和用例,以帮助您做出明智的决策。
什么是星云数据库?
星云数据库 是一个 AI 原生混合数据库,它将文档存储、矢量搜索、带有 AI 扩展的 SQL 查询以及流式检索增强生成 (RAG) 结合在一起 — 所有这些都在一个 Rust 二进制文件中。已获得许可 阿帕奇-2.0,它作为一个自托管解决方案提供,包含 Docker 映像、Helm 图表以及具有自定义资源定义的完整 Kubernetes Operator。
建筑亮点
NebulaDB 被构建为一个工作空间 14 个铁锈板条箱,每个负责不同的功能:
- 星云服务器 — 主要二进制文件、Axum 路由器、Tower 中间件(身份验证、速率限制、CORS、压缩)
- 星云索引 — 具有存储桶范围文档和块存储的核心 TextIndex
- 星云矢量 — HNSW 图实现,具有余弦、L2 平方和负点积距离;针对 x86-64 (AVX2) 和 aarch64 (NEON) 进行 SIMD 优化
- 星云SQL — SQL 解析器 (sqlparser-rs)、规划器和执行器
semantic_match()和vector_distance()功能 - 星云-grpc — 基于 Tonic 的 gRPC 服务:文档、搜索和 AI
- 星云-pgwire — Postgres 有线协议处理程序(简单查询协议,psql 兼容)
- 星云沃尔 — 具有 CRC32 完整性检查、段轮转、快照支持和 zstd 压缩的预写日志
- 星云嵌入 - 具有 Mock 和 OpenAI 兼容实现的可插入嵌入器特征
- 星云-LLM — LLM 客户端特征,具有 Mock、Ollama 和 OpenAI 后端
- 星云块 — 文档分块策略:固定大小(500 个字符,50 个字符重叠)和基于句子
- 星云缓存 — 进程内 LRU 嵌入缓存(默认 10,000 个条目)
- 星云redis缓存 — Redis 支持的 L2 嵌入缓存(SHA-256 键控,故障透明)
- 星云核心 — 共享类型:ID、NebulaError、NodeRole 枚举
- 星云客户端 — 跨区域复制的SDK
三种网络协议
NebulaDB 从一个进程同时服务三个协议:
- 休息+上证 (Axum 0.7) — 完整的 CRUD、语义搜索、SQL 查询、带有服务器发送事件的流式 RAG、Prometheus 指标、管理操作
- 远程过程调用 (Tonic 0.12) — 具有流式 RAG 的文档、搜索和 AI 服务
- Postgres 有线协议 (pgwire 0.25) — 支持完整 SQL 方言(包括 AI 扩展)的简单查询协议;连接到
psql
什么是代理内存平台?
代理内存平台是一个较新的类别 专有 SaaS 服务 旨在为人工智能代理提供持久内存和上下文基础设施。它们通常具有以下特点:
- 时态知识图 — 具有版本历史记录的不可变的基于账本的状态
- 图遍历 — 多跳关系查询而不是仅相似性搜索
- 共享上下文层 - 多代理舰队的协调原语
- 托管基础设施 — 具有企业自托管选项的多租户 SaaS
- REST API 和语言 SDK — 主要通过 HTTP 和 Python/JS 客户端访问
访问通常是基于邀请或门禁的,价格范围从 $249/月 到 $5,000+/月 对于企业层。底层实现是闭源的。
头对头比较
详细尺寸分析
数据模型
星云数据库 将文档存储在具有丰富元数据(任意 JSON)和向量嵌入的存储桶中。文档可以在服务器端分块并保留顺序。该模型自然地映射到知识库、文档语料库和 RAG 管道,您需要在一个系统中摄取、搜索和生成这些管道。
托管平台通常使用 时态知识图 带有矢量基底 - 针对跟踪代理状态如何随时间演变进行了优化。该模型擅长于需要记住用户上个月与现在的偏好的对话代理。
查询接口
星云数据库的 四个查询接口 (REST、gRPC、Postgres 线、自定义 SQL)为团队提供了托管平台无法比拟的灵活性。您的数据工程师使用 psql 用于临时分析。您的微服务调用 gRPC 进行低延迟搜索。您的前端使用 REST 来流式传输 RAG。所有这些都达到了相同的指标——一项错误修复,一项功能添加随处可见。
托管平台提供 REST API 和语言 SDK — 足以进行简单检索,但没有 SQL 分析、没有 Postgres 兼容性,也没有 gRPC。
矢量索引
NebulaDB实现 HNSW(分层可导航小世界) 在 Rust 中从头开始,具有三个距离度量(余弦、L2 平方、负点积)、SIMD 友好的自动矢量化、基于人造丝的并行性以及保留图形连接性的软删除。您可以检查和调整索引,因为它是开源的。
托管平台使用专有的矢量基质 - 您无法检查、调整或理解支持生产系统的检索算法。
具有 AI 扩展的 SQL
这是 NebulaDB 的独特之处,在托管平台中是独一无二的。 SQL引擎支持:
-- Semantic search with metadata filtering
SELECT * FROM knowledge_base
WHERE semantic_match(content, 'Kubernetes deployment patterns')
AND region = 'eu-west-1'
ORDER BY score DESC
LIMIT 10;
-- Analytics over vector corpus
SELECT department, COUNT(*), AVG(score)
FROM documents
WHERE semantic_match(content, 'quarterly revenue')
GROUP BY department;
-- Cross-bucket JOIN with semantic retrieval
SELECT a.title, b.summary
FROM articles a
INNER JOIN summaries b ON a.doc_id = b.ref_id
WHERE semantic_match(a.content, 'machine learning ops');托管平台提供图形遍历查询 - 对于关系感知检索非常强大,但您无法运行 GROUP BY 聚合、JOIN 或将语义搜索与结构化 SQL 分析相结合。
LLM整合和RAG
星云数据库有 内置流媒体 RAG 通过 /api/v1/ai/rag 端点。当 stream=true,它返回服务器发送的事件:
contextevents — 检索到的带有分数的块,在 LLM 开始生成之前交付answer_deltaevents — 来自 LLM 的流式令牌(Ollama 或 OpenAI 兼容)doneevent — 带有块计数和模型信息的完成标记
托管平台提供 上下文检索 - 他们返回相关的块,但你必须自己调用外部法学硕士。该管道分为两个服务,增加了延迟和操作复杂性。
缓存
星云数据库的 多层嵌入缓存 是一个显着的性能优势:
- L1:进程内LRU — 默认 10,000 个条目,零拷贝检索
- L2:Redis — 带有 SHA-256 键控条目的可选分布式缓存; 故障透明 (如果 Redis 宕机则优雅降级)
- SQL结果缓存 — 512 个条目,TTL 为 30 秒,消除重复的语义检索
缓存键的使用 SHA-256(model || 0x00 || text) 以防止跨模型碰撞。批处理层在单次传递中对命中和未命中进行分区,从而最大限度地减少上游嵌入 API 调用。
托管平台在内部处理缓存 - 您无法了解缓存命中率,无法调整缓存大小,也无法控制逐出策略。
耐用性
星云数据库的 预写日志 (WAL) 提供防碰撞的耐用性:
- 每条记录 8 字节标头(长度 + CRC32),采用 bincode 编码
- 当文件超过配置大小时分段轮换
- 向量存储已解析 — 恢复不需要嵌入器在线
- 通过 zstd 压缩对时间点恢复提供快照支持
- WAL 压缩通过快照重建来回收磁盘
领导者/跟随者复制拓扑使用 gRPC WAL 订阅进行跨节点同步,并在所有三个协议层强制执行跟随者写保护(REST:409、gRPC:FAILED_PRECONDITION、pgwire:SQLSTATE 25006)。
部署和运营
NebulaDB 提供了最大的部署灵活性:
- 单一二进制 — 下载并运行
- 码头工人 — Docker Hub 上的多架构镜像 (linux/amd64 + linux/arm64),非 root 用户 (UID 10001)
- Docker 组合 — Ollama、Redis、Prometheus、Grafana 的全栈
- 舵图 — 服务器、展示 UI、可选的 Redis 子图、Prometheus Operator 的 ServiceMonitor
- Kubernetes 运营商 — CRD:
NebulaCluster,NebulaBucket,NebulaRebalance;准入网络钩子;升级前自动快照和 WAL 压缩
托管平台是 SaaS(多租户),以企业自托管作为追加销售层。您可以用部署灵活性来换取操作便利性。
可观察性
NebulaDB包括 生产级可观测性 开箱即用:
- 普罗米修斯兼容
/metrics终点 - Docker Compose 堆栈中预构建的 Grafana 仪表板
- 跟踪集成(通过跟踪箱基于跨度)
- SSE 日志流位于
/admin/logs/stream具有可配置级别 - 健康检查于
/healthz带索引统计
托管平台不会公开记录其可观察性功能。您对缓存性能、查询延迟分布和索引运行状况视而不见。
成本
星云数据库是 免费。 Apache-2.0 许可、自托管、无基于使用的定价、无席位限制、无功能门限。您唯一的成本是运行它的基础设施。
托管平台起始于 $249/月 并缩放至 $5,000+/月。对于迭代人工智能产品的初创公司来说,在编写一行应用程序代码之前,每年需要花费 3,000-60,000 美元。
API 和开发人员经验
文档摄取(自动分块)
curl -X POST http://localhost:8080/api/v1/bucket/knowledge/document \
-H "Authorization: Bearer $NEBULA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"doc_id": "arch-guide-001",
"text": "NebulaDB uses HNSW for approximate nearest neighbor search...",
"metadata": {"department": "engineering", "region": "eu-west-1"}
}'语义搜索
curl -X POST http://localhost:8080/api/v1/ai/search \
-H "Authorization: Bearer $NEBULA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "How does NebulaDB handle vector indexing?",
"bucket": "knowledge",
"top_k": 5
}'流媒体 RAG
curl -N http://localhost:8080/api/v1/ai/rag \
-H "Authorization: Bearer $NEBULA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "Explain the NebulaDB caching architecture",
"bucket": "knowledge",
"top_k": 3,
"stream": true
}'带有 AI 扩展的 SQL(通过 psql)
psql -h localhost -p 5433
SELECT title, score FROM articles
WHERE semantic_match(content, 'Kubernetes deployment patterns')
AND region = 'eu-west-1'
ORDER BY score DESC
LIMIT 10;用例映射
NebulaDB 擅长于
- RAG 管道和语义搜索 — 单个二进制文件中的完整摄取到生成管道消除了将单独的嵌入、索引和生成服务拼接在一起的需要。
- 矢量数据的 SQL 分析 — 没有其他解决方案可以让您运行
GROUP BY department关于语义检索的文档。这解锁了仅检索平台无法实现的分析用例。 - 多协议API服务 — 具有不同客户需求(Web 前端、微服务、数据工程师)的团队可以针对同一索引使用 REST、gRPC 和 Postgres 有线协议。
- 自托管人工智能基础设施 — 完全控制数据驻留、安全策略和扩展。通过 Apache-2.0 许可实现零供应商锁定。
- 知识库和文档搜索 — 具有结合语义相似性和元数据过滤器的混合搜索的企业文档语料库。
- 生产人工智能应用 — 通过 124 项测试、夜间 CI、多架构 Docker 镜像、Helm 图表、Kubernetes Operator 和 Prometheus/Grafana 可观察性,NebulaDB 已做好生产准备。
托管平台可能适合
- 状态代理内存 — 用于聊天机器人式人工智能代理的持久跨会话内存,其中时间状态是主要要求。
- 时间推理 — 当“用户上个月喜欢什么?”时是核心查询模式,不可变账本是不可协商的。
- 多代理共享上下文 — 代理车队与内置共享上下文层进行协调。
- 零操作团队 — 更喜欢完全托管的基础设施并愿意接受成本和供应商锁定权衡的团队。
值得注意的是,许多托管平台用例也可以构建在 NebulaDB 上——基于 WAL 的事件重放提供时间功能,可扩展架构支持自定义代理内存层。
决策框架
成熟度和生产准备情况
NebulaDB展示了强大的工程实践:
- 124 个单元测试 使用 Clippy-clean Rust stable 跨工作区
- 集成测试套件 涵盖 REST CRUD、RAG 流、pgwire SQL、Prometheus 指标和负载测试(60 个并发请求,p95 < 750ms)
- 每晚 CI UTC 时间 02:00,可配置 Ollama 模型
- 多架构 Docker 构建 在主推和 semver 标签上
- 基于属性的测试 通过 proptest 和基准测试 通过 Criterion
托管平台通常是早期阶段的 SaaS,具有基于邀请的访问、有限的公共文档,并且没有可观察的 CI 或测试实践。
结论
对于绝大多数人工智能工作负载——RAG 管道、语义搜索、文档检索、嵌入的 SQL 分析、知识库—— NebulaDB 通过全面的基础设施控制,以零成本提供企业级功能。其 Rust 基础可确保内存安全和性能。三协议架构意味着您的整个组织可以通过他们的首选界面访问相同的数据。 Kubernetes Operator、WAL 持久性和 Prometheus 可观察性使其为生产做好了准备。
代理内存平台的服务范围较窄:构建有状态对话代理的团队需要开箱即用的时间推理,并且更愿意为托管基础设施付费,而不是运营自己的基础设施。对于这些团队来说,每月 249 美元至 5,000 美元以上的成本换来了运营便利,但代价是供应商锁定、有限的查询功能和不透明的基础设施。
对于大多数构建人工智能应用程序的团队来说, NebulaDB 是明智的选择。它是人工智能原生数据基础设施的完整基础——开源、生产就绪且免费。