圖形數據庫作為新興NoSQL數據庫的代表,可分為四種類型。圖形數據庫應用廣泛,無論是互聯網行業還是傳統金融、房地產、醫療等行業,都可以通過圖形數據庫的應用進一步提高企業效率。接下來小編帶大家看看圖數據庫有哪些類別,希望對你有所幫助。
圖數據庫有哪些類別?
通常我們可以根據圖形數據庫的底層存儲模式和處理模式對產品進行分類,所以在了解圖形數據庫的分類之前,我們首先要解釋這兩個維度的含義。
本地圖存儲:數據存儲模式是專門為存儲和處理圖而設計和優化的,可以支持各種圖形算法的快速遍歷。
非原生(Non-Native)圖存儲:采用關系數據庫、面向對象數據庫或其他通用數據存儲策略來存儲數據,而沒有特別優化存儲方式。
原生圖處理:采用免索引鄰接機制(index-freeadjacency),通過指針保存節點之間的指向關系,每個節點都會維護相鄰節點的引用,表現為相鄰節點的微索引,而不是全局索引。所以圖紙遍歷只與搜索圖的數量有關,與整體規模無關,是高性能圖紙遍歷、查詢、寫入的關鍵。
非原生圖處理:節點之間的關系不采用免索引鄰接機制保存。
基于底層存儲模式和處理模式,我們可以將圖形數據庫產品分為四類。
根據圖紙的存儲和管理特點,這類圖紙數據庫的數據結構經過專門設計和優化;通常采用免索引鄰接機制,邏輯上的相關節點在數據庫中有物理指針指向對方,從而顯著提高數據讀寫和索引性能。能夠充分體現圖數據庫實時處理關系的優勢,可謂真圖數據庫。該圖數據庫也是主流圖數據庫制造商采用的技術,其代表產品包括Neo4j、OrientDB、TigerGraph等。
這種圖形數據庫通常不采用屬性圖形數據模型,而是采用RDF三元組或超圖形格式存儲圖形數據,主要用于學術研究,面向語義分析、機器學習等專業領域。代表性產品有AllegroGraph等。
AllegroGraph采用文檔與圖形技術相結合的混合數據模型,主要用于處理以RDF為中心的語義網絡應用,在閱讀、寫作和查詢RDF三元組數據時具有較高的性能。
這類圖形數據庫采用HBase、Bigtable、Cassandra、關系型數據庫等方式存儲圖形數據,通過將數據轉換成內存中的圖形結構來實現圖形遍歷等算法,一般情況下,其多次查詢的性能比存儲和處理的原始數據庫差,大多數開源圖形數據庫都屬于這類數據庫。由于Hadoop技術的普及,使用Hbase等分布式存儲的圖形數據庫的學習成本相對較低,這是其在開源產品中更為常見的原因之一。同時,由于采用分布式存儲方式,其存儲容量相對容易實現水平擴展,但由于其圖形計算引擎本身沒有實現分布式,計算性能仍然難以通過資源水平擴展來提高。代表產品有JanusGraph。
來自Titan圖數據庫的JanusGraph,是一開源分布式圖數據庫,由Java開發,支持ACID和最終一致性,可用于OLTP。JanusGraph使用HBase、Cassandra或OracleBDB作為數據存儲,支持與ApacheTinkerPop的原生集成,使用Gremlin圖查詢語言作為其標準語法。它的模塊化架構使其能夠廣泛地與各種存儲、索引和客戶端技術進行交互操作,如與Spark、Giraph、Hadoop等大數據平臺ETL集成,通過ElasticSearch、Solr、Lucene進行全文檢索,通過Cytoscape、Graphexp和TinkerPop的Gephi插件實現圖形數據的可視化。
這種圖數據庫通常更類似于在應用層面實現圖算法的應用系統,比如FlockDB,是Twitter開發的一種客戶關系管理系統,對于它是否屬于真正的圖數據庫還有爭議。它使用MySQL存儲數據,只支持一次關系查詢,不重復圖形結構。當前版本更新處于停滯狀態,應用范圍僅限于Twitter。
目前,各種圖形數據庫產品百花齊放,由于數據存儲和處理的方式不同,不同類型的圖形數據庫產品有不同的特點。因此,在實際工作和研究中,我們應該根據自己的實際情況選擇最合適的圖形數據庫。以上就是圖數據庫有哪些類別的全部內容,希望對你有所幫助。
[免責聲明]
文章標題: 圖數據庫有哪些類別?
文章內容為網站編輯整理發布,僅供學習與參考,不代表本網站贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請及時溝通。發送郵件至36dianping@36kr.com,我們會在3個工作日內處理。