常見的四種非關係型數據庫都適合什麼業務場景?

常見的四種非關係型數據庫都適合什麼業務場景?

轉載自:https://database.51cto.com/art/202004/614237.htm

大多數NoSQL數據庫的基本理念是面向任務(task-oriented)的數據庫管理系統。如同老生常談:如果你唯一的工具是錘子,那麼一切看起來都像釘子(If all you have is ahammer, everything looks like a nail.)。

常見的四種非關係型數據庫都適合什麼業務場景?

現在我們有不同種類的錘子、起子、鑿子、鏟子,還有更多的工具來解決數據管理問題。當然,最好的方法是選擇合適的工具來完成不同的工作,如果只用關係數據庫事實上可能會適得其反。除SQL數據庫外,其他的可以分成四類:
1、鍵值存儲(key-value stores)
2、列式存儲(column-family stores)
3、文檔存儲(document stores)
4、圖數據庫(graph databases)

1、鍵值存儲

鍵值存儲可能是最簡單的面向任務的NoSQL數據庫。其最初的數據模型並不複雜:主要基於亞馬遜在兩年一度的ACM操作系統研討會(ACM Symposium on Operating SystemsPrinciples)上發佈的白皮書,一篇叫Dynamo的論文。在此討論的數據模型就是亞馬遜的購物車系統(Amazon's shopping cart system),該系統要求高可用和高負載。因此,鍵值存儲數據庫的底層數據模型的確很簡單:鍵和值存儲爲無模式(schema-less)數據模型。事實上,該系統採用大量的商業硬件搭建成集羣,可擴展性非常高,並承載了多個高端應用,比如Amazon等。鍵值存儲的產品還有DynamoDB、Riak、Project Voldemort、Redis、Aerospike等。

常見的四種非關係型數據庫都適合什麼業務場景?

2、列式存儲

列式存儲是另一個面向任務的數據庫解決方案。其數據模型比鍵值存儲稍複雜,包含一個大而稀疏的表結構,其中包括存儲鍵的多個列。與Dynamo系統類似,列式存儲也是源於一個特定公司的特殊需求,即Google公司提出的解決方案,發表在2006年OSDI會議(Operating SystemsDesign and Implementation symposium,操作系統設計與實現研討會)上的BigTable論文中。除谷歌的產品外,還涌現出一批有趣的開源實現,如Apache Cassandra和HBase。大多數情況下,這些系統可結合Map/Reduce批處理來處理高級查詢。

3、文件存儲

隨着網頁和應用的爆炸式增長,文檔存儲可能是最有名、最常用的NoSQL數據庫類型。顧名思義,文檔存儲中的關鍵概念——文檔,是一個半結構化的信息單元,可以是XML、JSON、YAML、OpenOffice、MS Office,或者其他任何可用的文檔。其存儲和檢索爲簡單的無模式方式。文檔存儲產品包括廣受歡迎的MongoDB、Apache CouchDB、MarkLogic和Virtuoso等。

4、圖數據庫

圖數據庫與其他三類有着本質上的差異。圖數據庫所要解決的問題與圖和圖論相關。圖數據庫,例如Neo4j,其目的是爲用戶提供一種更好的方法用於管理結構複雜、呈網狀分佈的數據。當然,基於圖模型實現的解決方案並不僅有Neo4j,有的產品成熟度不同,有的開源或閉源,例如AllegroGraph、Dex、FlockDB、InfiniteGraph、OrientDB和Sones等。
常見的四種非關係型數據庫都適合什麼業務場景?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章