【数据库】7种图数据库简单比较
文章目錄
- 1、 圖數據庫排名
- 2、 圖數據庫比較表格
- 3 、各種圖數據庫屬性
- 3.1 Neo4j(主流)
- 3.2 OrientDB(不推薦)
- 3.3 ArangoDB(不推薦)
- 3.4 JanusGraph(推薦)
- 3.5 HugeGraph(推薦)
- 3.6 Dgraph(推薦)
- 3.7 TigerGraph(不推薦)
- 4 、選型結論
1、 圖數據庫排名
圖數據庫排名:https://db-engines.com/en/ranking/graph+dbms
2、 圖數據庫比較表格
3 、各種圖數據庫屬性
3.1 Neo4j(主流)
歷史悠久且長期處于圖數據庫領域的主力地位,其功能強大,性能也不錯,單節點的服務器可承載上億級的節點和關系。社區版最多支持 320 億個節點、320 億個關系和 640 億個屬性。
優點:Neo4j有自己的后端存儲,不必如同JanusGraph等一樣還要依賴另外的數據庫存儲。 Neo4j在每個節點中存儲了每個邊的指針,因而遍歷時效率相當高。
缺點:企業版付費。開源的社區版本只支持單機,不支持分布式。社區版只能部署成單實例,企業版可以部署成高可用集群,從而可以解決高并發量的問題;不能做集群,單個實例故障時影響系統正常運行。社區版只支持冷備份,即需要停止服務后才能進行備份。
3.2 OrientDB(不推薦)
OrientDB是第二代分布式圖數據庫,以混合數據模型為特點,它包括可以在最復雜的場景中使用復制和分片,并以Apache2許可證提供開放源代碼。ORIENTDB工作速度快,能夠在最常見的硬件上每秒存儲220000條記錄,并且支持無模式、完整和混合模式,可以使用SQL作為查詢語言之一。
優點:ORIENTDB使用身份驗證、密碼和靜態數據加密等方式為所有機密數據提供安全保護。OrientDB為確保更好的性能,最近引入了節點的快速重新同步,即使處理數十億條記錄,遍歷速度也不會受到影響。OrientDB 是分布式多模型數據庫,支持圖數據模型,支持 sharding 機制,大規模查詢情況下性能比較好;
缺點:開源版功能部分欠缺。起步較早,最初的時候都是一個單機的圖數據庫,然后隨著用戶數據量的不斷增加,后期增加了分布式模式,支持集群和副本,但是由于后加的功能,其分布式支持的不是很好。
3.3 ArangoDB(不推薦)
Arangodb以一種非常創造性和靈活的方式安排數據。數據可以存儲為鍵或值對、圖或文檔,所有這些都可以通過一種查詢語言訪問。為了更安全的選擇,查詢中可以使用聲明性模型。用戶可以在一個查詢中組合不同的模型及其特性的原因是,ArangoDB對所有數據模型都使用相同的核心和相同的查詢語言。
優點:Arangodb獨特的特性是它能夠在一個查詢中組合不同的數據模型。這使得其展示方式令人印象深刻且美觀。它比其他數據庫具有更靈活的擴展性、增強的容錯性、大容量的存儲能力和更低的成本。arangodb最突出的特性是foxx,這是一個用于編寫數據庫中以數據為中心的javascript框架。
缺點:它們起步比較早,最初的時候都是一個單機的圖數據庫,然后隨著用戶數據量的不斷增加,后期增加了分布式模式,支持集群和副本,但是經過調研發現,可能是由于后加的功能,他們的分布式支持的不是很好。
3.4 JanusGraph(推薦)
JanusGraph是可擴展的圖數據庫,底層依賴于大數據組件,對分布式支持的非常好,也都是完全的開源免費,存儲數據模型也都是專為圖數據而設計。JanusGraph基于Titan發展而來,包含其所有功能,采用Tikerpop的Gremlin圖查詢語言,有單獨的后端存儲,支持Cassandra/HBase/BerkeleyDB等做存儲,支持Solr/ES/Lucence等做圖索引 支持Spark GraphX/Giraph等圖分析計算引擎及Hadoop分布式計算框架 原生支持集成了Tinkerpop系列組件:Gremlin查詢語言,Gremlin-Server及Gremlin applications。 采用很友好的Apache2.0協議,支持對接可視化組件如Cytoscape,Gephi plugin for Apache TinkerPop,Graphexp,KeyLines by Cambridge Intelligence,Linkurious
優點:JanusGraph的存儲系統依賴于像Cassandra、HBase(HBase又依賴于Zookeeper和HDFS)、BerkelyDB等等這樣的存儲系統,索引系統依賴于Elasticsearch、Solr、Lucene等等;也基于這些原因,它和大數據生態結合的非常好,可以很好地和Spark結合做一些大型的圖計算。所以可以很好的和spark的大數據平臺進行結合,并且能夠支持實時圖遍歷和分析查詢
缺點:其存儲需要依賴于其他存儲系統,JanusGraph使用HBase作為底層存儲系統,而HBase又依賴于Zookeeper和HDFS,另外JanusGraph的索引又依賴于ES,所以想要搭建一套完整的JanusGraph,需要同時搭建維護好幾套系統,維護成本非常大。另一問題就是穩定性,根據經驗來看,系統越復雜,依賴系統越多,整體可控性就越差,穩定性風險就越大。并且三方的一些工具也存在一些問題,所以要用肯定要基于底層(讀寫)進行性能優化。
3.5 HugeGraph(推薦)
百度基于JanusGraph開源了HugeGraph,增加了很多特性,提高了易用性及性能,增加了一些圖分析算法。實現了Apache ThinkerPop 3框架,支持Gremlin圖查詢語言。HugeGraph支持多用戶并行操作,輸入Gremlin查詢語句,并及時得到圖查詢結果。也可以再用戶程序中調用hugeGraph API進行圖分析或查詢。
優點:HugeGraph可以與Spark GraphX進行鏈接,借助Spark GraphX圖分析算法(如PageRank、Connected Components、Triangle Count等)對HugeGraph的數據進行分析挖掘。HugeGraph還針對圖數據庫的高頻應用(例如:ShortestPath、k-out、k-neighbor等)做了特定性能優化,并且為用戶提供更為高效的使用體驗
缺點:基于JanusGraph開源,存在和JanusGraph同樣的問題,維護成本高。
3.6 Dgraph(推薦)
dgraph 是基于 golang 開發的開源的分布式圖數據庫。誕生時間不長, 發展卻很迅速,從設計之初就考慮了分布式和擴展性,所以對分布式支持的非常好。
優點:Dgraph 不依賴與任何第三方系統,只有一個 Dgraph 可執行文件,只需在啟動時通過參數指定是 Zero(管理節點)還是 Alpha(數據節點)即可,Dgraph 會自動組成集群,運維部署非常簡單。Dgraph維護成本低很多。Dgraph 和 JanusGraph 性能差不多,但復雜查詢下,Dgraph 性能遠高于 JanusGraph。同時,Dgraph 的寫入性能也整體高于 janusGraph。
缺點:比如還不支持多重邊、一個集群只支持一個圖、與大數據生態兼容不足等,這些都需要靠后期不斷完善。
3.7 TigerGraph(不推薦)
TigerGraph是一個目前業界先進的企業級圖數據庫。系統完全閉源。部分查詢算法開源。分為開發版和企業版。開發版免費,但功能受限,比如單點只能構建一個圖。企業面收費,支持大規模集群,頂點表數量不受限制。
優點:TigerGraph可以通過GSQL實現類存儲過程的算法封裝,而且已經實現了很多圖算法,但是語法結構要比Neo4j復雜的多。
缺點:付費圖數據庫。Neo4j按照cpu收費,TigerGraph按照數據容量(G)來收費,費用較貴。
4 、選型結論
推薦一:Neo4j。使用起來相當的方便,入門門檻很低,基本上拿來就能用,并且有很好的社區支持,三方庫、第三方工具的支持,社區版本也可以支撐到不錯的數據量(億級沒問題)。但是如果想挖掘海量數據,需要考慮的是海量數據的存儲及計算,分布式存儲是首選。開源版Neo4j并不支持分布式。
推薦二:Dgraph。Dgraph 除了運維成本低之外,整體讀寫性能也優于JanusGraph。缺點是文檔社區支持較差。
推薦三:JanusGraph或HugeGraph。JanusGraph社區支持更全,復雜計算性能優于HugeGraph。
總結
以上是生活随笔為你收集整理的【数据库】7种图数据库简单比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【亲身体验】华强北的AirPods Pr
- 下一篇: 适合管理者看的书籍推荐,管理学入门必读