欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

物聯(lián)網(wǎng)時代的數(shù)據(jù)庫如何選型

傅智翔2年前54瀏覽0評論

物聯(lián)網(wǎng)時代的數(shù)據(jù)庫如何選型?

物聯(lián)網(wǎng)時代,大量的數(shù)據(jù)從不同的設備傳感器產(chǎn)生,單機數(shù)據(jù)庫系統(tǒng)肯定無法存儲這么大量的數(shù)據(jù),在選擇數(shù)據(jù)庫方面,肯定要選擇具有分布式能力存儲的數(shù)據(jù)庫。

在物聯(lián)網(wǎng)時代,數(shù)據(jù)之間還有一個非常重要的特性,那就是數(shù)據(jù)之間的關(guān)聯(lián)性。不同的數(shù)據(jù)從相互連接的互聯(lián)網(wǎng)設備傳感器中產(chǎn)生,由于不同的傳感器相互連接,協(xié)同工作和采集數(shù)據(jù),如何將大量具有相互關(guān)聯(lián)的數(shù)據(jù)保存在數(shù)據(jù)庫,這里我推薦使用圖數(shù)據(jù)庫來進行存儲。

圖數(shù)據(jù)庫相對于其他數(shù)據(jù)庫來說,最大的優(yōu)勢就是查詢數(shù)據(jù)之間的關(guān)聯(lián)性會更加快速,消耗的時間會更短。打個比方,在社交網(wǎng)絡中,我們想要查詢在用戶A的粉絲中,粉絲關(guān)注了B的用戶。如果使用傳統(tǒng)關(guān)系型數(shù)據(jù)庫來存儲用戶的關(guān)注關(guān)系,在上面的數(shù)據(jù)統(tǒng)計中,要使用兩層Join才能算出結(jié)果,而關(guān)系型數(shù)據(jù)庫Join操作會很慢。使用圖型數(shù)據(jù)庫存儲數(shù)據(jù)的話,圖中的點為用戶,邊為用戶的關(guān)注關(guān)系,在查詢A的粉絲,同時粉絲也關(guān)注B的用戶,只需要遍歷兩層關(guān)注關(guān)系就能很快查詢到結(jié)果。

圖數(shù)據(jù)庫也屬于NoSql數(shù)據(jù)庫的一種,常用的圖形數(shù)據(jù)庫有,JanusGraph、Neo4j、Cayley、dgraph。不同的圖數(shù)據(jù)庫,底層實現(xiàn)也不盡相同。

JanusGraph是一種分布式圖數(shù)據(jù)庫,由Java語言開發(fā),可以使用Hadoop生態(tài)存儲系統(tǒng)作為數(shù)據(jù)源,構(gòu)建出數(shù)據(jù)大圖。是TiTan圖數(shù)據(jù)庫的開源版本,支持事務的ACID。

Neo4j是一種單機的圖數(shù)據(jù)庫,其優(yōu)勢就是能夠快速安裝并且使用,便于新同學上手。你的數(shù)據(jù)量一般不大的話,我推薦使用Neo4j,直接使用Neo4j相關(guān)的API就可以將數(shù)據(jù)模型圖構(gòu)建而出,然后使用 Neo4j Cypher查詢語言,就可以分析數(shù)據(jù),Cypher是一種類SQL的語言。

Cayley和Dgraph都是使用Go語言實現(xiàn)的圖數(shù)據(jù)庫,Go語言的最大特性就是其編譯速度和開發(fā)便捷性,Cayley和Dgraph都支持分布式存儲,不過都不支持SQL語言查詢數(shù)據(jù),Dgraph不支持事務,而Cayley支持事務,不過在開源社區(qū),Dgraph比Cayley更加活躍,這里優(yōu)先建議使用Dgraph作為物聯(lián)網(wǎng)的存儲數(shù)據(jù)庫。

總體來說,在物聯(lián)網(wǎng)時代,一定要學會使用圖數(shù)據(jù)庫,在分析大量數(shù)據(jù)之間的關(guān)聯(lián)性時,圖數(shù)據(jù)庫就能夠派上用場,圖數(shù)據(jù)庫最大的優(yōu)勢就是分析不同數(shù)據(jù)之間的關(guān)聯(lián)性。

我是Lake,專注大數(shù)據(jù)技術(shù)、互聯(lián)網(wǎng)科技見解、程序員個人經(jīng)驗分享,如果我的問答對你有幫助的話,希望你能夠點贊轉(zhuǎn)發(fā)或者關(guān)注我,就是我持續(xù)分享在大數(shù)據(jù)方面的知識,非常感謝。