案例实践:某券商从 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
相关文章
|
16天前
|
弹性计算 关系型数据库 数据库
自建数据库迁移到云数据库实操
本课程详细介绍了自建数据库迁移到阿里云RDS的实操步骤。主要内容包括:创建实例资源、安全设置、配置自建的MySQL数据库、数据库的迁移、从自建数据库切换到RDS以及清理资源。通过这些步骤,学员可以掌握如何将自建数据库安全、高效地迁移到云端,并确保应用的正常运行。
93 26
|
8天前
|
弹性计算 关系型数据库 数据库
从自建到云端,数据库迁移全攻略
本文详细介绍了将自建数据库迁移至阿里云RDS的全过程,涵盖WordPress网站安装、数据库迁移配置及验证等步骤。通过DTS数据传输服务,实现库表结构、全量和增量数据的无缝迁移,确保业务连续性和数据一致性。方案具备零成本维护、高可用性(最高99.99%)、性能优化及全面的数据安全保障等核心优势。此外,提供了详细的图文教程,帮助用户快速上手并完成迁移操作,确保业务稳定运行。点击文末“阅读原文”了解更多详情及参与活动赢取精美礼品。
|
1月前
|
弹性计算 安全 关系型数据库
活动实践 | 自建数据库迁移到云数据库
通过阿里云RDS,用户可获得稳定、安全的企业级数据库服务,无需担心数据库管理与维护。该方案使用RDS确保数据库的可靠性、可用性和安全性,结合ECS和DTS服务,实现自建数据库平滑迁移到云端,支持WordPress等应用的快速部署与运行。通过一键部署模板,用户能迅速搭建ECS和RDS实例,完成数据迁移及应用上线,显著提升业务灵活性和效率。
|
16天前
|
运维 关系型数据库 MySQL
自建数据库迁移到云数据库RDS
本次课程由阿里云数据库团队的凡珂分享,主题为自建数据库迁移至云数据库RDS MySQL版。课程分为四部分:1) 传统数据库部署方案及痛点;2) 选择云数据库RDS MySQL的原因;3) 数据库迁移方案和产品选型;4) 线上活动与权益。通过对比自建数据库的局限性,介绍了RDS MySQL在可靠性、安全性、性价比等方面的优势,并详细讲解了使用DTS(数据传输服务)进行平滑迁移的步骤。此外,还提供了多种优惠活动信息,帮助用户降低成本并享受云数据库带来的便利。
|
26天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
4天前
|
运维 监控 Cloud Native
云原生之运维监控实践:使用 taosKeeper 与 TDinsight 实现对 时序数据库TDengine 服务的监测告警
在数字化转型的过程中,监控与告警功能的优化对保障系统的稳定运行至关重要。本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品之一,详细介绍了如何利用 TDengine、taosKeeper 和 TDinsight 实现对 TDengine 服务的状态监控与告警功能。作者通过容器化安装 TDengine 和 Grafana,演示了如何配置 Grafana 数据源、导入 TDinsight 仪表板、以及如何设置告警规则和通知策略。欢迎大家阅读。
20 0
|
2月前
|
SQL 数据库
GBase8a 数据库集群v953扩容案例问题分享
GBase8a 数据库集群v953扩容案例问题分享
|
2月前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
2月前
|
存储 SQL 数据库
Sybase数据恢复—Sybase数据库常见问题之数据库无法启动的恢复案例
Sybase数据库数据恢复环境: Sybase数据库版本:SQL Anywhere 8.0。 Sybase数据库故障&分析: Sybase数据库无法启动。 使用Sybase Central连接报错。 数据库数据恢复工程师经过检测,发现Sybase数据库出现故障的原因是:异常断电造成Sybase数据库无法回写正常数据,导致多个存储页数据不一致,系统表描述和存储表不一致,部分存储页底层数据完全杂乱。
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。