개발/GraphDatabase

1. Gremlin과 Cypher

희묭 2023. 5. 20. 10:58

GraphDatabase는 안타깝게도 SQL처럼 표준언어가 없고 현재 Gremlin, SPARQL, Cypher로 파편화 되어있는데요

다행히 저희회사에는 아마존 넵튠을 사용하기에 세가지 언어를 모두 사용할 수 있었습니다 (Cypher는 OpenCyper지만요)

각 언어의 특징을 아주 짧게 요약하면

우선 SPARQL은 학술적으로 많이 사용되고 있습니다, Graphdatabase 논문을 찾아보시면 SPARQL을 많이 사용하는걸 보시게 될겁니다.

현업에서는 Gremlin과 Cyper로 나뉘는데

상용 그래프데이터베이스의 대표인 Neptune 이 Gremlin을

오픈소스의 대표인 Neo4j 가 Cypher를 표준으로 채택했기 때문으로 보입니다.

 

개인적인 소감으로는

Cypher가 훨씬 직관적이고 쉽지만 복잡성이 증가할수록 사용하기 어려워집니다, 느낌은 SQL과 비슷합니다.

Gremlin은 초기 학습비용이 Cypher보다는 높지만 복잡도에 대처하는 방식이 Cypher보다는 유연합니다.

 

저는 주로 Gremlin을 위주로 예제를 보여드릴거구요

Cypher도 훌륭하고 쉬운언어지만 저희 회사에서 사용하는 Neptune 의 표준언어기도 하고 팅커팝이라는 아파치프로젝트로 인해 소스상에도 쿼리문을 그대로 사용할수있는 장점이 있습니다.

GdotV(https://gdotv.com/) 라는 툴을 사용하여 예제를 따라해보시면 시각적으로 도움이 되실거 같습니다.