brunch

Neo4J: 그래프-디비(1)

Graph Database - 'conectness'

by 유윤식

익히 알고있을 Cassandra 역시 Graph-DB 기능을 할 수 있다.

Spark, Elastic 등에서 이미 Graph 라는 기능을 사용 할 수 있다.


그 중!

Neo4j 라는 데이터베이스를 소개하려고 한다.

테이블 저장 방식에서 그래프로 데이터를 보관한다는 개념이다.


간단하게 설치 후,


>> yum install -y neo4j



윈도우 데스크탑 버젼도 있는데,


Ref: https://neo4j.com/download-center/



확인,

neo4j_download.png

저거를 받아서 노트북에 설치!


처음 계정은 neo4j / neo4j


리눅스(CentOS) 설치는 아래 URL을 확인 하시고,


Ref: https://neo4j.com/docs/operations-manual/current/installation/linux/rpm/



데스크탑 버젼을 설치하고 실행하면,

neo4j_browser.png
neo4j_browser2.png


접속 IP를 확인 할 수 있다.

실제 12번 서버에서 neo4j 가 실행 중에 있음을 확인한다.

neo4j_centos.png


'Learn about Neo4j' 를 통해서 간단한 튜터리얼을 진행해 볼 수 있다.


가장 유명한 Movie 관련 데이터를 가지고 튜터리얼을 시작하면 좋다.


12번으로 연결한 neo4j 데스크탑을 이용해서 진행한다.


neo4j_play_movie.png


그냥 튜터리얼이니 따라하면 된다.


결과화면은,

neo4j_movie_recommend.png

대략 이러하다.


데이터베이스를 쓰면서

대용량, 빅데이터 이야기를 많이 하고 또한 듣기도 많이 한다.


그럴때 필요한게 Cluster.


Ref: https://neo4j.com/docs/operations-manual/current/clustering/introduction/



Enterprise 버젼에서만 가능(?)한 것이지 모르겠다.


Python; 으로 neo4j 연동을 할 수 있다.


Ref: https://neo4j.com/developer/python/


자바도 있고, 루비도 있고 다양하게 지원한다.

입맛에 맛는 언어를 통해서 neo4j 를 좀 더 재미있게 실험해 볼 수 있다.


물론 나는 Python을 이용한다.



>> pip install neo4j



좋은 예제를 제공하는 Github가 있다.


Ref: https://github.com/neo4j-examples/movies-python-bolt



이걸 리눅스에서 다운받아서,


>> git clone https://github.com/neo4j-examples/movies-python-bolt.git

>> cd movies-python-bolt/

>> pip install -r requirements.txt

>> export NEO4J_PASSWORD="<YOUR_NEO4J_PASSWORD/DEFAULT:neo4j>"



일단 여기까지 하고,


>> vi movies.py

neo4j_movie_code.png

host='0.0.0.0' 을 추가한다.

물론 neo4j 리스너 아이피 설정을 0.0.0.0으로 바꾸었다면

위에 커넥션 부분의 코드도 수정해야 한다.


모든 설정을 마무리하고

이제 Python 스크립트를 실행하면,



>> python movies.py

neo4j_movie_run.png


직접 접속을 해보니,


>> http://192.168.2.12:8000

neo4j_movie_web.png


간단한 소개가 어렵다.

더 많은 튜터리얼과 읽어야 할 문서가 수두룩하다.


일단,


끝.

keyword
작가의 이전글Docker for Cloud: Suricata