pgGraph: 一個為現有關聯式資料表增加高速圖形遍歷功能的 PostgreSQL 擴充功能

它解決了什麼問題

關聯式資料庫(如 PostgreSQL)非常擅長處理結構化資料,但在處理複雜的圖形風格查詢時卻很吃力——例如尋找兩個實體之間的最短路徑,或是在特定跳數內發現紀錄。傳統上,這些查詢需要複雜且自定義的遞迴 SQL,這可能導致速度緩慢且難以維護。

運作原理

pgGraph 並非將資料移至獨立的圖形資料庫,而是從您現有的 PostgreSQL 資料表建立一個專門的、讀取密集型的圖形索引。它使用壓縮稀疏列(Compressed Sparse Row, CSR)格式將關係儲存在連續的記憶體結構中,從而實現極速的遍歷。您可以在 graph schema 中使用標準 SQL 函數與此圖形進行互動,而 PostgreSQL 則維持作為您資料的權威事實來源。

適用對象

  • 需要執行複雜關係查詢,但不想遷移到專用圖形資料庫的 PostgreSQL 使用者。
  • 尋求加速圖形基礎工作負載(如 GraphRAG)的資料工程師。
  • 希望在保持所有資料於現有關聯式架構與安全限制內,同時進行高速遍歷(如最短路徑或多跳搜尋)的使用者。

重點特色

  • 零資料遷移: 您的資料保留在標準 PostgreSQL 資料表中;pgGraph 僅建立一個衍生索引。
  • 高效能: 使用專門的、記憶體效率高的執行層,以繞過遞迴 SQL join 的開銷。
  • SQL 原生: 不需要新的查詢語言;使用 SQL 函數即可執行圖形搜尋。
  • 安全性功能: 包含內建的斷路器,例如深度限制與記憶體保護機制,以防止無限制的遍歷導致資料庫崩潰。

Sources