OpenTenBase 是 企业级分布式数据库 TDSQL 的社区发行版,包含 OpenTenBase 和 TXSQL 双内核,具备高扩展性、商业数据库语法兼容、分布式引擎、多级容灾和多维度资源隔离等能力,成功应用在金融、医疗、航天等行业的核心业务系统。
近日,OpenTenBase 5.0 新版本发布,详情: OpenTenBase 5.0 与 TXSQL 8.0.30 重磅升级:双引擎齐进化,迈向新一代企业级数据库
依托 PostgreSQL 生态在 AI 领域的天然优势,OpenTenBase 5.0 强势布局多模态分析,打造“结构化 + 半结构化 + 非结构化”全数据类型处理能力:
- 多模态架构全覆盖:集成 pgvector 分布式适配能力,支持并行创建索引加速 Embedding,轻松搭建 RAG 知识库;支持文本、图像等多模态数据在同一SQL中实现事务一致性分析,例如同时提取产品图像特征、分析评论情感并生成摘要。
- 灵活集成大模型:提供标准 API 与自定义函数接口,支持配置腾讯混元等主流大模型,开发者可通过简单 SQL 调用 AI 能力,实现从数据存储到智能分析的全流程打通。
OpenTenBase 5.0 的 opentenbase_ai 插件为 PostgreSQL 数据库提供了集成人工智能大语言模型能力的接口,让您能够直接在 SQL 中使用 AI 功能。该插件支持多种 AI 模型提供商(包括 OpenAI、DeepSeek、腾讯混元、阿里通义千问等),提供文本生成、翻译、情感分析、问答提取、文本摘要、嵌入向量生成以及图像分析等功能。
阅读下面的内容需要一点 Linux 和 PostgreSQL 基础。坐等官方 RPM 包上线 OpenCloudOS 的仓库。
之前的文章 手把手教你在 OpenCloudOS 上部署 OpenTenBase 数据库 介绍过源码编译 OpenTenBase v2.6。本文将介绍如何在 OpenCloudOS 操作系统上编译 OpenTenBase v5.0。
准备工作
操作系统
本文实验环境为 OpenCloudOS 8.10 操作系统,查看系统信息如下。
[shawnyan@oc8 ~]$ hostnamectl Static hostname: oc8.shawnyan.cn Operating System: OpenCloudOS 8.10 Kernel: Linux 5.4.241-30.0017.19 Architecture: x86-64 [shawnyan@oc8 ~]$
安装依赖
除了 OpenTenBase 2.6 所需的依赖包,OpenTenBase 5.0 还需安装以下依赖。
1. zstd,lz4
编译安装 zstd 和 lz4,参阅:https://github.com/OpenTenBase/OpenTenBase/issues/166
[root@oc8 ~]# git clone https://github.com/facebook/zstd.git --depth=1 Cloning into 'zstd'... remote: Enumerating objects: 64644, done. remote: Counting objects: 100% (143/143), done. remote: Compressing objects: 100% (77/77), done. remote: Total 64644 (delta 91), reused 72 (delta 66), pack-reused 64501 (from 4) Receiving objects: 100% (64644/64644), 39.45 MiB | 2.84 MiB/s, done. Resolving deltas: 100% (48338/48338), done. [root@oc8 ~]# cd zstd [root@oc8 zstd]# make -j$(nproc) make[1]: Entering directory '/root/zstd/lib' make[1]: Entering directory '/root/zstd/programs' creating pkgconfig ... zstd build completed compiling multi-threaded dynamic library 1.5.8 creating versioned links release build completed make[1]: Leaving directory '/root/zstd/lib' [root@oc8 zstd]# make install make[1]: Entering directory '/root/zstd/lib' creating pkgconfig Installing static library Installing shared library Installing includes zstd static and shared library installed make[1]: Leaving directory '/root/zstd/lib' make[1]: Entering directory '/root/zstd/programs' Installing binaries Installing man pages zstd installation completed make[1]: Leaving directory '/root/zstd/programs' [root@oc8 zstd]# [root@oc8 ~]# git clone https://github.com/lz4/lz4.git Cloning into 'lz4'... remote: Enumerating objects: 17541, done. remote: Counting objects: 100% (878/878), done. remote: Compressing objects: 100% (377/377), done. remote: Total 17541 (delta 626), reused 513 (delta 501), pack-reused 16663 (from 2) Receiving objects: 100% (17541/17541), 7.00 MiB | 2.29 MiB/s, done. Resolving deltas: 100% (12067/12067), done. [root@oc8 ~]# cd lz4 [root@oc8 lz4]# make -j$(nproc) creating pkgconfig ... liblz4.so.1.10.0 created LD cachedObjs/d899e3357a27def6ef4a116bc839409e/lz4 ==> built with multithreading support lz4 build completed [root@oc8 lz4]# make install Installing libraries in /usr/local/lib Installing headers in /usr/local/include lz4 libraries installed Installing binaries in /usr/local/bin Installing man pages in /usr/local/share/man/man1 lz4 installation completed [root@oc8 lz4]#
如未安装会遇到报错。
checking for ZSTD_compress in -lzstd... no configure: error: zstd library not found. checking for LZ4_compress_default in -llz4... no configure: error: lz4 library not found.
2. xml2
使用
dnf 命令安装 xml2。
dnf install libxml2-devel libcurl-devel
如未安装会遇到报错。
checking for xmlSaveToBuffer in -lxml2... no configure: error: library 'xml2' (version >= 2.6.23) is required for XML support
3. 其他依赖
使用
dnf 命令安装依赖。
dnf install cmake libxslt-devel openldap-devel perl-IPC-Run perl-Test-Simple python36-devel tcl-devel dnf install -y epel-release dnf install -y libssh2-devel
4. 编译扩展前需要先安装 libpqxx
libpqxx 是开源关系数据库 PostgreSQL 的官方 C++ 客户端 API。
dnf install postgresql-devel wget https://github.com/jtv/libpqxx/archive/refs/tags/6.4.8.zip unzip 6.4.8.zip && cd 6.4.8 mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local make -j$(nproc) make install
如未安装会遇到报错。
src/node/node.h:4:10: fatal error: pqxx/pqxx: No such file or directory
也不能在 OC 8 上安装 libpqxx 7,因为 gcc 版本不够高。
[root@oc8 libpqxx-master]# gcc -dM -E - < /dev/null | grep __STDC_VERSION__ | awk '{ print $2 " --> " $3 }'
__STDC_VERSION__ --> 201710L
上面命令返回
__STDC_VERSION__ --> 201710L 意味着当前使用 2017 C standard(c17)。
编译安装 OpenTenBase 5.0
准备工作做好那我们的进度就完成了 80%,接下来的编译安装就和 PostgreSQL 一样简单了。
export SOURCECODE_PATH=/data/opentenbase/OpenTenBase
export INSTALL_PATH=/data/opentenbase/install/
cd ${SOURCECODE_PATH}
./configure --prefix=${INSTALL_PATH}/opentenbase_bin_v5.0 --enable-user-switch --with-libxml --disable-license --with-openssl --with-ossp-uuid CFLAGS="-g"
make
make install
继续编译扩展。
cd contrib make make install
到此,编译步骤完成。
启动 OpenTenBase 5.0
1. 更新 bashrc
vi ~/.bashrc
export OPENTENBASE_HOME=/data/opentenbase/install/opentenbase_bin_v5.0
export PGDATA=/data/opentenbase/data
export PATH=$OPENTENBASE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$OPENTENBASE_HOME/lib:${LD_LIBRARY_PATH}
export LC_ALL=C
source ~/.bashrc
2. 检查版本
postgres -V initdb -V
输出结果一致。
[opentenbase@oc8 ~]$ pg_ctl -V pg_ctl (PostgreSQL) 10.0 @ OpenTenBase_v5.0 OpenTenBase V5.21 2025-09-25 19:49:18 [opentenbase@oc8 ~]$
3. 初始化 OpenTenBase
这里我们安装单实例对数据库进行初始化。
initdb --nodename=dn1 --nodetype=datanode
启动之前修改服务器参数。
# 集中式开关 is_centralized_mode = on # DN 可写 allow_dml_on_datanode = on
4. 启动 OpenTenBase
pg_ctl -Z datanode start
到此,OpenTenBase 已启动成功。
使用 OpenTenBase 5.0
接下来,我们可以开始体验 OpenTenBase 5.0 新增的 AI 功能。
1. 创建数据节点和默认组
postgres=# create node dn1 with(TYPE='datanode',HOST='127.0.0.1',PORT=5432,PRIMARY='TRUE',PREFERRED='TRUE'); CREATE NODE postgres=# create default node group default_group with (dn1); CREATE NODE GROUP postgres=#
2. 安装 opentenbase_ai 扩展
安装 opentenbase_ai 扩展前,需要先安装 plpgsql 和 http 两个扩展。
postgres=# CREATE EXTENSION plpgsql; CREATE EXTENSION postgres=# CREATE EXTENSION opentenbase_ai CASCADE; NOTICE: (00000) installing required extension "http" CREATE EXTENSION postgres=# postgres=# \dx List of installed extensions Name | Version | Schema | Description ----------------+---------+------------+---------------------------------------------------------------------------- http | 1.7 | public | HTTP client for PostgreSQL, allows web page retrieval inside the database. opentenbase_ai | 1.0 | public | plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language (3 rows) postgres=#
3. 添加腾讯混元大模型
添加混元大模型的模型定义到模型元数据表中。
SELECT ai.add_completion_model(
model_name => 'hunyuan_chat',
uri => 'https://api.hunyuan.cloud.tencent.com/v1/chat/completions',
default_args => '{"model": "hunyuan-lite"}'::jsonb,
token => 'your_hunyuan_api_key',
model_provider => 'tencent'
);
配置混元大模型为默认模型。
SET ai.completion_model = 'hunyuan_chat';
关于 opentenbase_ai 特性的更多用法,请参照文档:
https://docs.opentenbase.org/guide/23-opentenbase_ai/
总结
OpenTenBase 5.0 在 OpenCloudOS 上的完整编译与部署流程可概括为“依赖补齐 → 源码构建 → 集群初始化 → 集群启动”四步。只要提前装好诸多新增依赖,即可像常规 PostgreSQL 一样快速完成安装,OpenTenBase 还提供了 opentenbase_ctl 便于集群管理。新版本增加的 opentenbase_ai 插件,能在 SQL 里直接调用腾讯混元等主流大模型,实现智能检索与分析,强烈推荐大家来试用。
Have a nice day ~ ☕
? 往期精彩 ▼
- 全球 Oracle ACE 社区突破 500 位成员
- 「合集」MySQL 8.x 系列文章汇总
- 星辰资讯 | Ti 星球新鲜事(2025.09)
- IvorySQL 4.6 发布:新增兼容 MongoDB 解决方案
- 一文带你了解 KING BASE 金仓数据库
- 金仓数据库 Oracle 兼容模式体验
- 崖山数据库 YAC 共享集群入门
- 新建群聊:崖山和ta的朋友们~
- 一文带你了解 KWDB 数据库
- 国产老兵“虚谷数据库”初探
- 对话晨章数据CTO张桓:中国企业出海需要更优质的合作伙伴
- 如果国产中间件也参与国测,会有哪些厂商和产品入围
- BIC-QA:国产数据库的“咖啡伴侣”
- 腾讯云数据库家族扩容:TDSQL 与 AI 共生进化
- 向量数据库 VexDB 入门指南
– / END / –
? 欢迎关注我的视频号

? 这里有得聊
如果对国产基础软件(操作系统、数据库、中间件)感兴趣,可以加群一起聊聊。
关注微信公众号:少安事务所,后台回复[群],即可看到入口。
如果这篇文章为你带来了灵感或启发,请帮忙『 三连』吧,感谢!ღ( ´・ᴗ・` )~