将数据持久化到neo4j独立服务器

将数据持久化到neo4j独立服务器,neo4j,Neo4j,我目前正在做一些研发工作,将一些业务功能从Oracle RDBMS迁移到Neo4j,以降低应用程序查询中的连接复杂性。由于数据的维护和可见性要求,我认为独立服务器是最佳选择 我的想法是,在java程序中,我将从Oracle表中提取相关数据,将其映射到节点对象,并将其持久化到neo4j(在过程中创建适当的关系) 我很好奇,既然SDN而不是REST不是一个最佳的解决方案,那么有哪些选项可以用于持久性呢。服务器插件或非托管扩展是首选方法吗?或者我是否像经常发生的那样将问题过度复杂化了 谢谢大家! RE

我目前正在做一些研发工作,将一些业务功能从Oracle RDBMS迁移到Neo4j,以降低应用程序查询中的连接复杂性。由于数据的维护和可见性要求,我认为独立服务器是最佳选择

我的想法是,在java程序中,我将从Oracle表中提取相关数据,将其映射到节点对象,并将其持久化到neo4j(在过程中创建适当的关系)

我很好奇,既然SDN而不是REST不是一个最佳的解决方案,那么有哪些选项可以用于持久性呢。服务器插件或非托管扩展是首选方法吗?或者我是否像经常发生的那样将问题过度复杂化了


谢谢大家!

REST指的是通过网络查询数据的方法,而不是存储数据的方法。通常,您要将数据存储在某台机器上;然后,您可以选择使用neo4j服务器通过RESTful服务访问它,或者只使用java应用程序访问数据

我猜你指的是SDN。Spring是一个用于java应用程序的框架,如果您愿意,SDN会为Spring提供一个插件,它允许java程序员在neo4j中存储模型。确实可以使用spring-data-neo4j读取数据,然后将其存储在neo4j中——但这也是数据如何进入neo4j的一种方法,它本身不是存储

在大多数情况下,存储模型几乎总是相同的。描述存储实际发生的方式

现在--到您更大的业务目标。为了使用neo4j实现这一点,您需要查看您的oracle数据,并决定如何将其最好地建模为图形。就数据的表示方式而言,oracle RDBMS和Neo4J之间存在很大差异。一旦确定了图形设计,就可以将数据加载到neo4j(许多不同的选项)


所有这些都会“降低应用程序查询中的连接复杂性”吗?是的,从某种意义上说Neo4j不做连接。它会提高应用程序的速度/性能吗?没办法说。答案取决于你的应用程序是什么,查询是什么,你如何将数据建模为图形,以及如何在该图上表示结果查询。

我想我的印象是,如果我使用spring data neo4j和独立服务器,则创建节点/关系查询将使用某种形式的spring neo4j rest在服务器上运行语句。因为这会对性能产生影响,所以我想尽量避免这种情况。我在考虑使用事务性http端点,或者可能是jdbc驱动程序,但我不知道每种方法的优缺点。至于业务目标和为了性能降低连接的复杂性,这是研发目标的一部分。我正在研究的neo4j应用程序的一部分是我们的产品树,它在很大程度上是基于关系查询的,这似乎是一个很好的匹配,因为我们通常从一个类别开始,钻取产品属性,以找到满足所需标准的一个或多个项目。这是一个多语言持久性模型的开始和关键部分,我想让老板相信,它比关系型数据库管理系统更能满足业务需求。我想你在这里把几个不同的主题结合起来了。我不知道有“spring neo4j rest”这样的东西存在。Spring neo4j是Spring模型和neo4j对象之间的一组映射。REST是一种访问的方法。是的,在REST上执行查询会对性能产生影响(通常比较慢),所以不要这样做。如果您使用的是spring数据neo4j,那么就不会使用REST。我认为你的意思是“嵌入式”neo4j而不是“独立”。至于使用HTTP作为访问方法而不是JDBC,JDBC会更快,但你必须开发java代码才能使用它。HTTP将更慢,但更通用;您可以使用非java软件与it/query进行对话,有时还可以使用常规客户端(如浏览器)而不是自定义代码。由于原型的功能需求,根据我的研究,嵌入式neo4j不是一个可行的选择。通过进一步研究,我相信spring-data-neo4j只能访问嵌入式neo4j数据库,因此我可以使用spring-data-neo4j-rest访问远程neo4j服务器,但由于在线聊天,这不是最佳方法。对于查询,我可以使用非托管扩展来减少网络流量,但是我可以选择哪些选项来创建/更新节点和关系?现在我要使用JDBC驱动程序,或者使用SDN编写的服务器扩展(如果要使用对象图映射)。这完全取决于您想要解决的用例。谢谢@MichaelHunger。