Neo4J csv 파일로 sandbox 활용법

zoo_gathers·2024년 11월 4일

Neo4J

목록 보기
1/4

위 방법은 Neo4J 데스크탑이 아닌 온라인 상에서 Neo4J를 활용하는 방식이다.

sandbox.neo4j
먼저 위 링크를 클릭해 sandbox로 이동한다.

이동해 회원가입 혹은 로그인을 완료하면

다음과 같은 화면을 확인할 수 있다.

위 화면에서 우리는 개인의 csv 파일 데이터를 활용할 것이기에

조금 아래로 내려 Blank Sandbox를 클릭해 생성하도록 한다.

생성 후

위와 같이 화면이 나오면

open 오른쪽 화살표 버튼을 클릭해 연결 방법을 확인한다.

Python을 활용해 연결할 것이기에 Python 연결 방법을 확인했다.

그리고 url 링크와 아이디, 비밀번호도 함께 필요하기에 아래 정보도 함께 확인하자.

우리는 위 내용 중

Websocket Bolt URL, Username, Password만을 활용할 것이다.


이제 csv 파일을 업로드해 데이터를 확인해보자.

data-importer

위 링크를 통해 Neo4J Data Importer로 접속한다.

접속한 후 위에서 확인했던 Websocket Bolt URL, Username, Password를 통해 연결을 진행한다.

Connect를 진행한 후 좌측 상단에 Add files를 클릭해 원하는 csv 파일을 업로드 하도록 한다.

나는 아래와 같이 업로드 된 것을 확인하였다.

업로드를 확인한 후 직접 노드를 만들고 노드에 들어갈 내용들을 추가한 뒤 노드들의 관계를 이어주면 되는데 나는 아래와 같이 구성을 진행했다.

아직 neo4j의 확실한 노드 구성과 관계에 익숙하지 않아 간단히 연결하도록 하였다.

노드를 생성한 후에는 반드시

오른쪽 노드 내부에 어떤 데이터들이 존재하는지를 구성해야 하며 관계를 이어주어야 한다.

이때 노드나 Properties에 띄어쓰기가 있으면 오류가 발생했었다.
이에 주의하여 띄어쓰기가 있다면 "_"를 활용해 작성하도록 하자.

이후 아래와 같이 코드를 작성해 위에 구성된 neo4j와 연결이 되는지 확인하도록 하면 준비는 끝난다.

#GraphDatabase: Neo4j 데이터베이스에 연결하기 위한 클래스, 이 클래스를 통해 데이터베이스 드라이버를 생성할 수 있음
#basic_auth: Neo4j 데이터베이스에 인증 정보를 제공하기 위한 함수, 사용자 이름과 비밀번호를 사용하여 기본 인증을 수행
from neo4j import GraphDatabase, basic_auth


#GraphDatabase.driver(): Neo4j 데이터베이스와의 연결을 위한 드라이버 인스턴스를 생성
#"bolt://35.171.169.166:7687": Neo4j 데이터베이스의 연결 URL. bolt 프로토콜을 사용하여 연결하고, 35.171.169.166는 Neo4j 서버의 IP 주소, 7687은 Bolt 프로토콜의 기본 포트
#auth=basic_auth(...): 인증 정보를 설정. 사용자 이름 "neo4j"와 비밀번호 사용하여 연결
driver = GraphDatabase.driver(
  "bolt://35.171.169.166:7687",
  auth=basic_auth("neo4j", "비밀번호"))


#neo4j 쿼리문 작성
cypher_query = '''
MATCH (p:`Product name`) where p.`Product name (English)`='Povidine Throat Spray Sol.' 
RETURN p
'''

#세션 생성: Neo4j 데이터베이스에 연결하는 세션을 시작
with driver.session(database="neo4j") as session:
    #쿼리 실행: 읽기 전용 트랜잭션 내에서 Cypher 쿼리를 실행하고 결과를 가져옴
    results = session.read_transaction(
        lambda tx: tx.run(cypher_query, limit=10).data())
    
    #결과 출력: 쿼리 결과를 반복하면서 각 결과를 출력
    for record in results:
        print(record)

#드라이버 종료: 데이터베이스와의 연결을 종료
driver.close()

이후 연결과 관련된 내용은 학습을 더 진행한 후 작성하도록 하겠다.

profile
전공: 소프트웨어, 관심 분야: LLM, NLP, 지식 그래프

0개의 댓글