本文系騰訊雲安全團隊李航宇、鄧昶博撰寫
圖資料庫在挖掘黑灰團伙以及建立安全知識圖譜等安全領域有著天然的優勢。為了能更好的服務業務,選擇一款高效並且貼合業務發展的圖資料庫就變得尤為關鍵。本文挑選了幾款業界較為流行的開源圖資料庫與 Nebula Graph 進行了多角度的對比。
圖資料庫介紹
Neo4j
Neo4j 是目前業界廣泛使用的圖資料庫,包含社群版本和商用版本,本文中使用社群版本。
HugeGraph
HugeGraph 是百度基於 JanusGraph 改進而來的分散式圖資料庫,主要應用場景是解決百度安全事業部所面對的反欺詐、威脅情報、黑產打擊等業務的圖資料儲存和圖建模分析需求。具有良好的讀寫效能。
Nebula Graph
Nebula Graph 是一款開源的分散式圖資料庫,採用 shared-nothing 分散式架構,擅長處理千億節點萬億條邊的超大規模資料集,從而更好地服務企業級應用。
測試硬體環境
效能對比
我們使用不同量級的圖從入庫時間,一度好友查詢,二度好友查詢,共同好友查詢幾個方面進行了對比,結果如下:
可以看到在匯入效能上,資料量小的時候 Nebula Graph 的匯入效率稍慢於 Neo4j,但在大資料量的時候Nebula Graph 的匯入明顯優於其他兩款圖資料庫;在 3 種查詢場景下, Nebula Graph 的效率都明顯高於 Neo4j,與 HugeGraph 相比也有一定的優勢。
查詢語言對比
從查詢語句的角度出發,Gremlin 比較複雜,nGQL 和 Cypher 比較簡練,從可讀性角度出發,nGQL 比較類 SQL 化,比較符合大家的使用習慣。
視覺化對比
在視覺化方面,所有的平臺都還只處於可用狀態,Nebula Graph 的選擇性擴充套件在團伙挖掘中是一個加分項,但是在二度結果展示流暢度,展示結果自定義展示方面還有優化空間。
在比較了多款業內主要使用的開源資料庫後,我們從效能,學習成本和與業務的貼合程度多個角度考慮,最終選擇了效能出眾,上手簡單,能大幅提高業務效率的 Nebula Graph 圖資料庫。
本文首發於 Nebula Graph 論壇,閱讀本文的你有任何疑問,歡迎前往論壇和作者進行討論,原帖傳送門:https://discuss.nebula-graph.com.cn/t/topic/1013