我们开发了用于路线优化的定制和专有软件, 使用 Neo4J 作为我们的图形数据库。我们还在 Java 中开发了一些插件和非托管扩展,只要在图形上进行搜索,它们就会实现特定的业务逻辑。由于我们面临 Neo4J 的严重性能问题,我们正在考虑将我们的专有软件从 Neo4J 迁移到 DataStaX DSE 5.0 Graph。但最初想评估 DSE Graph。
我们有几个具体问题 关于 Neo4J 的迁移路径 --> DataStax Graph DB
- 如何将数据从 Neo4J 迁移到 DataStax Graph DB?
- 我们需要对应用程序中的 Neo4J Cypher 代码进行哪些更改才能使其在 DataStax DSE Graph DB 上运行?
- 我们使用 Java 在 Neo4J 中开发了一些插件/非托管扩展,这些插件/非托管扩展将许多核心业务规则合并到 Neo4J 中。每当 Neo4J 搜索/遍历图形数据库时,我们的 Java 业务逻辑代码就会被调用。 DataStax DSE Graph 是否支持类似于插件和/或非托管扩展的东西?
我们想看看如何将我们现有的 Neo4J Java 代码迁移到 DataStax DSE Graph 代码。在我们可以启动并运行 DataStax DSE Graph 之前,我们需要确定执行此练习所涉及的工作量。
最佳答案
这可能有帮助:http://www.tinkerpop.com/docs/3.0.0.M1/#neo4j-gremlin
您基本上可以通过 gremlin 控制台连接到您的 Neo4J 实例,获取您想要的数据,并将其写出到一个可以加载到 DSE Graph 中的文件中。看起来有点像
graph.io(IoCore.gryo()).writeGraph("tinkerpop-modern.kryo");
参见:http://www.tinkerpop.com/docs/3.0.0.M1/#gremlin-kryo
您的问题很多,尤其是关于设计的问题,无法在 StackOverflow 帖子中准确回答,因为其中很多问题都是针对您的用例的。我建议直接联系 DataStax 解决这些问题,他们会很乐意提供帮助。话虽这么说,我会提前告诉你,Neo4J 和 DSE Graph 是非常不同的系统。因此,您可能不得不重新考虑架构设计以及应用程序代码设计。
如果您已经熟悉 Cassandra,那么这对架构方面有很大帮助。即便如此,我还是建议您查看一些有关 DSE Graph 的免费培训,特别是:https://academy.datastax.com/courses/ds330-datastax-enterprise-graph
关于java - 从 Neo4J 迁移到 DataStax 图形数据库 (DSE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38646521/