2016-03-11 5 views
0

Я тестирую Neo4j 2.3.2, и у меня возникают проблемы при импорте файла.Ошибка при импорте отношений из файла CSV

Во-первых, я предоставляю информацию о данных. Я работаю в компаниях, и у каждого человека есть хотя бы один титул на работу (у немногих есть две должности). В нашей логике названия заданий классифицируются, и каждый заголовок имеет код, но тот же код может быть в другой категории (называемой средой).

В настоящее время в БД имеется 550 000 человек, 15 сред и 30 рабочих мест.

У меня есть файл CSV, который связывает каждого человека с его названием (в его среде). Этот файл имеет такое же количество записей, что и люди в БД. Итак, я запускаю этот Cypher запрос в веб-интерфейс:

using periodic commit 
load csv with headers from "file:///C:\\...\\individu.csv" as row 
match (c:Contact {individuId: row.NUM_INDIVIDU}), (f:Fonction {rank: row.NUM_FONC})-[:DEPEND]->(e:Environnement {rank: row.NUM_ENV}) 
merge (c)-[:POSTE]->(f); 

И я получаю эту ошибку:

GC overhead limit exceeded

Мой размер данных не очень важно, так что я не понимаю, почему мой импорт терпит неудачу.

Может ли плохое моделирование использовать отношение такого рода? Должен ли я сохранять эти данные в качестве свойств? Слишком много отношений между 500 или 600 тысячами POSTE?

EDIT Я думаю, что нашел проблему. У меня 300 000 человек имеют одинаковое место работы. Слишком много 300 000 отношений к одному узлу?

ответ

0

Похоже, что в вашем заявлении import используется горячая труба, которая вызывает периодическую фиксацию не работает должным образом. Таким образом, импорт выполняется в одной транзакции, которая требует слишком большой памяти и, следовательно, вызывает проблемы с GC.

Существует много информации о проблеме с горячим трубопроводом, например. http://www.markhneedham.com/blog/2014/10/23/neo4j-cypher-avoiding-the-eager/

Смежные вопросы