Neo4j Vs JanusGraph Vs Tigergraph

做知識圖譜的一般需要用圖數據庫存儲及檢索,相對更加的直觀化。記得2年前做教育方向用到過Neo4j,速度的確是慢。目前比較流行的Neo4j、JanusGraph、TigerGraph等,JanusGraph是開源的,在騰訊和百度都有用。收集了一下幾種Graph數據庫的對比,從容量、性能、查詢能力、分析能力、開源生態等方面考慮:

1. 容量

目前是大數據時代,隨便一個公司都會有很多的數據產生,之前公司一個語音評測系統,每天都有3億條提交。這麼大的數據量,做分析和存儲都是需要考慮容量的。

  • Neo4j:支持數據高可能的HA集羣,但不是分佈式存儲;
  • TigerGraph:自稱是原生的並行圖;
  • JanusGraph:可以接HBase及ScyllaDb等NoSQL作爲後端存儲,在存儲層面上是分佈式的,容量比較大;百度基於JanusGraph開源了HugeGraph,增加了很多特性,提高了易用性及性能,增加了一些圖分析算法

2. 性能

如果需要圖查詢及分析計算執行的比較快,一般需要關注底層架構,原生圖存儲是基於點和邊,計算中不需要過多的邏輯及物理層轉換。

  • Neo4j:原生圖
  • TigerGraph:原生圖
  • JanusGraph:非原生圖

3. 查詢

圖數據庫要有點關係的檢索能力,比如兩點之間的所有路徑、最短路徑、多維度查詢等等都是必不可少的。差異性主要是性能。普通圖數據庫查詢3度及以上通常性能很低,而我們實際上經常要查6度關係,TigerGraph自己針對Twitter的大圖數據庫的測試報告性能很好,只有TigerGraph完成了6度關係查詢

4. 分析計算能力

圖數據庫如果僅具備存儲和查詢能力,則還需要依賴於外部的GraphX等計算引擎完成一些圖算法分析,在數據傳輸和圖表達上都存在這轉換浪費。TigerGraph可以通過GSQL實現類存儲過程的算法封裝,而且已經實現了很多圖算法,但是語法結構要比Neo4j複雜的多。

5. 開源生態

開源生態決定很多公司會不會採用或者進行改造。

  • JanusGraph/HugeGraph:基於Apache協議開源,開放性好;
  • Neo4j:社區開源,非商業免費,商業版支持HA集羣,並不是完全分佈式,使用最廣泛
  • TigerGraph:不開源,開發者版支持單機單用戶單圖非商業免費,不支持DynamicSchemaChange等
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章