2015-12-02 2 views
-4

У меня есть таблица отношений (A отправляет электронную почту на B) в формате CVS. Как импортировать его в среду NEO4J? должно быть что-то вроде цикла в среде CQL. но я не мог найти.импорт таблицы отношений с NEO4J

ответ

0

Посмотрите на Cypher инструмент LOAD CSV как описано здесь: http://neo4j.com/docs/stable/query-load-csv.html

Если у вас есть файл CSV адресов электронной почты, который представляет (:Person)-[:SENDS_EMAIL_TO]->(:Person) так:

"From","To" 
"[email protected]","[email protected]" 
"[email protected]","[email protected]" 

Вы можете импортировать это в Neo4j с сценарий Cypher:

LOAD CSV WITH HEADERS FROM "file:///path/to/file.csv" AS row 
MERGE (from:Person {email: row.From})-[:SENT_EMAIL_TO]->(to:Person {email: row.To}) 

Для обеспечения производительности сначала создайте ограничение уникальности на :Person(email):

CREATE CONSTRAINT ON (p:Person) ASSERT p.email IS UNIQUE; 

Вы в основном, вероятно, хотите использовать немного более сложную модель данных, однако, в зависимости от вашего использования. Если у вас есть содержание/метаданные электронной почты, вы должны рассмотреть вопрос извлечения Email из в узел, так что модель данных будет выглядеть следующим образом:

(from:Person)-[:SENT]->(E:Email)-[:TO]->(to:Person) 

Вы можете хранить мета-данные электронной почты на Email узле ,

+0

Спасибо за замечание. но я пытался и столкнулся с ошибкой: недопустимый ввод '{': ожидаемый пробел, комментарий или имя метки (строка 2, столбец 62 (смещение: 130)) "MERGE (from: Person {email: row.From}) - [ : SENT_EMAIL_TO] -> (to: {email: row.To}) " – Mahsoon

+0

Я оставил в запросе метку' Person'. Исправлено. Извините, что –

+0

Спасибо. он разрешен. У меня есть еще одна проблема с загрузкой данных. Над таблицей, которую я хочу импортировать в NEO4J, есть 700k строк, и я сталкиваюсь с ошибкой: Java heap space. Я попытался изменить размер кучи: # wrapper.java.initmemory = 1024 # wrapper.java.maxmemory = 1024, но не работал. он не мог даже загрузить 100k! – Mahsoon

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