Evokoa/pgGraph

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

해결하는 문제

PostgreSQL과 같은 관계형 데이터베이스는 구조화된 데이터에는 뛰어나지만, 두 엔티티 사이의 최단 경로를 찾거나 특정 홉(hop) 수 내의 레코드를 찾는 것과 같은 복잡한 그래프 스타일의 질문에는 어려움을 겪습니다. 전통적으로 이러한 쿼리는 복잡하고 커스텀된 재귀 SQL을 필요로 하며, 이는 속도가 느리고 유지 관리가 어려울 수 있습니다.

작동 방식

데이터를 별도의 그래프 데이터베이스로 이동하는 대신, pgGraph는 기존 PostgreSQL 테이블에서 파생된 읽기 중심의 특화된 그래프 인덱스를 구축합니다. Compressed Sparse Row (CSR) 형식을 사용하여 연속적인 메모리 구조에 관계를 저장하므로 매우 빠른 탐색이 가능합니다. PostgreSQL을 데이터의 신뢰할 수 있는 유일한 원본(source of truth)으로 유지하면서, graph 스키마 내의 표준 SQL 함수를 사용하여 이 그래프와 상호 작용할 수 있습니다.

대상 사용자

  • 전용 그래프 데이터베이스로 마이그레이션하지 않고 복잡한 관계 쿼리를 수행해야 하는 PostgreSQL 사용자.
  • GraphRAG와 같은 그래프 기반 워크로드를 가속화하려는 데이터 엔지니어.
  • 모든 데이터를 기존의 관계형 스키마 및 보안 제약 내에 유지하면서 고속 탐색(최단 경로 또는 멀티 홉 검색 등)을 수행하려는 사용자.

주요 특징

  • 데이터 마이그레이션 제로: 데이터는 표준 PostgreSQL 테이블에 그대로 유지됩니다. pgGraph는 파생된 인덱스만 생성합니다.
  • 고성능: 특화된 메모리 효율적 실행 레이어를 사용하여 재귀적 SQL 조인의 오버헤드를 우회합니다.
  • SQL 네이티브: 새로운 쿼리 언어가 필요하지 않습니다. SQL 함수를 사용하여 그래프 검색을 수행합니다.
  • 안전 기능: 깊이 제한 및 메모리 보호와 같은 내장된 서킷 브레이커를 포함하여 무제한 탐색으로 인한 데이터베이스 충돌을 방지합니다.