2015-01-21 3 views
1

저는 Neo4j에 대해 매우 익숙하며 약 2.5m 노드 사이에 많은 관계 (~ 3.5m)를 만들려고 할 때 어려움을 겪고 있습니다. localhost에서 Neo4j에 대한 웹 기반 인터페이스를 사용하여 아래 쿼리를 실행하려고합니다. 쿼리가 실행되지만 약 5 분 후에 브라우저에 "Disconnected"라고하는 메시지가 표시되고 다른 시간에 Java 힙에 대해 불평하는 메시지가 표시됩니다. 내 쿼리가 내가 뭘하고 싶지 않거나, 비효율적인지, 아니면 너무 많은 데이터베이스를 묻는 지 알 수 없습니까? 아무도 내 노드 사이의 관계를 어떻게 만들 수 있는지 조언 할 수 있습니까? 고객 :Neo4J - 많은 양의 관계 생성 (360 만)

노드 구조는 매우 기본적인 CSN, 위치, 성별 내가 관계를 사용하고 파일도 매우 간단하다

; 관계 : SourceCSN, DestCSN

using periodic commit 100 
load csv with headers from "file:///c:/datafiles/InterCustomerRelationships.csv" as csvLine 
MATCH (from:Customer {CSN: csvLine .SourceCSN}), (to:Customer {CSN: csvLine.DestCSN}) 
CREATE (from)-[:PAID]->(to) 

내가 기가 바이트 RAM과 윈도우 7에 Neo4J 2.1.1을 사용하고 있습니다.

도움/조언을 미리 보내 주셔서 감사 드리며 감사드립니다.

답변

1

먼저 고객 라벨의 CSN 속성에 인덱스가 있는지 확인하십시오. 이것은 단순한 인덱스가 될 수 있습니다. 또는 고유 한 제약 조건 인 경우를 생각해보십시오.

두 번째로, 나는 10 줄의 작은 가져 오기를 실행하고 실행 계획이 어떻게 보이는지 분석 할 것을 제안합니다. 이를 위해 동일한 가져 오기를 실행합니다 (dB의 첫 번째 백업을)이이 neo4j 쉘에서 수행되어야한다 세트를 제한 할 수 있습니다 , 당신의 도움을 주셔서 감사합니다

PROFILE 
load csv with headers from "file:///c:/datafiles/InterCustomerRelationships.csv" as csvLine 
WITH csvLine 
LIMIT 10 
MATCH (from:Customer {CSN: csvLine .SourceCSN}), (to:Customer {CSN: csvLine.DestCSN}) 
CREATE (from)-[:PAID]->(to) 
+0

안녕 크리스토프 완벽하게 작동했습니다. Neo4j의 64 비트 버전을 설치 했음에도 불구하고 32 비트 버전의 Java RE (회사 표준 릴리스) 만있었습니다. 올바른 Java 버전을 설치하고 10000으로 설정된 주기적 커밋을 사용했습니다. – CWild