반응형

/*
-- Title : [N4j4.4] LOAD 구문을 통한 CSV 기반 노드 구축
-- Tag : neo4j csv files import load csv 네오포제이
*/


■ LOAD CSV 활용 범위

  • URI에서 CSV 데이터 로드/수집 지원
  • 입력 데이터를 복잡한 그래프/도메인 구조에 직접 매핑
  • 데이터 변환 처리
  • 복잡한 계산 지원
  • 도면요소, 관계 및 구조를 작성하거나 병합합니다.


■ CSV 파일 위치

  •  Neo4j Import 디렉토리에서만 읽기 가능(OS별 File Locations 참조)
  • CentOS : /var/lib/neo4j/import

 


■ CSV 데이터 조회

// CSV ROW 행수 조회
load csv from "file:///tttBook.csv" as row
return count(*)

│"count(*)"│
│11        │

// CSV 데이터 조회
load csv from "file:///tttBook.csv" as row
return row limit 3

│"row"                                                         │
│["bk_id","bk_nm","page_cnt","pub_dt","fk_isbn_id","fk_pub_id"]│
│["kr11","구성 가능 매체 구조","138","2020-02-07","B01B","4"]    │
│["kr12","에어로졸 제공 시스템","196","2017-09-01","E01E","2"]   │

// 첫행(헤더 및 필드별 조회)
load csv with headers from "file:///tttPublisher.csv" as row
return row.pub_id, row.pub_nm, row.pub_tp limit 3

│"row.pub_id"│"row.pub_nm"│"row.pub_tp"│
│"1"         │"삼성전자"      │"코스피"       │
│"2"         │"LG전자"      │"코스피"       │
│"3"         │"포스코"       │"외감"        │                                                              │


■ CSV 통한 노드 생성

// 노드 생성
load csv with headers from "file:///tttBook.csv" as row
create (b:tttBook)
set b = row

Added 10 labels, created 10 nodes, set 60 properties, completed after 51 ms.

// 노드 조회
match(b:tttBook) return b

// 속성 타입 확인
match(b:tttBook) return b limit 1

{ "identity": 0,
  "labels": [
    "tttBook"
  ],
  "properties": {
"bk_nm": "구성 가능 매체 구조",
"page_cnt": "138",             // 숫자필드인데 문자로 처리
"bk_id": "kr11",
"fk_pub_id": "4",             // 숫자필드인데 문자로 처리
"fk_isbn_id": "B01B",
"pub_dt": "2020-02-07"
  }}
  
// 초기화
match(b:tttBook) delete b;

// 숫자필드로 변경 
load csv with headers from "file:///tttBook.csv" as row
create (b:tttBook)
set b = row
, b.page_cnt = toInteger(row.page_cnt)
, b.fk_pub_id = toInteger(row.fk_pub_id)

 


■ 샘플 파일 및 업로드 스크립트

tttBook.csv
0.00MB
tttISBN.csv
0.00MB
tttPublisher.csv
0.00MB
BookCSV DB - CSV로 생성 Script.cypher
0.00MB


※ Resources
https://db-hyunjin.tistory.com/49
brain-nim.tistory.com/33
https://neo4j.com/developer/guide-import-csv/

 

 

반응형

+ Recent posts