Импортируйте большие данные в Neo4j, не зная идентификатора узла

У меня проблема с ведьмой - это лучший способ вставить некоторые данные в neo4j db. У меня есть файл с большим количеством информации о фильмах, каждый фильм имеет свой идентификатор, например, "tt0202025". У меня также есть файл с информацией об актерах, и у каждого есть идентификатор типа "mm2183122". У меня есть еще один файл, который описывает, в каком фильме снимается актер. mm2183122|tt0202025,tt0204548

Я нашел некоторые вещи для CSV, как вставка, но я не могу создать файл отношений между узлами раньше из-за размера данных.

Должен ли я сначала добавить узлы фильмов и узлы актеров и после отношений между ними? И как можно узнать, какой идентификатор узла создается для каждого узла для создания отношений? Данные большие.

Я также читал для Batch Insertion, но я не смог понять, как именно это работает, поэтому я могу написать свой код в Java.

Жаль, что кто-то может вести меня!

Заранее спасибо!

2 ответа

Решение

Как вы указали, самое простое решение - вставить узлы фильмов и узлы актеров, а затем создать отношения.

Вы можете отслеживать узлы, используя "mm2183122" и "tt0202025" в качестве свойств узлов: например, у вас будет свойство "file_id" для ваших узлов, которое вы индексируете при создании узлов, и запрашиваете его, когда хотите создать отношения. Я бы использовал уникальные индексы, чтобы убедиться, что вы не дублируете узлы, если вставляете их несколько раз. Для REST API у вас есть документ здесь: http://docs.neo4j.org/chunked/milestone/rest-api-unique-indexes.html

Cypher также позволяет создавать уникальные узлы.

Вы можете взглянуть на Talend Open Studio для больших данных - он имеет разъем Neo4j. Кривая обучения довольно крутая, но оно того стоит.

Другие вопросы по тегам