暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

OceanBase AI数据库 seekdb

原创 飞天 2025-11-20
908

seekdb 简介

11 月 18 日,在 OceanBase 2025 年度发布会上发布并开源了 OceanBase 首款 AI 原生混合搜索数据库 seekdb(简称 seekdb )。开发者仅需三行代码,即可快速构建知识库、智能体等 AI 应用,轻松应对百亿级多模数据检索,真正实现“开箱即用”的 AI 数据基座。

seekdb 是OceanBase专门为开发者打造的一款开箱即用的轻量级数据库产品,专注于为 AI 应用提供高效的混合搜索能力,支持向量、全文及多模数据的统一存储与检索,深度融合 AI 推理与数据处理,并兼容 Dify、Coze、LangChain、LlamaIndex 等 30 余种主流 AI 框架。这一产品实现了数据库从传统“业务支撑系统”迈向“AI 原生数据入口”的新功能,也是 OceanBase 自启动“Data x AI”战略以来的一份答卷。

seekdb 在继承了淘宝和支付宝背后的 OceanBase 数据库核心引擎高性能优势与 MySQL 全面兼容特性的基础上,通过深度优化数据搜索架构,为开发者提供了更符合 AI应用数据处理需求的各项能力。

image.png

产品能力矩阵

功能 OceanBase seekdb OceanBase 数据库 MySQL 9.0 Chroma Elasticsearch DuckDB Milvus PostgreSQL 和 pgvector
嵌入式数据库 支持 不支持 不支持 (8.0 版本中移除了) 支持 不支持 支持 支持 不支持
单机数据库 支持 支持 支持 支持 支持 支持 支持 支持
分布式数据库 不支持 支持 不支持 不支持 支持 不支持 支持 不支持
MySQL 兼容 支持 支持 支持 不支持 不支持 支持 不支持 不支持
向量搜索 支持 支持 不支持 支持 支持 支持 支持 支持
全文搜索 支持 支持 支持 不支持 支持 支持 部分支持 支持
混合搜索 支持 支持 不支持 不支持 支持 不支持 支持 部分支持
OLTP 支持 支持 支持 不支持 不支持 不支持 不支持 支持
OLAP 支持 支持 不支持 不支持 部分支持 支持 不支持 支持
开源协议 Apache 2.0 MulanPubL 2.0 GPL 2.0 Apache 2.0 AGPLv3 + SSPLv1 + Elastic 2.0 MIT Apache 2.0 PostgreSQL License

产品架构

image.png

官网链接

https://www.oceanbase.ai/

seekdb 部署

seekdb 提供了嵌入式和服务器部署模式,可以根据业务场景需要选择合适的部署模式。

  • 嵌入式模式
    seekdb 以轻量级库的形式嵌入您的应用,支持 pip 一键安装。适用于个人学习、快速原型开发,并可高效运行于多种端侧设备。

  • 服务器模式
    推荐用于测试及生产环境的部署模式,轻量易用,适合稳定高效地提供服务。

本文主要介绍在centos服务器上部署seekdb的过程。

环境说明:

主机名 ip地址 OS版本 内存、CPU 数据库端口
node1 192.*.*.60 Centos7.9 2G 、 1个双核 2881

1、添加 seekdb 镜像源

yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo

执行过程如下:

