Преобразование плоского CSV для batch_importer

Я пытаюсь использовать пакетный импортер Neo4j csv для загрузки большого файла csv (~ 20 млн строк). Я застрял в том, как разобрать csv, чтобы использовать импортер. Вот как выглядит csv:

CUSTOMER_NAME,TRANSACTION_DATE,TRANSACTION_NO,TRANSACTION_TYPE,COMPANY_TYPE,COMPANY_NAME,STREETNUM,STREETNAME,CITY,STATE,ZIPCODE

Структура графика следующая - я создавал график в браузере (слишком медленно с таким количеством строк):

MERGE (state:STATE{STATE: {line.STATE}})                  
MERGE (company:COMPANY{COMPANY_NAME: line.COMPANY_NAME, COMPANY_TYPE: line.COMPANY_TYPE, STREETNUM: line.STREETNUM, STREETNAME: line.STREETNAME}) 
MERGE (customer:CUSTOMER{CUSTOMER_NAME: line.CUSTOMER_NAME})                       
MERGE (zipcode:ZIPCODE{ZIPCODE: line.ZIPCODE})
MERGE (customer)-[:TRANSACTION{TRANSACTION_NO: line.TRANSACTION_NO, TRANSACTION_TYPE: line.TRANSACTION_TYPE}]->(company)-[:LOCATION]-(zipcode)
MERGE (state)-[:CITY{CITY: line.STATE}]-(zipcode)

Сколько CSV мне нужно использовать с пакетным импортером? Могу ли я воссоздать эту структуру графа всего с двумя csv (узлами/отношениями)? Если да, то я запутался в структуре этих конкретных CSV. Например:

nodes.csv: 
COMPANY:string:COMPANY,l:label,COMPANY:string:COMPANY_NAME,COMPANY:string:COMPANY_TYPE,COMPANY:string:STREETNUM,COMPANY:string:STREETNAME

^ где я могу включить другие узлы?

rels.csv
STATE:string:STATE,ZIPCODE:string:ZIPCODE,CITY,CITY:string:CITY

^как включить полный путь (2+ ссылки) или несколько отношений?


person adam    schedule 16.01.2015    source источник


Ответы (1)


Пакетный импортер neo4j требует, чтобы узлы и ребра находились в отдельных CSV-файлах. Я предлагаю вам обработать исходный файл, чтобы сгенерировать файлы nodes.csv и edge.csv, содержащие только узлы и ребра в каждом файле.

Вы также можете указать несколько файлов для узлов и ребер при использовании импортера, например: import.bat test.db "nodes1.csv,nodes2.csv" "edges1.csv,edges2.csv"

Надеюсь, это поможет.

person Jay    schedule 23.01.2015
comment
это шаг в правильном направлении. Я не могу получить свойства узлов для заполнения, и это пропускает создание отношений. - person adam; 27.01.2015