数据库管理-第391期 OceanBase seekdb,一个“小小”的野望(20251118)

数据库管理-第391期 OceanBase seekdb,一个“小小”的野望(20251118)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE
OpenTenBase ACE

10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有“总监”称号,非著名社恐(社交恐怖分子)

公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809
IFClub:胖头鱼的鱼缸
除授权转载并标明出处外,均为“非法”抄袭

在我公众号国庆假期10月3日的文章中,提到了来自于OceanBase社区的慧姐悄咪咪的告诉我在2025 OceanBase年度发布会上,会有一个新产品发布,时隔一个半月,来到了2025年OceanBase年度发布会,这个产品它来了。

1 什么是seekdb

从最早慧姐的剧透和OB社区版主群的讨论,我一直以为OB会推出一个比桌面版需求硬件资源规格更小的数据库分支,毕竟在今年OB开发者大会时,我用我媳妇儿友情赞助的8G内存的Mac Air是无法运行桌面版OB的(OBServer运行需要6GB内存)。那么我们一起来看看OceanBase seekdb的介绍:

https://github.com/oceanbase/seekdb/blob/develop/README_CN.md
OceanBase seekdb是一个专为AI应用设计的强大混合搜索数据库。它结合了企业级数据库能力与前沿的AI搜索功能,支持向量, 全文索引, Json, 是构建下一代AI应用的完美选择。


看这简介好像和我们预想的不大一样,接下来再看看seekdb的特性:

从特性列表来看,seekdb是一个全能的AI多模数据库,再来看看稍微详细点的特性清单:

  1. AI 驱动的搜索
    • 混合搜索:将向量搜索, 标量搜索, 全文检索 混合查询,获得更佳效果
    • 向量相似度搜索:针对不同的场景, 使用不同的算法, 获得更佳的向量查询准确率, 性能和成本
    • 全文搜索:内置全文索引,支持基于关键词的搜索
    • Json 支持:支持Json 查询, 支持Json 多值索引.
  2. 嵌入式与轻量级
    • 零依赖:嵌入到您的应用程序中运行——无需单独的数据库服务器
    • 小巧占用:最小内存和磁盘使用,非常适合边缘设备和容器
    • 单一二进制文件:易于部署和与应用程序一起分发
    • 本地优先:离线工作,准备好时同步
  3. 简单且开发者友好
    • MySQL 兼容:使用熟悉的 SQL 语法——无需学习曲线
    • 即时设置:几秒钟内即可开始,无需分钟级
    • 丰富的 API:支持 Python、Java、Go 等
    • 全面的文档:清晰的文档,每个用例都有示例
  4. 生产就绪
    • 稳定性:历经15年+的技术沉淀, 2000+ 企业落地实践
    • ACID 合规:完整的事务支持,具有强一致性保证
    • 水平可扩展:从单节点无缝扩展到分布式集群
    • 企业级安全:内置加密、身份验证和访问控制

看来我们最早对新产品的重点“幻想”只是seekdb核心特性中很小的一部分。
既然seekdb可以进行小规模部署,那么就在使用4GB内存的虚拟机进行部署:
20251117-1990195723309244416_471635

部署文档:https://github.com/oceanbase/seekdb/blob/develop/docs/developer-guide/zh/README.md

2 编译安装seekdb

操作系统:RHEL8.10

2.1.1 安装依赖软件

dnf -y install git wget rpm* cpio make glibc-devel glibc-headers binutils m4 libtool libaio

如果是el7操作系统还需要安装python3

2.1 下载seekdb

git clone https://github.com/oceanbase/seekdb.git


首先我们看看seekdb编译前有多大:
20251117-1990197580409151488_471635

2.2 编译seekdb

cd seekdb
bash build.sh debug --init --make

编译过程中还有不少的依赖包需要下载并安装:


编译时间也是超长的:

编译过程中虚拟机直接假死无响应了,虚拟机CPU占用情况如下(最后把CPU和内存分别调整到了12C和32G才顺利完成的,希望OB改进下编译脚本对硬件资源的占用):

再看看编译后的seekdb文件夹的容量:
20251117-1990350813156941824_471635

其中依赖包大小(下载时间也不短,属实不小啊):
20251117-1990333820735397888_471635
seekdb的整个软件包编译完成后也不小,编译完成后将硬件资源改回为2C4G。

2.3 运行seekdb

./tools/deploy/obd.sh prepare -p /tmp/obtest
./tools/deploy/obd.sh deploy -c ./tools/deploy/single.yaml


2.4 访问数据库

./deps/3rd/u01/obclient/bin/obclient -h127.0.0.1 -P10000 -uroot -Doceanbase -A


归根结底,编译安装费时费力,seekdb也提供了RPM部署的方式。

3 RPM安装seekdb

操作系统:RHEL9.6(人在外没有ISO,也不方便下,就用的OEL9.6替代),选择这个版本的原因是目前只有el7和el9的RPM包,没有el8的:

3.1 下载安装包并上传

Release v1.0.0 · oceanbase/seekdb · GitHub

3.2 RPM安装

dnf -y install seekdb*.rpm

3.3 查看/编辑数据库信息

vim /etc/oceanbase/seekdb.cnf

20251117-1990357851681398784_471635

3.4 启动seekdb

systemctl start seekdb 

3.5 访问数据库

obclient -h127.0.0.1 -P2881 -uroot -Doceanbase -A


由此可见RPM部署比编译部署快捷很多。
小规格运行是seekdb的重要特性之一,但其更重要的特性则是面向AI多模混合搜索的能力,所以我们看到seekdb的容量并非如其CPU和内存占用那样小,这样的容量让它在有限的硬件规模下一样拥有媲美全功能数据库的实力。

总结

本期简单对OceanBase seekdb进行了介绍,对其编译与RPM包安装进行了展示。
老规矩,知道写了些啥。

3 个赞

:+1: :+1: :+1:

2 个赞

:rightwards_hand: :rightwards_hand: :rightwards_hand: :rightwards_hand: :rightwards_hand: :rightwards_hand:

2 个赞

支持

2 个赞

ob还没学好,我需要继续加油

1 个赞

向总监学习

分享不错。

学习学习

支持支持