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

[Neo4j] Graph Data Science-그래프 카탈로그(Graph Catalog)

by LIZ0904 2023. 1. 4.
반응형

그래프 카탈로그(Graph Catalog)란?

그래프 카탈로그는 GDS에서 *그래프 투영을 관리할 수 있는 개념이다.

*그래프 투영: 데이터를 읽고 쓰는 것

그래프 카탈로그에는

1. 그래프 생성
2. 그래프에 대한 세부 정보 확인
3. 그래프 프로젝션 삭제
4. 그래프 투영 내보내기
5. 그래프 프로젝션 속성을 데이터베이스에 다시쓰기

가 포함된다.

 

그래프 카탈로그 작동 방식

CALL gds.graph.<command>

위 형식을 사용하 그래프 카탈로그 작업을 호출할 수 있다.

 

CALL gds.graph.list()

- 현재 존재하는 그래프 투영을 목록화해서 나열

 

CALL gds.graph.project('my-graph-projection', ['Actor','Movie'], 'ACTED_IN')

위 예시의 경우, Actor, Movie 노드와 ACTED_IN 관계를 만들 수 있다.

 

CALL gds.graph.project('native-proj','*', '*');

와일드카드 문자 [*]를 사용해 위처럼 데이터베이스의 모든 노드 및 관계를 포함할 수 있다.

 

위 명령을 실행하면 위 사진과 같은 결과가 나온다.

 

CALL gds.graph.list() YIELD graphName, nodeCount, relationshipCount, schema

gds.graph.list()를 사용해 다시 나열하면, 방금 만든 그래프에 대한 정보가 표시된다.

 

위 코드의 결과는 위 사진과 같다.

 

스트리밍 및 쓰기 노드 속성

알고리즘 계산 결과를 가져와서 다른 프로세스로 스트리밍하거나 데이터 베이스에 다시 기록해야 할 때가 있다. 그래프 카탈로그에는 이러한 목적을 위해 노드 속성과 관계 속성을 모두 스트리밍하고 쓰는 메소드가 있다.

 

CALL gds.graph.streamNodeProperty('my-graph-projection','numberOfMoviesActedIn')
YIELD nodeId, propertyValue
RETURN gds.util.asNode(nodeId).name AS actorName, propertyValue AS numberOfMoviesActedIn
ORDER BY numberOfMoviesActedIn DESCENDING, actorName LIMIT 10

- streamNodeProperty: 노드 속성고 관계 속성을 모두 스트리밍하고 쓰는 매세드

ex) 위 쿼리의 경우 그래프 카탈로그 작업을 사용해 영화 수를 기준으로 가장 많은 10명의 가장 많은 10명(limit 10)의 배우를 스트리밍 할 수 있다.

 

CALL gds.graph.writeNodeProperties('my-graph-projection',['numberOfMoviesActedIn'], ['Actor'])

- writeNodeProperties: 속성을 데이터베이스에 다시 쓸 때 사용하는 메서드

 

그래프 내보내기

데이터 과학 워크플로에서 그래프 알고리즘 및 기타 분석을 수행한 후 그래프 프로젝션에서 데이터를 대량으로 내보내야 하는 상황이 발생할 수 있다. 크게 두가지 방법이 있다.

1. gds.graph.export: 그래프를 새 데이터베이스로 내보내기 - 프로젝션을 별도의 Neo4j 데이터베이스로 효과적으로 복사
2. gds.beta.graph.export.csv: 그래프를 csv 파일로 내보내기

 

그래프 삭제

투영된 그래프는 메모리 공간을 차지하므로 그래프 투영 작업이 끝나면 제거하는 것이 좋다.

CALL gds.graph.drop('my-graph-projection')

- drop: 그래프 삭제 메서드

 

https://neo4j.com/docs/graph-data-science/current/management-ops/graph-catalog-ops/

 

Graph Catalog - Neo4j Graph Data Science

This section details the graph catalog operations available to manage named graph projections within the Neo4j Graph Data Science library.

neo4j.com

그 외 그래프 카탈로그 작업은 위 사이트에서 확인할 수 있다.

 

반응형

댓글