摘要:目前,首轮技术征文获奖文章已评选出炉,本篇内容为「OceanBase 布道师计划」优秀文章之一,作者邱永刚,联通软件研究院 OceanBase 研发负责人,主要负责中国联通自研关系型数据库分布式 CUDB 研发、支撑、运维工作。
“让技术被看见 | OceanBase 布道师计划”由 OceanBase 主办,CSDN 协办,面向广大开发者的年度征文活动。
全年 4 轮,以季度为周期进行优秀文章评比,每年 1 届,以年为单位进行最佳布道师评选。
目前,首轮技术征文获奖文章已评选出炉,本篇内容为「OceanBase 布道师计划」优秀文章之一,作者邱永刚,联通软件研究院 OceanBase 研发负责人,主要负责中国联通自研关系型数据库分布式 CUDB 研发、支撑、运维工作。稿:https://open.oceanbase.com/blog/essay-competition。
评委有话说
屠敏(CSDN 资讯主编、《新程序员》特约专栏记者):这篇文章通过实际的业务场景,详细介绍了如何利用OceanBase的向量检索能力实现检索增强生成(RAG)架构,并成功应用于实际业务中。作者从背景挑战、技术选型、实施过程到成效评估,通过具体的实践案例,展示了OceanBase在处理多模态数据和支持复杂查询场景中的优势,同时也分享了从双库架构升级到一体化数据库的过程和挑战,是一篇值得推荐的技术好文。
封仲淹(OceanBase 开源生态总监、OceanBase 开源社区负责人):联通研究院这篇文章,紧贴热点,很好地介绍了向量数据库相关的基础知识,很好地普及了什么是向量数据库,向量数据库横向一些对比,并且基于Oceanbase数据库的向量能力,落地了ChatDBA很好地解决了DBA日常答疑问题,给其他用户一个Data +AI的探索行为。
老鱼(资深 IT 媒体人、《老鱼笔记》主理人):文章介绍了OceanBase在联通软研院检索增强生成(RAG)架构中的落地实践,展示了其在数据库智能专家“ChatDBA”中的应用效果。此外,文章还分享了具体的性能测试结果和实际应用成效,具有很强的说服力和实用价值。
章芋文(墨天轮社区负责人):文章详细介绍了中国联通如何利用OceanBase数据库的向量检索功能,成功实施RAG架构以提升数据库管理的效率和响应速度。文章强调了生成式AI技术在企业数据应用中的局限性,并展示了RAG架构如何通过结合大型语言模型和企业私有数据来克服这些限制。数据库智能专家“ChatDBA”展示了RAG架构的实际应用,显著提高了开发人员和DBA在数据库查询及管理上的工作效率,体现了技术与业务的深度融合。文章对现代化升级的成效进行了全面的总结,突出了硬件资源的节省、系统稳定性的提升以及运维流程的简化等关键成果,为其他企业的技术升级提供了宝贵的参考。
过去几年,生成式人工智能(AI)技术快速发展,涌现了包括OpenAI的ChatGPT、阿里巴巴的通义千问、百度的文心一言等多个大模型,在自然语言处理和对话系统中的应用引起了广泛关注。尽管这些大模型的推理能力非常强大,但在实际行业应用中,它们往往无法直接处理企业特定的数据和知识,这使得它们的应用范围受到了一定限制。在这种背景下,向量数据库作为支撑检索增强生成(RAG)架构的核心组件,逐渐展现出它不可或缺的作用。
RAG架构通过结合预训练的大型语言模型(LLM)和企业的实时私有数据,弥补了LLM在处理企业特定数据时的不足。借助向量数据库的强大检索能力,开发人员能够在无需重新训练模型的前提下,实现基于企业数据的实时、精准生成任务。在这篇文章中,我们将分享中国联通如何通过OceanBase的向量检索能力,在实际业务中成功实现RAG,帮助内部开发人员和DBA更高效地进行数据库基础设施相关查询和管理,从而进一步提升业务响应速度和准确性。
联通软研院数据库平台服务数百到上千内部用户,涵盖了从应用开发到运维管理的各个环节。面对如此庞大和复杂的数据库应用场景,我们长期面临许多挑战:数据库种类繁多,版本差异大,生产系统的稳定性要求高,测试环境与生产环境之间的差异影响了效率,且日常数据库运维和管理的工作负荷巨大,响应速度难以提升。
具体来说,我们需要应对如下几个主要挑战:
1. 多种数据库及版本管理:联通内部存在多款数据库产品,且版本更新和维护频繁。如何在不同版本之间保持一致性并快速定位问题,成为了运维和管理中的一大难题。
2. 生产环境的高效管理与测试环境差异:生产系统的稳定性至关重要,如何在保证生产环境稳定的同时,快速应对和解决生产系统中的问题。此外,测试环境与生产环境的差异可能导致性能偏差或潜在故障,如何高效地管理并在两者之间找到平衡,提升整体系统可靠性和响应速度,是提升数据库运维敏捷性的关键。
3. 提高工作效率与敏捷性:随着业务需求的不断变化,如何在复杂多变的数据库环境中快速获取所需信息,并及时响应,成了提升数据库运维管理效率的核心问题。
为了提升运维效率和内部敏捷性,我们尝试用RAG架构解决这些实际问题,并开发了数据库智能专家“ChatDBA”。通过结合数据库领域的专业知识和联通内部的运维数据,“ChatDBA”让开发人员和DBA可以直接用自然语言查询数据库状态、排查故障或者获取建议,减少了大量的重复工作。这样的方式,不仅提升了问题解决效率,也让团队能将精力更多地集中在关键任务上,以下是我们采用的整体方案流程示意图:
我们针对内外部的数据库通识类和特性类文档进行系统性梳理,形成文档知识库。通过文档切片和向量化模型嵌入,我们将这些文档内容转化为向量数据并存储在向量库中。这一做法使得大型语言模型(LLM)能够获得DBA领域的专业知识,大大提升了知识问答的召回率和准确性。在此基础上,我们进一步引入了RAG(检索增强生成)技术的知识问答系统。通过检索外部知识库,增强模型对特定问题的理解和回答能力,帮助生成更精准、更丰富的文本内容,从而提升了文本处理的效率和质量,最终打造了数据库智能专家“ChatDBA”, 它具备丰富的数据库知识和经验,能够为数据库使用者(应用人员)和数据库维护方(产品运维、支撑人员)提供全面的、高质量的技术咨询与解决方案服务,以降低数据库使用门槛、提升数据库运维效率。
在项目初期,我们选择了MySQL作为关系型数据存储,并使用Milvus作为向量数据库。然而,随着数据量和需求的增长,我们很快发现了两个关键问题:首先,现有的数据库无法进行水平扩展,且无法应对更大规模的数据处理;其次,必须同时维护两种数据库系统,增加了管理和运维的复杂性。
为了解决这些问题,我们开始寻找一种能够统一支持关系型数据和向量数据的解决方案。在选型过程中,我们发现OceanBase 4.x实验室版本具备强大的向量检索与混合查询能力,这促使我们对独立向量数据库、单机数据库以及分布式数据库在向量场景下的能力进行详细评估,以下是评估结果的具体对比:
深入对比了独立向量数据库、单机数据库和分布式数据库三种选型路线后,我们更倾向于 OceanBase 的一体化技术路线,不但可以使运维团队简化技术栈,更重要的是OceanBase在性能、扩展性和管理便利性方面展现出明显优势。OceanBase当前版本支持超过16,000维的稠密向量处理,并提供多种向量距离计算方式(如曼哈顿距离、欧式距离、内积和余弦距离)。此外,OceanBase还支持创建HNSW向量索引、增量更新和删除操作,以及强大的Filter功能,能够基于向量、标量和半结构化数据进行混合过滤。结合OceanBase本身的分布式架构,这些特性使它成为一个高效且统一的平台,能够解决我们面临的数据库扩展性和管理复杂性问题。
通过对OceanBase的测试验证,我们发现其向量检索能力完全符合我们的需求,尤其是在支持应用ChatDBA方面表现出色。更重要的是,OceanBase的向量检索功能具备完整的产品配套生态,进一步增强了其在实际生产环境中的可行性。以下是我们在功能测试中对比OceanBase向量检索与Milvus开源版本的一些关键差异,OceanBase展现出了明显的优势:
1. 简易运维:OceanBase向量检索功能可以直接复用OceanBase的运维管理平台(OCP),大大简化了运维工作。OCP提供了界面化的快速部署、硬件资源管理、监控告警、备份恢复等一整套完善的产品运维功能。而Milvus仅提供基础的数据库功能,不具备完善的运维支持,且存在安全隐患。
2. 高可用与弹性扩缩:OceanBase向量检索能力继承了OceanBase原生分布式数据库的高可用性,能够实现分布式部署、弹性扩缩容,并通过Paxos协议实现单点故障时的自动快速恢复。而Milvus只能进行单点部署,缺乏高可用性及横向扩展能力,这在生产环境中无法接受。
3. 多租户资源隔离:OceanBase向量检索支持多租户资源隔离,并配合OceanBase强大的可扩展性,能够提供安全、灵活的DBaaS服务。用户可以在现有OceanBase资源池内快速开通数据库实例,并根据业务需求灵活调整资源。相比之下,Milvus缺乏资源隔离能力,尤其在物理机部署情况下,资源管理容易出现浪费或不足且无法扩展的问题。
4. 支持 SQL:OceanBase向量检索支持标准SQL操作,开发人员可以使用DBeaver、Navicat等熟悉的客户端工具与数据库交互,这降低了数据库使用门槛,提升了开发效率。Milvus则不支持SQL,只能通过API和代码操作数据,使用体验相对较差。
5. 快速迁移:OceanBase向量库能够利用OMS数据迁移工具进行同构与异构数据迁移。我们通过OMS的功能,成功将原本存储在Milvus中的测试数据迁移到OceanBase中。而Milvus本身不支持数据迁移,跨环境迁移需要重建数据,耗时且对业务影响较大。
在性能测试阶段,我们模拟了当前实际生产环境的使用场景。此前我们使用了两套独立的数据库系统,而现在关系型数据库与向量数据库共享同一个实例。与原本需要两套数据库的部署方式相比,当前实例的规格约小了30%,但在性能上完全满足了业务需求,并且资源使用率显著降低。这意味着在成本方面,我们实现了至少30%的硬件资源节省。以下是官方发布的主流向量数据库性能对比。图中展示的VSAG曲线数据来源于OceanBase与蚂蚁集团联合研发的向量索引算法VSAG,OceanBase在性能表现上明显优于其他主流向量索引库,实现了“比快更快”的性能提升。
在完成OceanBase数据库向量检索功能和性能验证后,我们决定将现有的MySQL和Milvus数据库进行现代化升级,并进行了相应的适配改造。我们发现,OceanBase的引入工作量较小。对于原MySQL数据库几乎没有额外工作量,SQL语法完全兼容,甚至无需更换驱动包,只需要修改配置即可。对于Milvus向量数据库的升级,主要是更新数据库依赖包和调整数据库操作方式。由于OceanBase支持通过SQL操作向量数据,只要熟悉SQL语法,改造工作也非常简便。我们在大约一周的时间内完成了所有程序的适配改造,并在不到两周的时间内完成了所有验证工作。
在10月初,OceanBase发布支持向量检索的稳定版本4.3.3后,我们启动了生产环境的数据库现代化升级。借助前期充分验证和OceanBase的OMS工具,升级过程高效顺畅,顺利完成从Milvus到OceanBase的数据迁移,加快了整体进程。升级后,我们将多套数据库整合为一个统一的系统架构,硬件资源使用量减少约30%,业务性能全面满足需求。OceanBase原生的分布式架构不仅显著提升了系统稳定性,降低单点故障风险,还为未来业务增长提供可扩展能力。这次升级既简化了技术栈,减轻运维团队的压力,还为业务的长远发展打造灵活可靠、可扩展的技术基础。
在联通软研院RAG实践中,我们通过引入OceanBase,完成了数据库智能专家“ChatDBA”底层架构的现代化升级。OceanBase在统一关系型和向量数据库的技术栈方面展现出卓越能力,一个数据库即可支持多种工作负载和数据处理需求。硬件资源使用率降低约30%,配合OCP、OMS等工具,极大简化了运维流程,提升了团队效率。
结合项目实践,我们意识到RAG的向量检索能力对于实现高效的知识问答系统至关重要。而OceanBase作为一体化数据库,不仅能够支持多模态数据处理和多场景融合,还在性能和稳定性上表现出色。这样的设计帮助我们显著降低系统复杂性,同时为未来更复杂的业务需求提供了更坚实的技术支持,成为构建统一、高效智能数据库解决方案的关键一步。展望未来,我们计划进一步扩大OceanBase应用范围,通过现代数据架构升级进一步简化技术栈,降低运维成本。
来源:CSDN