案例实践:某券商从 Neo4j 迁移至悦数图数据库

简介: 许多国内企业在早期使用 Neo4j 作为图相关业务场景的探索基础设施。然而,随着业务发展和环境变化,原有的图数据库已经逐渐无法满足不断发展的特定业务场景需求。如何将 Neo4j 迁移到一款兼具良好扩展性、性能、专业服务能力的图产品,已成为业界普遍关心的问题。本文将为您呈现华东某大型券商从 Neo4j 迁移至悦数图数据库的选型、迁移和提升能力的完整历程,供广大企业参考。

640.jpg

许多国内企业在早期使用 Neo4j 作为图相关业务场景的探索基础设施。然而,随着业务发展和环境变化,原有的图数据库已经逐渐无法满足不断发展的特定业务场景需求。如何将 Neo4j 迁移到一款兼具良好扩展性、性能、专业服务能力的图产品,已成为业界普遍关心的问题。本文将为您呈现华东某大型券商从 Neo4j 迁移至悦数图数据库的选型、迁移和提升能力的完整历程,供广大企业参考。

2018 年,该券商选择了 Neo4j 作为构建企业图谱、产业链图谱等关键场景的图数据库。然而,随着业务的发展,Neo4j 的单机架构和可维护性等问题变得越来越突出,需要寻找一个更符合业务需求的图数据库产品。于是,在 2023 年,该券商选择了业内知名的原生分布式图数据库“悦数图数据库”作为 Neo4j 的替代,成功完成了数据库的迁移。

01 Neo4j 替换选型

当时,该券商企业主要遇到以下问题:

Neo4j 为单机形态,没有弹性扩缩容的能力;

业务复杂性和查询速度要求不断上升,支撑业务所需要的图查询、图计算能力,Neo4j 不能完全满足;

现有产品缺乏足够的企业级支持和服务;

经过多方研究、比对和测试,该券商最终选择了业内知名的原生分布式图数据库“悦数图数据库”作为 Neo4j 的替代,来支撑运营关键场景。

该券商图数据库项目经理表示,在进行图数据库替代选型时,主要考虑了以下几个因素。首先是产品的能力是否满足需求。面对不断变化的业务场景和需求,新的图数据库必须具备弹性扩缩容能力,这是 Neo4j 所无法做到的。同时,我们的业务场景涉及股权穿透、最终受益人等业务相关的算法、全文索引创建等,并且系统需要满足一天一万次 API 调用,每次查询的时延要求在秒级。因此,我们需要选择一个具备一定的图查询、图计算能力和性能的图数据库。在市场上比较后发现,在产品能力的这两个方面,悦数图数据库的表现是比较优异的,能够匹配我们的需求。

其次,产品背后提供的服务和支持也是很重要的。我们了解到,悦数图数据库是基于世界排名前三的开源分布式图数据库 NebulaGraph,针对国内用户需求而打造的,其本身的社区及商业化客户已经超 1,500 家,并且积累了大量的行业实践经验。在产品所属公司杭州悦数,70% 员工为具备图技术专业背景的技术工程师,产品支持能力比较强。这些是国内外其他一些图数据库厂商所不具备的。

此外,金融业是国家重点产业之一,避免被“卡脖子”是行业在选用产品时考虑的因素之一。在选型过程中,我们也在国产、满足信创要求、兼容国产基础设施方面进行了考察。我们了解到,悦数图数据库是国产自主可控的软件产品,对于主流国产 CPU(如鲲鹏、海光、飞腾、龙芯等)及操作系统(如麒麟、统信、欧拉、红旗等)都进行了官方的兼容性适配和相关认证。

综合对比之后,我们选择了悦数图数据库作为 Neo4j 的替代。

02 迁移要求

该券商使用了工商数据、万得数据以及部分自有业务数据作为数据源,并通过全文检索组件提供全文搜索和视图查询服务。对于此次图数据库的迁移,项目关键要求包括了功能和性能的要求。

在功能要求方面,首先是数据导入的效率。在原先使用 Neo4j 时,数据导入先从上 Hive 生成 csv,再转换成 Neo4j csv 格式后进行导入,100GB 的原始数据导入需要耗时 10 多个小时。此次迁移的要求是,同样的数据导入,耗时在分钟级别。

其次是业务查询逻辑。除了普通的 Match 语句之外,自定了一些存储过程 procedure 函数,如股权穿透、最终受益人等业务相关的算法、全文索引创建等等。

在性能要求方面,系统需要满足一天一万次 API 调用,并且每次查询的时延要求在秒级。

640.png

03 迁移方案

与大多数数据库迁移类似,图数据的迁移也涉及数据以及业务逻辑(查询和计算)两个模块。

在数据层面:

基于悦数数据迁移工具(Yueshu Exchange)的能力,悦数图数据库支持根据不同的数据存储源,以两种不同的迁移方式导入:从 Neo4j 导入及从 Hive 表导入。悦数数据迁移工具是一款 Apache Spark 应用,能支持多种不同格式的 rxaa 数据和流式数据的迁移。
640 (1).png

为更好的兼容该券商现有的数据导入业务流程,本次迁移采用了从 Hive 表导入的方式。

在业务层面,本次迁移主要涉及三部分:

