2014-10-13 2 views
0

Я задал вопрос несколько дней назад, чтобы узнать, как импортировать существующую базу данных в Neo4J. Благодаря человеку, который объяснил мне, как это сделать. Я решил создать файл CSV из моей базы данных (около 1 миллиона записей) и загрузить его с веб-сервера Neo4j для его проверки. Проблема состоит в том, что каждая строка этой базы данных содержит избыточные данные, например, моя база данных содержит действия от разных пользователей, но каждый пользователь может выполнять множественные действия. Структура моего графика будет заключаться в создании узла для каждого пользователя, связанного с каждым действием, которое он выполняет. Вот почему я должен создать только один узел для каждого пользователя, даже если его имя отображается в нескольких строках моего файла CSV (потому что он сделал несколько действий). Каков метод для этого? Думаю, это возможно сделать в Сайфере? Большое спасибо С уважением СэмNeo4J пользовательская нагрузка CSV

ответ

1

В случае, если у Вас есть ссылки, которые могут или не могут существовать, вы должны использовать MERGE заявление. MERGE либо находит что-то, либо создает что-то в вашей базе данных.

См. Соответствующий раздел в справочном руководстве: http://docs.neo4j.org/chunked/stable/cypherdoc-importing-csv-files-with-cypher.html. Здесь страна делится с моими многочисленными пользователями там, где страна сливается, и пользователи и их отношения со странами безоговорочно создаются.

+0

Большое спасибо за ваш быстрый ответ. Кажется, что он работает с использованием оператора MERGE, но на веб-интерфейсе Neo4j требуется много времени (около 9 минут), чтобы иметь дело с примерно 150 000 строк файла CSV (который создает только 1500 разных узлов), и у меня есть еще одна проблема, m часто отключается от Neo4j, может быть, из-за времени работы? Спасибо Stefan –

+1

Сэм вы можете поделиться своим точным запросом? Вы должны использовать 'периодический коммит', а также убедитесь, что между ними нет шага« Eager », который вытягивает все строки за один раз, чтобы отделить чтения от предыдущих записей. –

+0

Спасибо, Майкл за ваш ответ. Я не знаю, где, но проблема должна быть. Я загружаю CSV-файл, содержащий имена пользователей и событий, которые они создают. Конечно, пользователь делает несколько событий, поэтому первое, что объясняется выше, заключается в создании узлов с именами пользователей без избыточности (даже если они появляются более чем в строке). Это делается с помощью команды MERGE, и она работает примерно через 1 минуту. Затем я пытаюсь создать узлы для каждого события, поэтому в моем CSV-файле должно быть множество узлов, кроме строк. Для этого я использую следующий код: –

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