Neo4j에서는 데이터 분석을 위해 그래프, 알고리즘 및 기계 학습 사용을 제공한다.
GDS 플러그인 및 호환성
GDS는 Neo4j 그래프 디비에 대한 라이브러리 및 플러그인 형태로 제공된다. 즉, 업데이트와 함께 확장 설치를 진행해줘야한다. GDS는 무료 커뮤니티와 유료 엔터프라이즈 라이센스로 제공되지만, 모든 분석 기능은 무료든 유료든 동일한다.
https://neo4j.com/docs/graph-data-science/current/installation/supported-neo4j-versions/
위 링크에서 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/
위 설치 설명서에서 확인할 수 있다. 거의 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 코어를 사용한다. 때문에 계산을 병렬화함으로써 처리 시간을 크게 단축시킬 수 있다.
메모리
GDS는 Neo4j 인스턴스 내에서 실행되므로 일반 Neo4j 메모리 구성을 따른다.
GDS에서 더 큰 그래프 프로젝션 생성을 처리하기 위해 메모리 할당을 늘리기 위해서는 구성을 늘려야 한다. -> 그래프 프로젝션은 힙에 저장되므로 dbms.memory.heap.initial_size 또는 dbms.memory.heap.max_size 증가시킨다.
'Cloud SIEM 제작 > Graph DB(Neo4j)' 카테고리의 다른 글
[Neo4j] Graph Data Science-네이티브 프로젝션(Native Projection) (0) | 2023.01.05 |
---|---|
[Neo4j] Graph Data Science-그래프 카탈로그(Graph Catalog) (0) | 2023.01.04 |
Neo4j 사이퍼 쿼리 (0) | 2023.01.03 |
Neo4j 기본 명령어 모음 (2) | 2022.10.25 |
Neo4j 기본 사용법 (0) | 2022.09.16 |
댓글