ADR-002: 用 pgvector 不另起 Qdrant / Milvus
Arova Nexus — Phase 0 Product Definition | 2026-03-31

狀態: 已採納(Accepted)
日期: 2026-04
決策者: Software Architect

背景

Arova Nexus 的 L4 Intelligence Layer 需要向量資料庫來:

PRD Ch19(v1.3)原本列出三個候選:Qdrant、Milvus、pgvector。需要選一個作為 MVP 的向量儲存。

決策

採用 pgvector(PostgreSQL 擴充)。

理由

  1. On-Prem 部署複雜度最低 — 我們本來就需要 PostgreSQL 儲存業務資料,再加一個擴充比多部署一個獨立服務簡單得多
  2. 單一備份策略 — pg_dump 同時備份業務資料和向量資料,不需要兩套備份/還原流程
  3. Transactional 一致性 — 實體新增/更新時,業務資料和 embedding 可以在同一個 transaction 內更新,避免資料漂移
  4. MVP 資料量規模合適 — 預估 MVP 的實體總數 10 萬~100 萬筆(工單 + 事件 + KB chunk + 資產),pgvector 用 HNSW 索引綽綽有餘
  5. 運維團隊熟悉 — 客戶 IT 團隊多半已熟 PostgreSQL,Qdrant/Milvus 是新技能
  6. Mastra AI 原生支援@mastra/pg 內建 pgvector 整合,不需要額外 adapter

考慮過的替代方案

方案 優點 缺點
pgvector(選) 單一資料庫、備份簡單、transactional、on-prem 友善 效能在千萬筆以上會不如專用向量 DB
Qdrant 效能好、Rust 寫、API 直觀 多一個服務要部署/備份;客戶 IT 要學新東西;Mastra 整合不如 pgvector 緊密
Milvus 功能最完整、大規模效能最好 部署複雜(多個元件:etcd + MinIO + Pulsar);過度 for MVP 規模
Elasticsearch + vector 全文檢索 + 向量一次滿足 記憶體吃重,on-prem 小客戶環境負擔大

影響

正面

負面 / 取捨

需要追蹤的風險

觸發換方案的條件(不滿足時繼續用 pgvector)

只要以下任一條件達成,就啟動向量 DB 升級 POC:

相關