나는 6 천 8 백만 데이터 포인트보다 큰 데이터 세트를 가지고 있습니다. 데이터는 현재 MongoDB에 저장되어 있으며 데이터 포인트를 연결하고 Cypher 명령을 사용하여 Neo4j 데이터베이스에 저장하는 데이터를 처리하는 Java 프로그램을 작성했습니다. 나는이 프로그램을 테스트 세트의 데이터 (~ 150 만)로 실행했고, 작동하여 하룻밤 사이에 실행했다. 이제 전체 데이터 세트를 가져 오려고하면 프로그램이 매우 느립니다. 주말 내내 35 만개의 데이터 포인트 만 만들어 냈습니다. 짧은 테스트를 통해 Neo4j가 병목 현상이있는 것 같습니다. Java 프로그램을 중단 한 지 반 시간이 지났지 만 Neo4j의 CPU 사용량은 100 %이고 새 노드는 계속 추가됩니다 (Java 프로그램에서). 이 병목 현상을 극복 할 수있는 방법이 있습니까? 멀티 스레딩에 대해 생각해 봤지만 네트워크를 만들려고 할 때 많은 의존성과 스레드 안전하지 않은 작업이 수행됩니다. 당신의 도움을 주셔서 감사합니다!대용량 데이터 세트를 Neo4j로 가져 오는 작업은 매우 느립니다.
편집 : 내가 가지고있는 데이터는 사용자 목록입니다. 포함 된 데이터는 사용자 ID와 사용자의 친구 ID 배열입니다. 내 사이퍼 쿼리가 조금 같이 : 먼저이 봐야한다이
몇 가지 예제 쿼리를 공유 할 수 있습니까? MERGE 또는 MATCH를 사용하는 경우 해당 Label + 속성 조합에 대한 색인이나 더 나은 제약 조건이 있는지 확인하십시오. –
자바를 사용하는 경우 java neo4j api를 사용하는 것이 훨씬 빠르다 고 생각합니다. 사이퍼 쿼리를 번역해야합니다. – Mvde