前幾天,我看到了一個來自 Turso 創始人 Pekka 的觀點:
SQLite 被認為是 AI agent 的理想數據庫,因為它輕量級且適用於 AI agent 的各種場景,但仍然需要進化。
評論區裏也有意思,有人會和大家分享自己為了 SQLite 的進化做了哪些事情(比如開源了 Super SQLite 之類的項目),也有人會推薦有哪些 SQLite 的進化版產品,並和大家討論這些產品的優劣。
實際上,AI 應用開發者對輕量級數據庫的訴求,遠遠不止 AI Agent 這一個場景。那些在 Web 時代和移動互聯網時代支撐了萬億級應用的傳統數據庫,如今在面對 AI 應用的敏捷、輕量、高頻迭代的需求時,都紛紛開始暴露出它們的水土不服。
除了傳統數據庫幾個最明顯的問題 —— 部署複雜度高、資源佔用多、過度設計影響執行效率 以外,很多 AI 應用都會把數據和模型緊密結合,在設備端(如手機、物聯網設備)實現本地化運行,傳統數據庫通過客户端遠程連接服務器的模式,也無法滿足這種嵌入式,甚至離線嵌入式的需求。
為了讓 AI 開發者不浪費太多時間在與數據基礎設施的搏鬥上,而是能夠專注於 AI 算法與應用邏輯本身。我們需要一種新型數據庫,能夠將自己從這種無謂的消耗中解放出來。
0x01. seekdb 的來龍去脈
OceanBase 剛開始只是負責淘寶和支付寶的各種交易支付相關業務,然後是各種銀行和金融機構,接下來是從泛互聯網行業擴展到各行各業,詳見:《開源 4 年、打磨 15 年、300 萬行代碼的開源項目》。
但在 AI 時代,對於開發者,類似於 SQLite 這種輕量級數據庫的能力非常有限(向量能力和傳統 SQL 能力難以兼得),而傳統數據庫又有部署複雜度高、資源佔用多等問題。這兩類數據庫對於開發者來説,都不夠友好。
因此,OceanBase 專門為 AI 時代的開發者,打造了一個開源免費、輕量易用、擁有強大 AI 搜索能力的數據庫 —— seekdb。個人筆記本安裝無壓力,讓大家只要有機器,就能跑 OB!
GitHub 地址:github.com/oceanbase/seekdb
0x10. seekdb 簡介
seekdb 是 OceanBase 專門為開發者打造的一款開箱即用、輕量級的數據庫產品,專注於為 AI 應用提供高效的混合搜索能力,支持向量、全文及多模數據的統一存儲與檢索,是構建 AI 應用的新選擇。
seekdb 在繼承了淘寶和支付寶背後的 OceanBase 數據庫核心引擎高性能優勢與 MySQL 全面兼容特性的基礎上,通過深度優化數據搜索架構,為開發者提供了更符合 AI 應用數據處理需求的各項能力。
產品能力矩陣對比
|
特性
|
seekdb
|
OceanBase
|
Chroma
|
Milvus
|
MySQL 9.0
|
PostgreSQL + pgvector
|
DuckDB
|
Elasticsearch
|
|
嵌入式數據庫 |
✅
|
❌
|
✅
|
✅
|
❌
|
❌
|
✅
|
❌
|
|
單機數據庫 |
✅
|
✅
|
✅
|
✅
|
✅
|
✅
|
✅
|
✅
|
|
分佈式數據庫 |
❌
|
✅
|
❌
|
✅
|
❌
|
❌
|
❌
|
✅
|
|
MySQL 兼容 |
✅
|
✅
|
❌
|
❌
|
✅
|
❌
|
✅
|
❌
|
|
向量搜索 |
✅
|
✅
|
✅
|
✅
|
❌
|
✅
|
✅
|
✅
|
|
全文檢索 |
✅
|
✅
|
✅
|
⚠️
|
✅
|
✅
|
✅
|
✅
|
|
混合搜索 |
✅
|
✅
|
✅
|
✅
|
❌
|
⚠️
|
❌
|
✅
|
|
OLTP |
✅
|
✅
|
❌
|
❌
|
✅
|
✅
|
❌
|
❌
|
|
OLAP |
✅
|
✅
|
❌
|
❌
|
❌
|
✅
|
✅
|
⚠️
|
|
開源協議 |
Apache 2.0
|
MulanPubL 2.0
|
Apache 2.0
|
Apache 2.0
|
GPL 2.0
|
PostgreSQL License
|
MIT
|
AGPLv3+ SSPLv1+ Elastic 2.0
|
MySQL 8.0 移除了嵌入式能力
seekdb 的適用場景
- RAG 應用:面向以智能聊天機器人、知識庫、領域專家系統為代表的 RAG 場景,seekdb 支持了完整的 RAG Pipeline 解決方案。內置文檔解析處理功能,集成向量嵌入(Embedding)、重排序(Rerank)及大語言模型(LLM),支持向量/全文/標量混合搜索,在一個數據庫實例內實現 Doc In Data Out。
- AI 輔助編程:面向 AI 輔助編程場景,seekdb 支持對代碼倉庫構建向量和全文索引,基於代碼關鍵詞或代碼語義,進行高效的代碼搜索和生成補全。
- AI Agent 平台類應用:面向 AI Agent 開發場景,seekdb 提供了快速啓動和嵌入式部署能力,支持被快速拉起提供服務。提供高頻增刪改和實時查詢能力,避免數據庫性能瓶頸引起 AI 開發效率降低的問題。提供向量搜索、全文搜索及混合搜索特性和靈活的元數據管理能力,結合會話管理與記憶存儲能力,無需再引入其他庫就可快速構建 AI Agent。提供 MCP Server 組件,無縫接入 AI 生態。
- 語義搜索引擎:面向以電商商品搜索和推薦、多媒體內容檢索、圖片搜索等語義搜索場景,seekdb 支持對接主流向量嵌入模型並提供了向量搜索能力。同時提供了 Hybrid Index 功能,支持基於文本查詢條件進行語義搜索,對用户屏蔽向量嵌入和查詢結果 Rerank 的複雜流程。
- MySQL 應用現代化和 AI 化升級:seekdb 繼承了 OceanBase 單機存儲引擎、執行引擎、事務引擎、高級查詢優化器的完整能力,高度兼容 MySQL,並在此基礎上擴展 AI 能力。小規格可用於物聯網邊緣設備數據採集、小型應用開發和實驗教學等場景,中大規格可用於各行業 OLTP、HTAP 或 AI 業務場景。
seekdb 的產品架構
- 部署模式:支持 Client/Server 和嵌入式兩種部署模式。嵌入式模式下可將 seekdb 直接集成進 Python 應用,便於進行個人開發。
- 具有 ACID 事務語義的存儲層:基於 LSM-Tree 架構的行存列存一體化存儲引擎,自研高效的編碼壓縮機制降低存儲成本。支持數據高頻實時寫入,和麪向不同負載的高性能查詢。
- 多模數據與索引層:支持基礎類型,向量、大文本、JSON 、GIS、Array 等多模數據類型,並提供高效的索引支持。包括 HNSW / IVF 向量索引及索引量化算法,覆蓋多種分詞器和查詢模式的基於 BM25 相關性計算算法的全文索引,適用於語義搜索的混合索引,及 JSON 多值索引、主鍵和二級索引、GIS 索引等。
- 支持混合負載的多模計算層:支持向量、全文、標量等條件的混合搜索。提供 AI Function 能力,實現庫內實時推理。支持完整的 ACID 事務特性及基於 MVCC 的多版本併發訪問能力,提供高級查詢優化器和具備向量化執行能力的高效執行引擎。
- 統一應用接口:兼容 MySQL 原生驅動,提供基於 SQL 的支持多模數據的統一查詢語言。並在此基礎上提供了面向開發者更加友好的向量庫/混搜 SDK。適配 LangChain、LlamaIndex、Dify 等 AI 應用開發框架。提供 MCP Server,無縫接入 AI 生態。
seekdb 的核心特性
- 開箱即用,極速開發,易學易用:單點架構設計,無其他組件依賴。支持 yum、docker、windows/macos 桌面版部署以及原生 Python 嵌入式集成。
- 支持 1C2G 小規格,垂直彈性擴縮容:服務端 1 核 CPU + 2GB 內存即可跑 VectorDBBench Performance1536D50K。
- 高性能向量索引、全文索引,支持向量、全文、標量混合搜索
- 向量搜索:支持高達 16,000 維向量存儲,兼容 L2、內積、餘弦相似度。
- 全文搜索:基於 BM25 算法,提供 Space、Beng、Ngram、IK、Jieba 等多種分詞器。
- 混合搜索:一條 SQL 完成多路查詢與重排序。
- 混搜場景升級,基於 Hybrid Index 指定文本也可進行語義搜索:只需寫入文本數據,系統自動進行 Embedding 並生成向量索引,查詢時僅需指定文本搜索條件。
- 無縫對接各類模型,內置 AI Function 實現庫內實時推理:通過
DBMS_AI_SERVICE系統包實現模型註冊和管理。內置AI_COMPLETE、AI_PROMPT、AI_EMBED、AI_RERANK等函數。 - 基於 JSON 的動態 Schema:支持 JSON 數據類型及動態 Schema,提供 JSON 函數索引、多值索引。
- 數據實時寫入,實時可查:基於 LSM-Tree,數據入庫成功立即可查,同步構建各類索引。
- 兼容 MySQL 不止於 MySQL,支撐 HTAP 混合負載:深度兼容 MySQL 語法協議,一個實例同時支持聯機交易和實時分析。
0x11. 快速部署 seekdb 體驗環境
服務器配置要求詳見官方文檔:deploy-seekdb-testing-environment
1. 使用 yum install 快速部署
添加 seekdb 鏡像源:
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
安裝 seekdb 和 obclient 客户端:
sudo yum install seekdb obclient
如果在啓動前需要更改配置,可以直接修改 /etc/oceanbase/seekdb.cnf,配置項很少可按需修改。
建議 cpu_count 和 memory_limit 最好大於 1C2G,親測 1C1G 也 No Problem。
# 示例配置
port=1234
base-dir=/var/lib/oceanbase
data-dir=/var/lib/oceanbase/store
redo-dir=/var/lib/oceanbase/store/redo
datafile_size=2G
datafile_next=2G
datafile_maxsize=50G
cpu_count=4
memory_limit=2G
log_disk_size=2G
啓動與管理 seekdb:
# 啓動 seekdb
sudo systemctl start seekdb
# 查看啓動狀態 (顯示 Service is ready 即成功)
sudo systemctl status seekdb
# 連接 seekdb
obclient -h127.0.0.1 -uroot -P1234 -A oceanbase
# 停止服務
sudo systemctl stop seekdb
# 開機啓動
sudo systemctl enable seekdb
2. 嵌入式安裝
seekdb 提供了嵌入式部署方式,可以作為一個“庫”運行在你的應用程序內部。
Python 示例
import seekdb
# Open a database
seekdb.open()
# Connect to a database
conn = seekdb.connect()
# Use the connection
cursor = conn.cursor()
cursor.execute("select version();")
results = cursor.fetchall()
print(results)
# Close the connection
conn.close()
運行結果
$ python3 sample.py
[('1.2.34-OceanBase NewProduct-v5.6.7.8',)]
3. 其他部署方式
除此之外,OB 官方還提供了 seekdb 的 Docker 鏡像和桌面版管理工具,篇幅有限這裏就不展開介紹了,感興趣的同學可以移步文檔查看(oceanbase.ai/docs)。
0xFF. 寫在最後
回想去年,我第一次用 OceanBase 數據庫做 RAG 應用,當時用 16GB 內存的 MacBook Pro 啓動 OB 竟然還會因為內存不夠而失敗☹️,那時候的 OB 強大卻略顯“高冷”。
而 seekdb 的出現,讓我有一種“士別三日當刮目相看”的感覺。OceanBase 從昔日“高不可攀”的金融級數據庫,到如今“觸手可及”的 seekdb,OceanBase 團隊這次真正看懂了開發者在 AI 時代對數據庫期望的樣子:無痛的上手體驗,不吃資源、配置簡單、開箱即用,卻依然強大可靠。
GitHub 地址:github.com/oceanbase/seekdb
現在的 seekdb 也許還不是“最終形態”,但它絕對是一個令人興奮的起點,讓我們一起見證這款“更懂 AI 的數據庫”成長之路。
作者:削微寒