-
[Neo4j + Python] Python에서 Neo4j DB 접속하고 쿼리하기Data & ML & AI/GraphDB(Neo4j) 2022. 8. 28. 21:37반응형
프로젝트 진행을 간소화 하기 위해 Neo4j DB의 노드와 엣지를 만드는걸 자동화 하고싶습니다.
하지만
1) csv파일을 다운받아서
2) Neo4j desktop을 통해 csv를 import해주고,
3) csv를 죄다 로드한 뒤,
4) 그 중 필요한 것들끼리만 관계를 설정해 주고....
매우 번거로워 보입니다.
물론 저것만으로 충분히 할 수 있는 것은 많겠지만, 차라리 다른 프로그래밍 언어를 통해서 제어하는 것이 나아보입니다.
파이썬과 Neo4j를 연동해봅시다.
0. 주의
- 근래의 많은 라이브러리들이 그렇듯, 아래의 내용 역시 python2에서는 support되지 않습니다. (https://neo4j.com/developer/python/)
- 접속하려는 DB가 당연히 켜져있어야 접속 가능합니다.
Neo4j Desktop을 이용한다면 해당 DBMS의 [Start]버튼을 눌러 DBMS를 ACTIVE 상태로 만들어주세요.
1. neo4j 라이브러리 설치
pip install neo4j
정상적으로 설치가 되었다면 python에서 아래의 코드를 통해 정상설치 여부를 확인할 수 있습니다.
from neo4j import __version__ as neo4j_version print(neo4j_version) # 4.4.5
2. Python에서 Neo4j 세션 연결하기
from neo4j import GraphDatabase # driver = GraphDatabase.driver(uri, auth=(user, password)) driver = GraphDatabase.driver('bolt://localhost:7687', auth=('neo4j', '0000')) session = driver.session()
Neo4j 설치과정에서 port를 변경하신 적이 없다면, 일반적으로 port 번호는 7687, user는 neo4j입니다.
Neo4j Browser창(DBMS의 [Open]버튼을 누르면 새로 뜨는 창)에서 정보를 확인할 수 있습니다.
3. Python과 Neo4j DB가 잘 연결 되었는지 최종 확인하기
q = 'MATCH (n) RETURN n LIMIT 5' nodes = session.run(q) for node in nodes: print(node) # <Record n=<Node id=0 labels=frozenset({'Movie'}) properties={'tagline': 'Welcome to the Real World', 'title': 'The Matrix', 'released': 1999}>> # <Record n=<Node id=1 labels=frozenset({'Person'}) properties={'born': 1964, 'name': 'Keanu Reeves'}>> # <Record n=<Node id=2 labels=frozenset({'Person'}) properties={'born': 1967, 'name': 'Carrie-Anne Moss'}>> # <Record n=<Node id=3 labels=frozenset({'Person'}) properties={'born': 1961, 'name': 'Laurence Fishburne'}>> # <Record n=<Node id=4 labels=frozenset({'Person'}) properties={'born': 1960, 'name': 'Hugo Weaving'}>> session.close()
참조문서
- https://neo4j.com/developer/python/
- https://pinglab-intern.github.io/SamirDocs/instructions/Query_Neo4j_Python/
반응형'Data & ML & AI > GraphDB(Neo4j)' 카테고리의 다른 글
[Neo4j + Python] Python에서 Neo4j 쿼리 결과 읽기 (0) 2022.08.29 Neo4j csv파일 열기(LOAD CSV) (0) 2022.07.11 Neo4j 제약조건 생성하기(CONSTRAINT: unique, Not Null) (0) 2022.07.07 Neo4j Cypher 기본구문(Create, Match, Merge 절) (0) 2022.06.09 Neo4j의 기본 구성요소(Elements of Neo4j; study with Movies Project Tutorial) (0) 2022.06.09