본문 바로가기
Cloud SIEM 제작/Graph DB(Neo4j)

Neo4j Graph Data Science(GDS) 개요

by LIZ0904 2023. 1. 4.
반응형

Neo4j에서는 데이터 분석을 위해 그래프, 알고리즘 및 기계 학습 사용을 제공한다.

 

GDS 플러그인 및 호환성

GDS는 Neo4j 그래프 디비에 대한 라이브러리 및 플러그인 형태로 제공된다. 즉, 업데이트와 함께 확장 설치를 진행해줘야한다. GDS는 무료 커뮤니티와 유료 엔터프라이즈 라이센스로 제공되지만, 모든 분석 기능은 무료든 유료든 동일한다.

 

https://neo4j.com/docs/graph-data-science/current/installation/supported-neo4j-versions/

 

Supported Neo4j versions - Neo4j Graph Data Science

Below is the compatibility matrix for the GDS library vs Neo4j. In general, you can count on the latest version of GDS supporting the latest version of Neo4j and vice versa, and we recommend you always upgrade to that combination. We list software with maj

neo4j.com

위 링크에서 GDS 라이브러리와 Neo4j의 호환성을 확인할 수 있다. 

 

GDS 설치

1. Neo4j Desktop

Neo4j Desktop에서 DBMS를 실행하면 오른쪽에 탭이 생긴다. 여기에서 Plugins 탭에서 Graph Data Science Library를 클릭하면 install 하는 버튼이 뜨는데, 버튼을 눌러주면 한 3분 이내로 설치가 완료된다.

 

2. Installer(설치 프로그램)

dbms.security.procedures.unrestricted=gds.*

GDS 라이브러리를 다운로드 받은 후 plugins/ 데이터베이스 디렉토리에 설치한다. 또한 설정 파일에 위 코드를 추가해준다.

dbms.security.procedures.allowlist=gds.*

GDS 라이브러리에 대한 위 코드도 추가해줘야 한다.

 

3. 독립 실행 서버, 도커 등 다른 유형

https://neo4j.com/docs/graph-data-science/current/installation/

 

Installation - Neo4j Graph Data Science

This chapter provides instructions for installation and basic usage of the Neo4j Graph Data Science library.

neo4j.com

위 설치 설명서에서 확인할 수 있다. 거의 Neo4j Desktop과 비슷한 환경을 제공한다.

 

라이선스(Licence)

GDS에는 커뮤니티(무료)와 엔터프라이즈(유료) 라이센스가 모두 있다. 둘 다 모든 알고리즘과 기계 학습 기능을 제공하지만, enterprise 버전에는 더 다양한 추가 기능이 있다.

Community - 무료 라이센스
- 알고리즘과 기계 학습 기능
향상된 성능을 위한 엔터프라이즈 기능
(Enterprise features for increased performance)
- 유료 라이센스
- 알고리즘과 기계 학습 기능
- 컴퓨팅 시간을 단축하고 데이터 과학을 매우 큰 그래프에 적용할 수 있는 메모리가 적은 분석 그래프 형식에 대한 액세스를 위한 무제한 동시성
프로덕션의 보안 및 워크플로를 위한 엔터프라이즈 기능
(Enterprise features for security and workflow in production)
- 유료 라이센스
- 알고리즘과 기계 학습 기능
- 세분화된 보안, 머신 러닝 모델을 유지 및 게시하는 기능, 메모리 내 그래프 백업 및 복원, 읽기 복제본을 통한 원인 클러스터 호환성

 

작동 방식

GDS는 데이터를 고성능 그래프 분석에 최적화 된 in-Memory 형식으로 변환하고 로드하는 방식을 사용한다. 이 인메모리 그래프 형식에서 그래프 알고리즘과 기능 엔지니어링 및 기계 학습을 제공한다. 이를 통해 대규모 그래프에 데이터 과학을 효율적이고 확장 가능한 수준으로 사용할 수 있다.

 

작업의 흐름의 크게 3단계로 나눌 수 있다.

1. 그래프 읽기 및 로딩

- GDS는 한번에 여러 데이터베이스에서 데이터를 읽고 변환하고 메모리에 그래프로 로그할 수 있다.

- 이는 그래프 카탈로그라는 구성요소에 의해 관리된다.

 

2. 알고리즘 실행

- 여기에는 중심성, 커뮤니티 감지, 경로 찾기 등과 같은 기본적인 그래프 알고리즘이 있다.

- 뿐만 아니라 임베딩, 그래프 엔지니어링을 활용한 머신러닝 파이프 라인도 포함되어 있다.

 

3. 결과 저장

- 결과를 데이터 베이스에 다시 쓸 수 있다.

- CSV 형식으로 내보내기를 할 수 있다.

- 결과를 다른 애플리케이션이나 다운스트림 워크플로우로 스트리밍 할 수 있다.

 

GDS 구성

CPU 및 동시성

GDS는 그래프 프로젝션, 알고리즘 및 결과 저장을 위해 여러 CPU 코어를 사용한다. 때문에 계산을 병렬화함으로써 처리 시간을 크게 단축시킬 수 있다.

메모리

Neo4j 메모리 관리

GDS는 Neo4j 인스턴스 내에서 실행되므로 일반 Neo4j 메모리 구성을 따른다.

GDS에서 더 큰 그래프 프로젝션 생성을 처리하기 위해 메모리 할당을 늘리기 위해서는 구성을 늘려야 한다. -> 그래프 프로젝션은 힙에 저장되므로 dbms.memory.heap.initial_size 또는 dbms.memory.heap.max_size 증가시킨다.

반응형

댓글