Загрузите очень большой CSV в Neo4j

Я хочу загрузить в Neo4j набор больших тройных файлов rdf. Я уже написал код сокращения карты для чтения всех входных n-троек и вывода двух файлов CSV: nodes.csv (7 ГБ - 90 миллионов строк) и Relations.csv (15 ГБ - 120 миллионов строк).

Я попробовал команду batch-import из Neo4j v2.2.0-M01, но она вылетает после загрузки около 30 миллионов строк узлов. У меня на компьютере 16 ГБ ОЗУ, поэтому я установил wrapper.java.initmemory = 4096 и wrapper.java.maxmemory = 13000. Итак, я решил разделить node.csv и Relations.csv на более мелкие части и запустить пакетный импорт для каждой части. Однако я не знаю, как объединить базы данных, созданные из нескольких операций импорта. Я ценю любые предложения о том, как загружать большие файлы CSV в Neo4j.


person mohsen    schedule 11.12.2014    source источник


Ответы (2)


Наконец-то я смог загрузить данные с помощью команды пакетного импорта в Neo4j 2.2.0- M02. Всего на это ушло 56 минут. Проблема, мешавшая Neo4j загружать файлы CSV, имела \ "в некоторых значениях, которые интерпретировались как символ кавычки, который должен быть включен в значение поля, и с этого момента это все испортило.

person mohsen    schedule 16.12.2014

Почему бы вам не попробовать этот подход (используя Groovy): http://jexp.de/blog/2014/10/fflexible-neo4j-batch-import-with-groovy/

вы создадите ограничение уникальности для узлов, поэтому дубликаты не будут создаваться.

person user201411    schedule 11.12.2014
comment
Спасибо @ user201411, про этот вариант не знал, попробую и дам знать, как проходит. - person mohsen; 11.12.2014