从Neo4J迁移到DataStax图形数据库(DSE)

时间:2016-07-28 20:52:08

标签: java graph neo4j datastax datastax-enterprise-graph

我们为路线优化开发了定制和专有软件, 使用Neo4J作为我们的Graph DB。我们还开发了一些Java中的插件和非托管扩展,只要在Graph上进行搜索,就可以实现特定的业务逻辑。由于我们正面临着Neo4J的严重性能问题,我们正在考虑将我们的专有软件从Neo4J迁移到DataStaX DSE 5.0 Graph。但是最初想评估DSE Graph。

我们几乎没有具体问题 关于Neo4J的迁移路径 - > DataStax图形数据库

  1. 如何将数据从Neo4J迁移到DataStax Graph DB?
  2. 我们的应用程序中需要对Neo4J Cypher Code进行哪些更改才能在DataStax DSE Graph DB上运行?
  3. 我们使用Java在Neo4J中开发了一些插件/非托管扩展,其中包含许多核心业务规则并入Neo4J。每当Neo4J搜索/遍历图形数据库时,都会调用Java中的业务逻辑代码。 DataStax DSE Graph是否支持类似于插件和/或非托管扩展的内容?
  4. 我们希望了解将现有的Neo4J Java代码迁移到DataStax DSE Graph代码所需的条件。在我们启动并运行DataStax DSE Graph之前,我们需要确定执行此练习所需的工作量。

1 个答案:

答案 0 :(得分:1)

这可能会有所帮助:http://www.tinkerpop.com/docs/3.0.0.M1/#neo4j-gremlin

您实际上可以通过gremlin控制台连接到Neo4J实例,获取您想要的数据,并将其写入可以加载到DSE Graph的文件中。这看起来像

from pypeg2 import optional, List, Namespace
import re

number = re.compile(r'\d+')
binop = re.compile(r'\+|\*') # Exercise: Extend to other binary operators


class BinOp(Namespace):
    grammar = binop


class Number(Namespace):
    grammar = number, optional("."), optional(number)


class Expression(Namespace):
    grammar = Number, optional(BinOp, Number)


class Equation(List):
    grammar = Expression, optional("="), optional(Expression)

请参阅: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