2015-01-16 3 views
2

Neo4j csv batch-importer을 사용하여 큰 CSV (~ 20mil)를 업로드하려고합니다. 가져 오기 도구를 사용하기 위해 CSV를 구문 분석하는 방법에 붙어 있습니다. 이것은 CSV는 모습입니다 같은 :flat csv for batch_importer 변환

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를 할을 batch-importer과 함께 사용해야합니까? 두 개의 csvs (nodes/rels)로이 그래프 구조를 다시 만들 수 있습니까? 그렇다면 특정 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+ rel) 또는 다중 관계를 포함합니까?

답변

0

neo4j 배치 가져 오기 도구를 사용하려면 별도의 csv 파일에 노드와 가장자리가 있어야합니다. 원본 파일을 처리하여 각 파일의 노드와 가장자리 만있는 nodes.csv 및 edges.csv 파일을 생성하는 것이 좋습니다. 예를 들어, 입력기를 사용하는 경우

또한 노드와 에지 여러 파일을 지정할 수 있습니다 import.bat test.db "nodes1.csv,nodes2.csv" "edges1.csv,edges2.csv"

희망을.

+0

올바른 방향으로 나아가 야합니다. 노드의 특성을 채울 수 없으며 관계 생성을 건너 뜁니다. – user2338089