前言
11月18日,OceanBase开源了其首款AI原生数据库seekdb(详见https://www.oceanbase.ai/)。专注于为 AI 应用提供高效的混合搜索能力,支持向量、全文及多模数据的统一存储与检索。
seekdb 继承了OceanBase 高性能优势与 MySQL 全面兼容的特性,却更轻量,更贴近个人开发者与中小型企业,更适用于 AI 数据处理场景:
- RAG和知识检索,如客户支持、个人知识、企业质量保证等。
- AI Agent,如私人助理、代理平台、垂直代理商、企业自动化。
- 设备端和边缘端AI应用,如车载系统、人工智能教育、陪伴机器人、医疗设备等。
- 人工智能辅助编程,或编码与开发,如IDE插件、设计到网页、本地 IDE、Web IDE。
- 语义搜索引擎,如产品搜索、文本转图像、图片到产品。
开启体验之旅的前期准备
安装配置seekdb
本次部署体验场景是CentOS系统进行搭建起完整的SeekDB运行环境:
yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo

安装OBD工具
yum install -y ob-deploy

激活环境变量:安装完成后,会在/etc/profile.d/目录下生成obd.sh,需要执行 source 命令来使 OBD 的命令行工具立即生效。
source /etc/profile.d/obd.sh

安装SeekDB与obclient
yum install seekdb obclient

启动SeekDB
systemctl start seekdb
systemctl status seekdb

登录验证
obclient -h127.0.0.1 -uroot -P2881 -A oceanbase

正式开启体验之旅
准备测试所用的基础表
CREATE DATABASE shanjiatstdb;
use shanjiatstdb;
CREATE TABLE products_josn (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
description TEXT,
category VARCHAR(100),
price DECIMAL(10,2),
-- 使用 JSON 存储向量数组
embedding JSON,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
metadata JSON
) DEFAULT CHARSET=utf8mb4;
CREATE INDEX idx_products_embedding ON products_josn((JSON_LENGTH(embedding)));

创建计算余弦相似度的函数

创建计算欧氏距离的函数

测试数据插入


向量检索查询
余弦相似度搜索

欧氏距离搜索

带过滤条件的向量搜索

混合搜索(文本 + 向量)

创建实用的向量搜索函数与尝试使用


这次 OceanBase Seekdb 向量检索实践,让我深刻体会到:
- 技术没有银弹:每个方案都有适用场景
- 实践出真知:只有动手才能理解本质
- 问题即机会:每个障碍都是进步的阶梯
虽然当前 OceanBase 在向量检索上还有局限,但这次探索的价值在于:
- 验证了可行性:向量检索可以用传统数据库模拟
- 明确了边界:知道了什么时候需要专门方案
- 积累了经验:为未来技术选型打下基础
数据库的进化史,就是不断吸收新技术、满足新需求的历史。 向量检索只是其中一站,未来还会有更多的"理解"能力被赋予数据库。
技术的世界没有银弹,但有无数种组合方式。 真正的技术能力,不是在理想条件下使用完美工具,而是在现实约束中找到最佳路径。