比 MySQL 轻,比 SQLite 强:终于有人把 AI 数据库做对了

前几天,我看到了一个来自 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 应用数据处理需求的各项能力。

产品能力矩阵对比

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 的核心特性

  1. 开箱即用,极速开发,易学易用:单点架构设计,无其他组件依赖。支持 yum、docker、windows/macos 桌面版部署以及原生 Python 嵌入式集成。
  2. 支持 1C2G 小规格,垂直弹性扩缩容:服务端 1 核 CPU + 2GB 内存即可跑 VectorDBBench Performance1536D50K。
  3. 高性能向量索引、全文索引,支持向量、全文、标量混合搜索
    • 向量搜索:支持高达 16,000 维向量存储,兼容 L2、内积、余弦相似度。
    • 全文搜索:基于 BM25 算法,提供 Space、Beng、Ngram、IK、Jieba 等多种分词器。
    • 混合搜索:一条 SQL 完成多路查询与重排序。
  4. 混搜场景升级,基于 Hybrid Index 指定文本也可进行语义搜索:只需写入文本数据,系统自动进行 Embedding 并生成向量索引,查询时仅需指定文本搜索条件。
  5. 无缝对接各类模型,内置 AI Function 实现库内实时推理 :通过 DBMS_AI_SERVICE 系统包实现模型注册和管理。内置 AI_COMPLETEAI_PROMPTAI_EMBEDAI_RERANK 等函数。
  6. 基于 JSON 的动态 Schema:支持 JSON 数据类型及动态 Schema,提供 JSON 函数索引、多值索引。
  7. 数据实时写入,实时可查:基于 LSM-Tree,数据入库成功立即可查,同步构建各类索引。
  8. 兼容 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_countmemory_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 的数据库"成长之路。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/HelloGitHub/blog/18805002

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。