圖數(shù)據(jù)庫應(yīng)用 想問一下圖數(shù)據(jù)庫neo4j和spark下面的graphx有什么區(qū)別?
想問一下圖數(shù)據(jù)庫neo4j和spark下面的graphx有什么區(qū)別?Neo4j是一個(gè)數(shù)據(jù)庫(可以理解為類似于HBase的東西,但是Neo4j幾乎是一個(gè)獨(dú)立的數(shù)據(jù)庫。與HBase不同,HBase的數(shù)據(jù)存
想問一下圖數(shù)據(jù)庫neo4j和spark下面的graphx有什么區(qū)別?
Neo4j是一個(gè)數(shù)據(jù)庫(可以理解為類似于HBase的東西,但是Neo4j幾乎是一個(gè)獨(dú)立的數(shù)據(jù)庫。與HBase不同,HBase的數(shù)據(jù)存儲(chǔ)在HDFS上,由HDFS進(jìn)行維護(hù)。HDFS將數(shù)據(jù)存儲(chǔ)在exFAT和其他獨(dú)立文件系統(tǒng)上。
Neo4j將數(shù)據(jù)直接格式化到獨(dú)立的文件系統(tǒng)。每個(gè)服務(wù)器都存儲(chǔ)完整的圖形數(shù)據(jù)。Graphx是一個(gè)計(jì)算引擎(類似于MapReduce)。它的數(shù)據(jù)是使用SQL從shark讀取的,或者RDD操作符從文件讀取,然后直接計(jì)算。另外,數(shù)據(jù)庫和計(jì)算引擎都可以執(zhí)行計(jì)算任務(wù),但數(shù)據(jù)庫的接口相對較弱,只支持簡單的查詢,計(jì)算引擎提供了強(qiáng)大的計(jì)算接口,便于編程。PageRank和其他的圖形算法很容易實(shí)現(xiàn)。Graphx應(yīng)該更便于數(shù)據(jù)挖掘。由于有幾個(gè)通用編程端口,neo4j需要編寫自己的代碼。編程很麻煩,但在性能上可能有優(yōu)勢
圖形數(shù)據(jù)庫中的每個(gè)對象都是一個(gè)節(jié)點(diǎn),它們之間的關(guān)系是一條邊。與關(guān)系數(shù)據(jù)庫相比,圖形數(shù)據(jù)庫能夠處理大量復(fù)雜的、互聯(lián)的、低結(jié)構(gòu)的、變化迅速的、需要頻繁查詢的數(shù)據(jù)。在關(guān)系數(shù)據(jù)庫中,這些查詢會(huì)導(dǎo)致大量的表連接,從而導(dǎo)致性能問題,不便于設(shè)計(jì)和使用。
圖形數(shù)據(jù)庫適用于社交網(wǎng)絡(luò)、推薦系統(tǒng)和其他側(cè)重于構(gòu)建關(guān)系圖的系統(tǒng)。
圖形數(shù)據(jù)庫的代表有neo4j、flockdb、infogrid、allegrograph、graphdb等。