首先是数据库接口,迁移项目将原有的 Neo4j 的数据访问层改造成悦数图数据库的数据访问层,在改造底层的数据库连接、会话、执行查询的机制和数据类型的基础上,保证上层的接口不变。该券商采用 Java 作为开发技术栈,悦数图数据库使用了已有的 Java 客户端重新实现了其图数据库访问层的原有逻辑。

其次是视图查询服务,本次迁移使用图数据库接口改写了 QueryByView Service 的实现,生成的 Cypher 查询语句能适配悦数图数据库的语法要求,提供可视化查询服务。

第三是专用资源服务,主要涉及查询语言的优化及改写。悦数图数据库很好地兼容了Cypher 语言的 DQL 部分,因此部分服务无需优化,可以复用原有代码。

640 (2).png

04 迁移后的能力提升

基于上述迁移方案,该券商顺利完成了将图数据库从 Neo4j 到悦数图数据库的迁移,并将原有的企业图谱、产业链图谱等场景迁移到了基于悦数图数据库构建的图平台上。迁移后,该券商的图平台整体能力得到了大幅提升。

悦数图数据库采用存算分离和 Shared-nothing 分布式存储架构,支持海量数据存储及集群的在线扩缩容。相比于原有的 Neo4j 单机形态,基于悦数图数据库的图平台具备出色的弹性扩缩容能力,能够满足业务变化中的各种需求。

同时,悦数图数据库的多副本及一致性协议,保证了集群中数据的高可靠及业务高可用。而备份恢复、集群间数据同步等能力,进一步提升了系统的可用性和可靠性。

其次,基于悦数图数据库强大的图查询和图计算能力,该券商的图平台顺利应用于股权穿透、最终受益人等业务场景,并满足了每天一万次 API 调用和每次查询的秒级时延要求。

总的来说,通过从 Neo4j 迁移至悦数图数据库,该券商的图平台在整体能力、扩展性、稳定性等方面都完成了一次大幅跃升,有效支持了业务发展需求,通过数据关联关系为业务创造更多价值。

如果您想了解该案例的详情,以及对图数据库的选型有任何问题、咨询或讨论,欢迎与我们联系!

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
3月前
|
NoSQL 算法 大数据
国内首个图计算标准发布,悦数图数据库通过测试
近日,经中国通信标准化协会批准,《大数据图计算平台技术要求与测试方法》标准正式发布,这是我国首个图计算平台标准,为图计算平台的发展提供了一个标准化的指导方针,对于推动我国图技术的发展具有重要意义。
|
3月前
|
关系型数据库 MySQL 数据库连接
gorm连接mysql数据库以及建表和自动迁移
gorm连接mysql数据库以及建表和自动迁移
35 0
|
3月前
|
存储 SQL 运维
悦数图数据库助力电信运营商宽带业务提效
随着 5G 和万物互联时代的到来,家庭和企业对宽带的需求持续增长,同时,基础设施的完善和运营商支持的网络设备规模的扩大使得网络拓扑更加复杂。因此,如何提高宽带业务处理的效率,以及如何有效地规划从终端和末端设备到机房设备的最优路径,成为了运营商宽带业务持续扩展亟需解决的瓶颈。
|
4月前
|
数据库
电子好书发您分享《《阿里云数据库案例集客户案例集》电子书》
电子好书发您分享《《阿里云数据库案例集客户案例集》电子书》
203 2
|
4月前
|
SQL 数据库 Python
记Flask-Migrate迁移数据库失败的两个Bug——详解循环导入问题
Flask-Migrate迁移数据库失败的两个Bug 1、找不到数据库:Unknown database ‘***’ 若还没有创建数据库,该迁移工具不会自动创建。你可以使用SQL命令手动创建一个数据库:
40 0
|
4月前
|
关系型数据库 数据库 RDS
如果源数据库和目标数据库中都存在sequence的column且在迁移过程中没有新增的话
如果源数据库和目标数据库中都存在sequence的column且在迁移过程中没有新增的话
30 1
|
3月前
|
存储 NoSQL 数据库
知识图谱之图数据库如何选型:知识图谱存储与图数据库总结、主流图数据库对比(JanusGraph、HugeGraph、Neo4j、Dgraph、NebulaGraph、Tugrapg)
知识图谱之图数据库如何选型:知识图谱存储与图数据库总结、主流图数据库对比(JanusGraph、HugeGraph、Neo4j、Dgraph、NebulaGraph、Tugrapg)
知识图谱之图数据库如何选型:知识图谱存储与图数据库总结、主流图数据库对比(JanusGraph、HugeGraph、Neo4j、Dgraph、NebulaGraph、Tugrapg)
|
5天前
|
NoSQL MongoDB 数据库
MongoDB数据恢复—MongoDB数据库文件被破坏的数据恢复案例
服务器数据恢复环境: 一台Windows Server操作系统服务器,服务器上部署MongoDB数据库。 MongoDB数据库故障&检测: 工作人员在未关闭MongoDB数据库服务的情况下,将数据库文件拷贝到其他分区。拷贝完成后将原MongoDB数据库所在分区进行了格式化操作,然后将数据库文件拷回原分区,重新启动MongoDB服务,服务无法启动。
|
17天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
1月前
|
SQL 数据可视化 Apache
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
阿里云数据库 SelectDB 内核 Doris 的 SQL 方言转换工具, Doris SQL Convertor 致力于提供高效、稳定的 SQL 迁移解决方案,满足用户多样化的业务需求。兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移。
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移