[root@node1 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo Loaded plugins: fastestmirror, langpacks adding repo from: https://mirrors.aliyun.com/oceanbase/OceanBase.repo grabbing file https://mirrors.aliyun.com/oceanbase/OceanBase.repo to /etc/yum.repos.d/OceanBase.repo repo saved to /etc/yum.repos.d/OceanBase.repo

2、安装 seekdb

yum install seekdb obclient

执行过程如下:

[root@node1 ~]# yum install seekdb obclient Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * c7-media: * epel: mirror.math.princeton.edu * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com base | 3.6 kB 00:00:00 ... docker-ce-stable | 3.5 kB 00:00:00 extras | 2.9 kB 00:00:00 oceanbase.community.stable | 3.0 kB 00:00:00 oceanbase.development-kit | 3.0 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/4): extras/7/x86_64/primary_db | 253 kB 00:00:00 (2/4): oceanbase.development-kit/7/x86_64/primary_db | 111 kB 00:00:00 (3/4): oceanbase.community.stable/7/x86_64/primary_db | 344 kB 00:00:00 (4/4): updates/7/x86_64/primary_db | 27 MB 00:00:04 Resolving Dependencies --> Running transaction check ---> Package obclient.x86_64 0:2.2.10-4.el7 will be installed ---> Package seekdb.x86_64 0:1.0.0.0-100000262025111218.el7 will be installed --> Finished Dependency Resolution epel/x86_64/group | 399 kB 00:00:00 Dependencies Resolved ========================================================================================================================================================================================================================================= Package Arch Version Repository Size ========================================================================================================================================================================================================================================= Installing: obclient x86_64 2.2.10-4.el7 oceanbase.community.stable 11 M seekdb x86_64 1.0.0.0-100000262025111218.el7 oceanbase.community.stable 131 M Transaction Summary ========================================================================================================================================================================================================================================= Install 2 Packages Total download size: 143 M Installed size: 654 M Is this ok [y/d/N]: y Downloading packages: warning: /var/cache/yum/x86_64/7/oceanbase.community.stable/packages/obclient-2.2.10-4.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID e9b4a7aa: NOKEY ] 4.2 MB/s | 23 MB 00:00:28 ETA Public key for obclient-2.2.10-4.el7.x86_64.rpm is not installed (1/2): obclient-2.2.10-4.el7.x86_64.rpm | 11 MB 00:00:04 (2/2): seekdb-1.0.0.0-100000262025111218.el7.x86_64.rpm | 131 MB 00:00:19 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 7.4 MB/s | 143 MB 00:00:19 Retrieving key from https://mirrors.oceanbase.com/RPM-GPG-KEY-OceanBase Importing GPG key 0xE9B4A7AA: Userid : "OceanBase" Fingerprint: ef7d e8e3 6987 b60c acf9 9a53 2ff8 45a6 e9b4 a7aa From : https://mirrors.oceanbase.com/RPM-GPG-KEY-OceanBase Is this ok [y/N]: y Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : obclient-2.2.10-4.el7.x86_64 1/2 execute pre install script Installing : seekdb-1.0.0.0-100000262025111218.el7.x86_64 2/2 execute post install script To configure OceanBase : edit /etc/oceanbase/seekdb.cnf To start OceanBase : systemctl start seekdb To enable OceanBase auto reboot : systemctl enable seekdb To get more infomation : https://www.oceanbase.com/docs Verifying : seekdb-1.0.0.0-100000262025111218.el7.x86_64 1/2 Verifying : obclient-2.2.10-4.el7.x86_64 2/2 Installed: obclient.x86_64 0:2.2.10-4.el7 seekdb.x86_64 0:1.0.0.0-100000262025111218.el7 Complete!

3、启动 seekdb

systemctl start seekdb

执行过程如下:

[root@node1 ~]# systemctl start seekdb [root@node1 ~]#

4、查看 seekdb 的启动状态

systemctl status seekdb

执行过程如下:

[root@node1 ~]# systemctl status seekdb ● seekdb.service - seekdb Loaded: loaded (/usr/lib/systemd/system/seekdb.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2025-11-20 20:45:10 CST; 11min ago Main PID: 2659 (observer) Status: "seekdb is ready and running" Tasks: 172 CGroup: /system.slice/seekdb.service ├─2659 /usr/bin/observer --base-dir=/var/lib/oceanbase --port=2881 --data-dir=/var/lib/oceanbase/store --redo-dir=/var/lib/oceanbase/store/redo --parameter datafile_size=2G --parameter datafile_next=2G --parameter dataf... ├─2824 /usr/bin/obshell daemon --base-dir /var/lib/oceanbase --seekdb └─2830 /usr/bin/obshell server --base-dir /var/lib/oceanbase --seekdb Nov 20 20:45:00 node1 systemd[1]: Starting seekdb... Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: Starting seekdb with command: /usr/bin/observer --base-dir=/var/lib/oceanbase --port=2881 --data-dir=/var/lib/oceanbase/store --redo-dir=/var/lib/oceanbase/store/redo --parameter ... Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: Configuration loaded from: /etc/oceanbase/seekdb.cnf Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: Change working directory to base dir. path='/var/lib/oceanbase/' Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: The log file is in the directory: /var/lib/oceanbase/log/ Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: The observer will be started as a daemon process. You can check the server status by client later. Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: Start observer with --nodaemon if you don't want to start as a daemon process. Nov 20 20:45:00 node1 seekdb_systemd_start[2595]: SeekDB started successfully, starting obshell agent... Nov 20 20:45:10 node1 systemd[1]: Started seekdb. Hint: Some lines were ellipsized, use -l to show in full. [root@node1 ~]#

5、连接 seekdb

mysql -h127.0.0.1 -uroot -P2881 -A oceanbase 或者 obclient -h127.0.0.1 -uroot -P2881 -A oceanbase

执行过程如下:

[root@node1 ~]# mysql -h127.0.0.1 -uroot -P2881 -A oceanbase Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 3221553929 Server version: 5.7.25 OceanBase 4.3.5.3 SeekDB (r1.0.0.0) (Built 100000262025111218-5343637512e28c346f938516af53b7879d4d5974 Nov 12 2025) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [oceanbase]> \q Bye [root@node1 ~]# obclient -h127.0.0.1 -uroot -P2881 -A oceanbase Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 3221553992 Server version: OceanBase 4.3.5.3 SeekDB (r1.0.0.0) (Built 100000262025111218-5343637512e28c346f938516af53b7879d4d5974 Nov 12 2025) Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. obclient(root@(none))[oceanbase]>

6、体验 SQL 基础操作

obclient(root@(none))[oceanbase]> select version(); +----------------------------------+ | version() | +----------------------------------+ | 5.7.25-OceanBase SeekDB-v1.0.0.0 | +----------------------------------+ 1 row in set (0.001 sec) obclient(root@(none))[oceanbase]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | oceanbase | | ocs | | sys_external_tbs | | test | +--------------------+ 6 rows in set (0.003 sec) obclient(root@(none))[oceanbase]> create database db1 DEFAULT CHARACTER SET utf8mb4; Query OK, 1 row affected (0.026 sec) obclient(root@(none))[oceanbase]> use db1; Database changed obclient(root@(none))[db1]>

7、体验向量搜索

  • seekdb 提供了存储、索引、搜索 Embedding 向量数据的能力,支持将向量数据与其他数据一起存储。
  • seekdb 最高支持 16000 维的 Float 类型的稠密向量,支持稀疏向量,支持曼哈顿距离、欧式距离、内积、余弦距离等多种类型向量距离的计算,支持基于 HNSW/IVF 向量索引的创建,支持增量更新删除,同时增量更新删除操作不会影响召回率。
  • seekdb 向量搜索具备带有标量过滤的混合搜索能力。同时提供灵活的访问接口,不仅支持通过 MySQL 协议各种语言客户端使用 SQL 访问,也可以使用 Python SDK 访问。同时也完成了对 AI 应用开发框架 LlamaIndex、DB-GPT 及 AI 应用开发平台 Dify 的适配,更好的服务于 AI 应用开发。

7.1 创建向量列和索引
创建表时,可以使用 VECTOR(dim) 数据类型声明指定列为向量列及其维度。向量索引需要创建在向量列上,且至少需要提供 type 和 distance 两个参数。

示例:创建t1表,包含向量列 embedding,向量数据维度为 3,并在 embedding 列上创建 HNSW 索引,指定距离算法为 L2。

CREATE TABLE t1( id INT PRIMARY KEY, doc VARCHAR(200), embedding VECTOR(3), VECTOR INDEX idx1(embedding) WITH (distance=L2, type=hnsw) );

执行过程如下:

obclient(root@(none))[db1]> CREATE TABLE t1( -> id INT PRIMARY KEY, -> doc VARCHAR(200), -> embedding VECTOR(3), -> VECTOR INDEX idx1(embedding) WITH (distance=L2, type=hnsw) -> ); Query OK, 0 rows affected (0.315 sec) obclient(root@(none))[db1]>

7.2 写入向量数据

INSERT INTO t1 VALUES (1, '苹果', '[1.2,0.7,1.1]'), (2, '香蕉', '[0.6,1.2,0.8]'), (3, '橙子','[1.1,1.1,0.9]'), (4, '胡萝卜', '[5.3,4.8,5.4]'), (5, '菠菜', '[4.9,5.3,4.8]'), (6, '西红柿','[5.2,4.9,5.1]');

本例仅使用了人工生成的 3 维向量,在实际应用中,需要使用嵌入模型对真实的文本进行生成,维度会达到数百或上千维。
执行过程如下:

obclient(root@(none))[db1]> INSERT INTO t1 -> VALUES (1, '苹果', '[1.2,0.7,1.1]'), -> (2, '香蕉', '[0.6,1.2,0.8]'), -> (3, '橙子','[1.1,1.1,0.9]'), -> (4, '胡萝卜', '[5.3,4.8,5.4]'), -> (5, '菠菜', '[4.9,5.3,4.8]'), -> (6, '西红柿','[5.2,4.9,5.1]'); Query OK, 6 rows affected (0.019 sec) Records: 6 Duplicates: 0 Warnings: 0 obclient(root@(none))[db1]> select * from t1; +------+-----------+---------------+ | id | doc | embedding | +------+-----------+---------------+ | 1 | 苹果 | [1.2,0.7,1.1] | | 2 | 香蕉 | [0.6,1.2,0.8] | | 3 | 橙子 | [1.1,1.1,0.9] | | 4 | 胡萝卜 | [5.3,4.8,5.4] | | 5 | 菠菜 | [4.9,5.3,4.8] | | 6 | 西红柿 | [5.2,4.9,5.1] | +------+-----------+---------------+ 6 rows in set (0.003 sec)

7.3 执行向量搜索
进行向量搜索需要提供向量作为搜索条件。假设我们需要找到所有 ‘水果’,其对应的向量为 [0.9, 1.0, 0.9],则对应 SQL 为:

SELECT id, doc FROM t1 ORDER BY l2_distance(embedding, '[0.9, 1.0, 0.9]') APPROXIMATE LIMIT 3;

执行过程如下:

obclient(root@(none))[db1]> SELECT id, doc FROM t1 -> ORDER BY l2_distance(embedding, '[0.9, 1.0, 0.9]') -> APPROXIMATE LIMIT 3; +------+--------+ | id | doc | +------+--------+ | 3 | 橙子 | | 2 | 香蕉 | | 1 | 苹果 | +------+--------+ 3 rows in set (0.005 sec) obclient(root@(none))[db1]>

还可以体验全文索引、混合搜索、AI 函数服务、语义索引、Cursor Agent + OceanBaseMCP 的 Vibe Coding 新范式,通过 Python SDK 体验嵌入式等等。。。

参考文档

https://www.oceanbase.ai/docs/zh-CN/
https://mp.weixin.qq.com/s/9-eFT9xhIt-dw-PhQhwWbw

关于作者

网名:飞天,墨天轮2024年度优秀原创作者,拥有 Oracle 10g OCM 认证、PGCE认证、MySQL 8.0 OCP认证以及OBCA、KCP、KCSM、ACP、YCP、磐维等众多国产数据库认证证书,目前从事Oracle、Mysql、PostgresSQL、磐维数据库管理运维工作,喜欢结交更多志同道合的朋友,热衷于研究、分享数据库技术。
微信公众号:飞天online
墨天轮:https://www.modb.pro/u/15197
如有任何疑问,欢迎大家留言,共同探讨~~~

最后修改时间:2025-11-21 09:42:17
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论