本文系騰訊雲安全團隊李航宇、鄧昶博撰寫
圖數據庫在挖掘黑灰團伙以及建立安全知識圖譜等安全領域有着天然的優勢。為了能更好的服務業務,選擇一款高效並且貼合業務發展的圖數據庫就變得尤為關鍵。本文挑選了幾款業界較為流行的開源圖數據庫與 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