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

这篇具有很好参考价值的文章主要介绍了案例实践:某券商从 Neo4j 迁移至悦数图数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

许多国内企业在早期使用 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 调用,并且每次查询的时延要求在秒级。

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

03 迁移方案

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

在数据层面:

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

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

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

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

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

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

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

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

04 迁移后的能力提升

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

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

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

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

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

如果您想了解该案例的详情,以及对图数据库的选型有任何问题、咨询或讨论,欢迎与我们联系!文章来源地址https://www.toymoban.com/news/detail-778918.html

到了这里,关于案例实践:某券商从 Neo4j 迁移至悦数图数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 探索Py2neo:Python与Neo4j图数据库的交互实践

    在数据驱动的世界中,图形数据库如Neo4j成为处理复杂关系数据的强大工具。这种数据库类型以图结构存储数据,优秀地表示和查询实体间的连接关系。Py2neo,作为Neo4j的Python驱动程序,使得在Python环境中使用Neo4j变得简单而直观。以下内容,将详细介绍如何利用Py2neo在Python中

    2024年03月11日
    浏览(56)
  • Neo4j图数据库实践——基于知识图谱方法开发构建猪类养殖疾病问答查询系统

    Neo4j是一个开源的、高性能的图形数据库。它被设计用于存储、检索和处理具有复杂关系的大规模数据。与传统的关系型数据库不同,Neo4j使用图形结构来表示数据,其中节点表示实体,边表示实体之间的关系。这使得Neo4j在处理关系密集型数据时非常强大和高效。 以下是Ne

    2024年02月07日
    浏览(67)
  • Neo4j:入门基础(二)~ 数据导入Neo4J RDF导入neo4j数据库

    neo4j导入数据的方式有以下几种: Cypher create 语句,为每一条数据写一个create Cypher load csv 语句,将数据转成CSV格式,通过LOAD CSV读取数据。 neo4j-admin import导入 官方提供的Java API - BatchInserter 大牛编写的 batch-import 工具 neo4j-apoc load.csv + apoc.load.relationship 针对实际业务场景,定制

    2023年04月24日
    浏览(72)
  • Neo4j是什么,为什么需要Neo4j,Neo4j的优势和应用场景

    当我们处理非常复杂的数据时,传统的关系型数据库可能会无法胜任。而在这种情况下,一个基于图形数据模型的数据库,如Neo4j,可能会是更好的选择。Neo4j是一个高性能、面向对象的图形数据库,它是为存储和查询大规模图形数据而设计的。 在Neo4j中,数据被组织成一系列

    2024年02月08日
    浏览(49)
  • 【neo4j】neo4j的安装与使用

    https://www.oracle.com/java/technologies/downloads/ 按照步骤安装即可 配置环境变量 在系统变量中添加 path变量中添加 https://neo4j.com/deployment-center/ 下载后,在指定位置解压缩 与java相同,也需要设置环境变量。 终端输入neo4j.bat console 成功

    2024年02月03日
    浏览(59)
  • Neo4j:入门基础(二)~ 数据导入Neo4J

    neo4j导入数据的方式有以下几种: Cypher create 语句,为每一条数据写一个create Cypher load csv 语句,将数据转成CSV格式,通过LOAD CSV读取数据。 neo4j-admin import导入 官方提供的Java API - BatchInserter 大牛编写的 batch-import 工具 neo4j-apoc load.csv + apoc.load.relationship 针对实际业务场景,定制

    2024年02月09日
    浏览(57)
  • vue+neo4j(neo4j desktop安装和使用)

    官网下载安装 官方下载链接:https://neo4j.com/download/ 下载后会跳转到 Activation Key 页面,已经自动生成好密钥,复制后,粘贴到 Neo4j Deskto 的 Software Keys 输入框内即可完成激活 官方安装使用手册 https://neo4j.com/developer/neo4j-desktop/ 软件主界面,默认附带一个 Example Project ,自带一个

    2024年02月14日
    浏览(44)
  • 【neo4j忘记密码】neo4j忘记密码的处理方法

    小伙伴们大家好,我是javaPope,因为最近想要构建知识图谱,突然想起自己还安装过neo4j,当我满怀欣喜启动以后却发现,忘记密码了,呜呜呜,然后,废话不多说,怎们直接上教程: 找到neo4j.config文件,路径如下(以自己为准): D:neo4jconfneo4j.conf 将 dbms.security.auth_enable

    2024年02月11日
    浏览(47)
  • Neo4j | 保姆级教学之如何清空neo4j数据库

    要清空neo4j数据库,需要进行以下操作: 停止Neo4j服务器,关闭Neo4j的所有连接。 找到 Neo4j 数据库存储的目录,通常是 data/databases/ 。 删除该目录中的所有文件和子目录。 请注意,这将不可逆地删除数据库的所有内容,包括节点、关系和属性等数据。在执行这个操作之前,请

    2024年02月06日
    浏览(53)
  • neo4j网页无法打开,启动一会儿后自动关闭,查看neo4j status显示Neo4j is not running.

    公司停电,服务器未能幸免,发现无法访问此网站,http://0.0.0.0:7474 在此之前都还好着 发现neo4j启动后几秒自动挂掉 查看neo4j的报错日志 得到以下内容(缩减版) 错误信息 “User limit of inotify watches reached” 表明系统达到了 Linux 内核对 inotify 监控事件的限制。inotify 是 Linux 内

    2024年04月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包