2017-05-09 1 views
0

단일 레코드로 시작하는 데이터 모델이 있습니다.이 레코드에는 uuid라는 사용자 지정 "recordId"가 있으며 다른 노드와 관련되어 차례로 서로 관련되어 있습니다. 시작 노드는 neo4j 내부에 별도의 데이터베이스가있는 것처럼 "속한"데이터를 정의합니다.Neo4j APOC 가져 오기 오류

: 나는 동일하거나 쉽게

으로 새 데이터베이스 도움이 후, 나는 수출을 할 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", {}) 

나는 데이 문제가 다음 있습니다

문제 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 슬랙 채널의 아무도 솔루션을 찾는 데 도움을 줄 수 없었습니다.

감사합니다.

+0

neo4j 서버의 컴퓨터 시스템에 * 해당 경로가 있는지 * 확인 했습니까? – cybersam

+0

예, 경로가 존재하며 내보내기는 복원을 시도하기 전에 파일을 처음에 저장합니다. 문자 그대로 하나를 실행 한 다음 다른 하나는 파일 이름/경로를 복사하여 두 파일에 붙여 넣었습니다. 내보내기가 성공적으로 작동하는 이유를 찾을 수 없으며 가져 오기에서 파일에 액세스하는 데 문제가 있습니다. –

답변

0

문제 1 : 내 보낸 파일에 내부 neo4j ID가 없습니다. neo4j ID는 전 세계적으로 고유하지 않으므로 데이터베이스에서 사용하는 것이 안전하지 않습니다. 따라서 한 데이터베이스에서 다른 데이터베이스로 데이터를 전송하는 데 사용해서는 안됩니다. 글로벌 uniqe id를 사용하려는 경우 GraphAware UUID 플러그인과 같은 외부 플러그인을 사용할 수 있습니다.

: (면책 조항 나는 GraphAware을 위해 일) problem2 : 해당 파일에 액세스 할 수없는 경우, 가능한 이유 :

  • apoc.import.file.enabled = neo4j.conf
  • 에 설정되어 있지 않은 사실
  • os 레벨 권한이 설정되지 않았습니다.
+0

볼트 프로토콜을 사용하는 자체 가져 오기/내보내기 프로세스를 작성했습니다. 솔직히 Neo4j 커뮤니티와 엔터프라이즈 모두에서 제공되는 도구는 제 의견으로는 거의 사용이 불가능합니다. –

관련 문제