AgensGraph란#
AgensGraph는 멀티모델 데이터베이스입니다. 서버 하나, 데이터베이스 하나, 연결 하나입니다. 데이터는 그곳에 속성 그래프와 관계형 테이블로 동시에 존재하며, Cypher, GQL, SQL로 쿼리합니다. 이 중 둘을 한 문장에서 함께 쓸 수 있습니다.
AgensGraph는 PostgreSQL 위에 만들어졌습니다. 2.18 릴리스는 PostgreSQL 18에 그래프 모델을 더한
것이므로, PostgreSQL이 주는 모든 것이 그대로 따라옵니다. 트랜잭션, 롤과 행 수준 보안,
pg_dump와 pg_basebackup, 스트리밍 복제, 플래너와 EXPLAIN, 확장 생태계, 그리고 모든
PostgreSQL 드라이버가 이미 말하는 통신 프로토콜입니다.
무엇이 다른가#
그래프는 PostgreSQL 객체 옆에 있는 것이 아니라, PostgreSQL 객체로 저장됩니다. 그래프는 스키마이고, 레이블은 테이블이며, 정점은 행입니다. 따로 보조를 맞춰 줄 그래프 저장소가 없고, 건너야 하는 다리도 없습니다. 한 트랜잭션 안의 Cypher 쓰기와 SQL 쓰기는 함께 커밋됩니다. 둘 다 같은 데이터베이스에 있는 테이블에 쓰는 것이기 때문입니다. 그래프가 어떻게 저장되는가가 이 매뉴얼의 나머지를 이해하게 해 주는 페이지입니다.
순회는 직접 작성하는 재귀 조인이 아니라, 일급 쿼리입니다. “이 영화와 배우를 공유하는 영화는 무엇인가”, “이 두 사람은 얼마나 떨어져 있는가”, “세 홉 안에 도달할 수 있는 것은 무엇인가”는 모두 패턴입니다:
MATCH (:person {name: 'Keanu Reeves'})-[:acted_in]->(:movie)<-[:acted_in]-(co:person)
RETURN DISTINCT co.name AS co_actor ORDER BY co_actor;
co_actor
----------------------
"Carrie-Anne Moss"
"Laurence Fishburne"
확장은 그래프 데이터에도 적용됩니다. 속성은 보통 테이블에 놓인 jsonb입니다. 그래서
pgvector는 정점에 저장된 임베딩을 인덱싱하고, PostgreSQL의 전문 검색은 텍스트 속성을
인덱싱합니다. 그러면 하나의 쿼리가 의미적으로 유사한 문서를 찾고 거기서 그래프를 따라 바깥으로 뻗어
나갈 수 있습니다. 벡터 검색을 참고하십시오.
ISO 표준인 GQL이 같은 언어의 일부입니다. 2.18은 ISO/IEC 39075의 상당 부분을 추가하며, 별도
모드도 별도 파서도 없습니다. LET, NEXT, FILTER, FINISH, INSERT, FOR, CALL { }과
서브쿼리 값 표현식은 Cypher가 허용되는 곳이면 어디서나 허용됩니다. GQL 적합성을
참고하십시오.
누구를 위한 것인가#
관계형 데이터를 갖고 있고, 그 데이터에 대해 그래프 모양의 질문이 있으며, 그 질문을 하려고 두 번째 데이터베이스를 운영하고 싶지는 않은 팀입니다. 흔한 형태는 추천과 유사도, 사기와 위험 사슬, 권한과 소유 계층, 네트워크와 의존성 토폴로지, 그리고 검색 증강 생성(RAG) 뒤의 지식 그래프입니다.
세 경우에 잘 맞습니다. 그래프와 테이블이 같은 기록 시스템에 속할 때. 이미 PostgreSQL을 운영하고 있어 그 기술과 도구를 계속 쓰고 싶을 때. 그리고 쿼리가 순회와 집계, 조인, 윈도 함수를 섞을 때입니다.
한 그래프를 여러 장비에 샤딩하는 분산 그래프 저장소가 필요하거나, PageRank나 커뮤니티 탐지처럼 그래프 전체를 다루는 알고리즘을 대규모로 돌리는 그래프 분석 엔진이 필요하다면 맞는 도구가 아닙니다. AgensGraph는 PostgreSQL이 확장되는 방식으로 확장됩니다 — 하나의 주 서버, 읽기 복제본, 그리고 수직 확장입니다.
이번 릴리스에 담긴 것#
기반이 되는 PostgreSQL 18.
GQL 적합성을 향한 큰 진전.
타입 컬럼 속성 승격. 자주 쓰이는
jsonb속성을 쿼리 작성 방식을 바꾸지 않고 인덱싱 가능한 실제 컬럼으로 바꿉니다. 속성을 컬럼으로 승격하기를 참고하십시오.그래프 순회에 대한 플래너 및 추정 작업.
업그레이드 전에 애플리케이션이 살펴봐야 하는 변경이 몇 가지 있습니다. 새로 추가된 예약어와 WHERE에
올 수 있는 것에 대한 더 엄격한 규칙이 그렇습니다. 릴리스 노트가 그것들을
나열하고, 2.18로 업그레이드하기에 절차가 있습니다.
다음#
AgensGraph 설치를 하고, 이 매뉴얼의 모든 페이지가 사용하는 예제 데이터셋을 적재한 뒤, 첫 쿼리를 실행하십시오.