物聯網時代,大量的數據從不同的設備傳感器產生,單機數據庫系統肯定無法存儲這么大量的數據,在選擇數據庫方面,肯定要選擇具有分布式能力存儲的數據庫。
在物聯網時代,
圖數據庫相對于其他數據庫來說,最大的優勢就是查詢數據之間的關聯性會更加快速,消耗的時間會更短。打個比方,在社交網絡中,我們想要查詢在用戶A的粉絲中,粉絲關注了B的用戶。如果使用傳統關系型數據庫來存儲用戶的關注關系,在上面的數據統計中,要使用兩層Join才能算出結果,而關系型數據庫Join操作會很慢。使用圖型數據庫存儲數據的話,圖中的點為用戶,邊為用戶的關注關系,在查詢A的粉絲,同時粉絲也關注B的用戶,只需要遍歷兩層關注關系就能很快查詢到結果。
圖數據庫也屬于NoSql數據庫的一種,
JanusGraph是一種分布式圖數據庫,由Java語言開發,可以使用Hadoop生態存儲系統作為數據源,構建出數據大圖。是TiTan圖數據庫的開源版本,支持事務的ACID。
Neo4j是一種單機的圖數據庫,其優勢就是能夠快速安裝并且使用,便于新同學上手。你的數據量一般不大的話,我推薦使用Neo4j,直接使用Neo4j相關的API就可以將數據模型圖構建而出,然后使用Neo4jCypher查詢語言,就可以分析數據,Cypher是一種類SQL的語言。
Cayley和Dgraph都是使用Go語言實現的圖數據庫,Go語言的最大特性就是其編譯速度和開發便捷性,Cayley和Dgraph都支持分布式存儲,不過都不支持SQL語言查詢數據,Dgraph不支持事務,而Cayley支持事務,不過在開源社區,Dgraph比Cayley更加活躍,這里優先建議使用Dgraph作為物聯網的存儲數據庫。
總體來說,在物聯網時代,一定要學會使用圖數據庫,在分析大量數據之間的關聯性時,圖數據庫就能夠派上用場,圖數據庫最大的優勢就是分析不同數據之間的關聯性。
我是Lake,專注大數據技術、互聯網科技見解、程序員個人經驗分享,如果我的問答對你有幫助的話,希望你能夠點贊轉發或者關注我,就是我持續分享在大數據方面的知識,非常感謝。