Evokoa/pgGraph

Open-source graph database superpowers for your existing Postgres data.

해결하는 문제

pgGraph는 표준 리レーショ널 PostgreSQL 테이블에서 그래프 스타일 쿼리(예: 최단 경로 탐색 또는 다중 홉 관계 탐색)를 실행할 때 발생하는 성능 저하 문제를 해결합니다. 데이터가 증가함에 따라 복잡한 재귀 SQL이나 비용이 큰 조인에 의존하는 대신, 그래프 탐색을 위한 고속 실행 계층을 제공합니다.

작동 방식

pgGraph는 기존 테이블을 신뢰할 수 있는 데이터 소스로 간주하면서 파생된 고도로 최적화된 그래프 인덱스를 구축하는 PostgreSQL 확장 기능입니다.

  • CSR 인접성: 관계형 데이터를 압축 희소 행(CSR) 엣지 저장소로 컴파일하여 O(1) 인접성 검색과 직접 메모리 스캔을 가능하게 하며, SQL 기반 관계 탐색이 아닌 메모리 기반 접근을 제공합니다.
  • 파생 상태: 그래프는 테이블에서 파생된 읽기 전용 아티팩트입니다. PostgreSQL은 여전히 저장, WAL, 내구성 등을 관리하지만, pgGraph는 탐색 로직을 담당합니다.
  • 안전 메커니즘: 무제한 확장으로 인한 데이터베이스 충돌을 방지하기 위해 깊이 제한, 프론티어 제한, 메모리 보호 기능 등 회로 차단기를 구현합니다.
  • SQL 통합: 사용자는 graph 스키마 내의 SQL 함수(예: graph.search()graph.shortest_path())를 통해 그래프와 상호작용하며, Cypher와 같은 새로운 쿼리 언어를 배울 필요가 없습니다.

대상 사용자

기존에 PostgreSQL을 사용하고 있으며, 전용 그래프 데이터베이스로 데이터를 마이그레이션하지 않고도 고성능 그래프 검색이나 관계 분석이 필요한 개발자 및 데이터베이스 관리자에게 적합합니다.

주요 특징

  • 데이터 마이그레이션 없음: 새로운 스키마나 저장 시스템을 필요로 하지 않고, 기존 PostgreSQL 테이블에서 직접 작동합니다.
  • 고성능: 재귀 SQL의 오버헤드를 회피하기 위해 CSR 메모리 구조를 사용합니다.
  • 표준 SQL 인터페이스: 전용 그래프 쿼리 언어가 아닌 표준 SQL 함수를 통해 접근 가능합니다.
  • 자원 보호: 방문 노드 추적 및 OOM 보호와 같은 내장된 보호 기능을 통해 데이터베이스 안정성을 보장합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트