Neo4j APOC导入错误

时间:2017-05-09 15:28:53

标签: neo4j

我有一个以单个记录开头的数据模型,它有一个自定义" recordId"这是一个uuid,然后它与其他节点相关,然后它们又相互关联。该起始节点定义了"所属的数据"如果我们在neo4j中有单独的数据库,就像在一起一样。我需要将这些数据导出到备份数据集中,该数据集可以轻松地重新导入到同一个数据库或新数据库中

经过一些帮助后,我使用APOC进行导出:

call apoc.export.cypher.query("MATCH (start:installations)
WHERE start.recordId = \"XXXXXXXX-XXX-XXX-XXXX-XXXXXXXXXXXXX\"
CALL apoc.path.subgraphAll(start, {}) YIELD nodes, relationships
RETURN nodes, relationships", "/var/lib/neo4j/data/test_export.cypher", {})

我遇到了2个问题:

问题1是导出的数据具有内部neo4j标识符以生成关系。如果我们需要导入新数据库并且UNIQUE IMPORT ID值已经存在,那么这很糟糕。我需要用我自己的自定义recordIds生成这些数据作为参考点。

问题2是导入无法正常工作。

call apoc.cypher.runFile("/var/lib/neo4j/data/test_export.cypher") yield row, result

返回:

  

无法调用过程apoc.cypher.runFile:由以下原因引起:java.lang.RuntimeException:访问文件时出错/var/lib/neo4j/data/test_export.cypher

我希望有人可以帮我弄清楚可能发生的事情,但我不确定哪些其他信息会有所帮助。 Neo4j松弛通道中没有人能够帮助找到解决方案。

感谢。

1 个答案:

答案 0 :(得分:0)

问题1: 导出的文件不包含任何内部neo4j ID。从数据库中使用neo4j ids是不安全的,因为它们不是全局唯一的。因此,您不应该使用它们将数据从一个数据库传输到另一个数据库。 如果您要使用全局uniqe ID,您可以使用GraphAware UUID插件等外部插件。 (免责声明:我为GraphAware工作)

problem2: 如果您无法访问该文件,那么可能的原因是:

  • 在neo4j.conf中没有设置apoc.import.file.enabled = true
  • os级别 未设置权限