应用案例

应用案例——深圳素问智能 | MatrixOne 构建超融合 AIGC 数据基础平台

作者:MatrixOrigin发布于

客户简介

深圳素问智能 TechAgent 成立于 2017 年,是一家专注于提供产业链舆情数据的服务商。素问智能服务了数十家制造业龙头企业及政府产业管理机构。其打造了一套名为 TechAgent 的产业舆情大数据平台,基于企业基本信息、研报、财报、专利、新闻等全网数据,通过自然语言处理挖掘企业特色信息以及企业产业链深度链条,构建全方位的企业画像,并实时捕捉产业链信息,支持产业链分析、产业规划、产业咨询跟踪等服务。

业务挑战

TechAgent 是典型的以数据加工与处理为核心能力的场景,业务形式包括直接的数据报告服务,数据 SaaS 及 API 服务。这几种业务交付形式实际上最终都是依赖于素问自己搭建的一整套数据处理平台,而这套数据处理平台为了满足多样化的功能及业务形式整体设计的相当复杂,在运维和开发迭代等方面都遇到了一定的挑战。

  • 挑战一

TechAgent 的上游是大量的数据采集程序,包括通过网络爬虫获取公开数据,通过 API 接口获得一些商业数据,通过一些预处理程序从文件中提取的数据等。所有这些数据都会经过结构化处理之后存到 MySQL 中。其中一部分数据在应用之前需要经过 LLM 大模型处理,由于算法本身的特点,会输出结构较为复杂的 JSON 文件,MySQL 的 JSON 能力不足以满足需求,为了存储和查询这些 JSON 文件,素问专门引入了一个 MongoDB 实例来进行处理。

  • 挑战二

TechAgent 的一个核心能力是搜索能力,这其中既包含了基于关键词的全文检索能力,又包含了基于语义的向量检索能力,因此 TechAgent 又引入了 ElasticSearch 和 Faiss,专门用于两种独立的搜索能力。

  • 挑战三

随着业务规模的逐步扩大以及采集数据源的增加,MySQL 的处理能力已经越来越难以满足需求,一方面在写入测的并发压力增大,现在只能通过前端通过一段代码将数据缓存一段时间再写入,另一方面单表规模超过千万,为了保证查询性能不得不开始使用手工分表的形式来限制查询的规模。而针对部分报表生成及大量数据分析的查询,TechAgent 不得不再次求助于增加一个 Clickhouse 实例来保证性能。

TechAgent 整体数据架构

作为一家团队规模非常有限的创业公司,TechAgent 维护和管理众多的数据库组件已经难以为继,同时产品的迭代总是需要添加各类胶水代码来解决数据互通的问题,而且对于新招募的工程师上手非常困难。而对业务造成最大困难的则是面向大型客户进行私有化交付的场景,交付团队对应用层软件的交付仅需数日即可完成,但是往往要花费数周的时间部署和调试数据库,这并不是 TechAgent 所擅长的领域。

解决方案

MatrixOne 是一款新型的云原生超融合数据库,通过简化的分布式数据库引擎,基于 K8s 及共享存储构建,同时支持 OLTP、OLAP、时序、向量、搜索等混合负载,同时高度兼容 MySQL 语法。MatrixOne 在 AIOT 和 AIGC 场景上有自己独特的优势,可以作为一站式的数据底座。对于 TechAgent 这样深度应用大模型和文档数据的场景非常适合,能够一站式完成底层数据处理,极大的减轻其数据架构的复杂度和交付运维难度。

  • MatrixOne 是一款 HTAP 数据库,对 OLTP 及 OLAP 的支持程度较高,针对 MySQL 及 Clickhouse 分别进行事务型处理和分析型处理的模式可以天然的一站式解决,也避免了定时通过 ETL 工具从 MySQL 把数据搬迁到 Clickhouse 的运维动作,而是直接通过创建视图 VIEW,通过 SQL 编写各类分析语句。MatrixOne 对于 MySQL 高度兼容,对于 TechAgent 使用的 Django 框架及 SQL Alchemy 的 ORM 工具都可以无缝对接。因此从 MySQL 及 Clickhouse 往 MatrixOne 迁移是整个改造的最基础环节。

  • MatrixOne 自带 JSON 及向量两种数据类型。用户可以非常方便的在任意表中创建向量 vecf32/vecf64 类型,或JSON类型的列,同时 MatrixOne 也提供了向量索引和搜索相关的函数,以及 JSON 解析相关函数,可以满足绝大部分 JSON 处理及语义搜索相关的需求。因此通过一定的应用适配和改造,MatrixOne 也可以将 MongoDB 及 Faiss 所起到的作用进行替代。

  • MatrixOne 支持倒排索引,而倒排索引就是 Elastic 全文搜索中的核心技术,并且 MatrixOne 的倒排索引与向量语义检索可以混合使用,同时允许用户自主调节其中的比例。这不仅可以解决单独采用 Elastic 的问题,还可以直接在数据库层面实现基于语义和全文的混合检索。之所以 TechAgent 的架构需要采用 Elastic 及 Faiss,也就是为了在应用层能将语义检索的优点和全文检索的优点结合起来,以提供给用户最优质的搜索体验。MatrixOne 的实现则可以进一步简化这个模式。

  • MatrixOne 完全面向 K8s 设计,天然支持 K8s 化部署。这正与 TechAgent 团队对应用进行云原生化改造的思路吻合,之前基于独立应用和多个独立数据库的交付模式运维极为复杂,而通过云原生化改造可以实现容器化快速交付。之前数据库层的 K8s 改造是个较为复杂的工程,而现在MatrixOne 天然面向 K8s 设计,不仅可以非常方便的部署交付,而且天然具备可扩展性,在负载增大的时候可以非常快速的通过垂直或者水平扩展计算容器来提高性能基线。

最后,在面向众多异构负载时,MatrixOne 还提供了灵活的负载隔离的方案。在使用过程中,可以通过指定的 CN 容器资源组来负责某个专用业务负载的形式来实现同一套数据库内负载的隔离,最大化的保障业务的安全性。

改造后的数据架构

客户收益

TechAgent 在与 MatrixOne 接触之前,正面临着给各类大客户交付的困境,每个客户平均的交付周期要长达2个月,而其中最复杂的就是数据库层的部署和调试。了解到 MatrixOne 的能力和架构后,TechAgent 团队果断的开启了架构转型,最终成功的将过去的大杂烩式的架构简化成了与单机 MySQL 一样简洁的架构。TechAgent 团队也在矩阵云原生团队的帮助下顺利的完成了整体的云原生化改造,将应用和数据库形成了高效的一体化交付,整体交付时间缩短到1周。另外,在整体数据处理的效率上,过去小时级的数据端到端处理效率也缩短到分钟级。

TechAgent CEO 王巍表示:“过去在业务快速发展的过程中采用了比较粗犷的架构模式,缺什么就补什么,而没有从全盘的角度考虑问题,导致后期迭代和交付进度都受到影响,和矩阵团队合作让我们再次轻装上阵,一次性的解决了沉重的技术包袱。未来 TechAgent 及 MatrixOne 也将继续在 AIGC 领域共同探索,为交付给产业客户更优质的AI咨询师而努力。”