您好,登錄后才能下訂單哦!
這篇文章主要講解了“NoSQL的必須知道的東西有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“NoSQL的必須知道的東西有哪些”吧!
了解為什么NoSQL出生
1. 從持久數據存儲到支持現代應用程序
為了了解為什么NoSQL出生,我認為退后并快速查看數據存儲解決方案的演變是有用的。
在20世紀50年代至20世紀70年代之間,創建了早期數據管理系統,如平面文件,分層數據庫和網絡數據庫。它是世界持久數據存儲避免丟失數據時才足夠好。
在20世紀70年代,關系數據庫即將解決數據不一致的問題。而且如此強大,他們成為行業標準,使單獨的團隊和多個應用程序能夠在單個邏輯上相干的數據上搜索,查詢和操作,從而產生巨大的生產力效益。
但2000年代的Web應用程序,電子商務和社交媒體的指數增長產生了新的挑戰。谷歌和亞馬遜等技術巨頭發現,需要在網絡上支持大量的用戶,從單一數據庫應用程序上支持數千名業務用戶。
具體來說,我們現在有一個新的問題:如何一致地存儲大型數據集并支持現代應用程序,該應用程序在不連續的情況下連續處理大量用戶請求的用戶請求?在適當的技術條款,這是以下問題:
支持大量讀取和寫入
確保低延遲響應時間
保持高可用性。
雖然在某種程度上可以解決與關系數據庫的這個問題,但它通常具有增加的復雜性和潛在的高成本。因此,出生的兩個高度有影響力的NoSQL數據庫示例:來自亞馬遜的DynamoDB和谷歌的Bigtable。這標志著NoSQL數據庫的爆炸性,從那時起,人們從未回頭過。
定義NoSQL特性
> Image by Author
2. 是架構無神論
架構無神論,NoSQL數據庫不需要上模式設計。這意味著2對關系數據庫的益處。
首先,避免在前面的架構設計工作中花費幾個月意味著縮短開發時間,最終轉化為更快的網絡和移動應用程序的時間。
其次,架構無神論使您可以靈活地通過應用程序開發中途改變數據結構(而不是通過可怕的架構重新設計過程)。
如果您正在處理不同的數據結構,這很重要。例如,電子商務應用程序需要使用不同的產品規格存儲不同的項目。時尚產品的規模,顏色,形狀和品牌屬性,而微波爐可能包括尺寸,容量,瓦數和制造商的保修細節。
3. 非關系
使用NoSQL數據庫,沒有強制非關系數據到行和列中。由于開發人員可以保持存儲的數據結構更接近其原始形式,它們可以最大限度地減少代碼的金額和復雜性以存儲,管理和搜索信息。這反過來是測試,故障排除和錯誤修復更可管理。
此外,隨著數據以非正式格式存儲,NoSQL數據庫中的銷售訂單將與所有相關產品和遞送地址一起保存。這轉化為簡單的數據存儲和檢索以及更快的查詢。
如果您認為Denormalising數據也有其缺點,如冗余和更高的數據存儲成本。你是絕對正確的!在一天結束時,這是一個判斷你愿意支付更快的應用程序開發和數據查詢的問題。
4. 固有地在商業硬件上發布
鑒于任何現代應用程序都必須跨多種商品服務器分發。這不僅要滿足大量數據,還要迎合了無縫總是在網站和應用程序的消費者期望。他們必須以毫秒為單位響應,并且每當需要時始終可用于許多并發用戶。
Oracle RAC或SQL Server Alwayson是分布式關系數據庫的示例。不幸的是,關系數據庫必須依靠手動分片,這通常會導致更大的復雜性和運營成本。
相反,許多NoSQL數據庫,如HBase,Riak和Cassandra是固有的分布式,內置選項可以控制如何在廉價商品服務器上復制數據和分發數據。即使其中一個服務器崩潰并刻錄,您的數據仍然可以訪問您的應用程序繼續運行和服務用戶需求。這使得NoSQL數據庫更適合大規模數據存儲,以支持網站和面向客戶的應用程序。
注意:并非所有NoSQL數據庫都設計為分布或必須分發。但是,當可用性和可擴展性是最重要的問題時,選擇分布式產品有意義。
選擇NoSQL數據庫
5. 存在多種類型的NoSQL數據庫
NoSQL數據庫中使用的四種最廣泛類型:鍵值,文檔,列族和圖形數據庫。每個目的都是非常不同的。
鍵值數據庫將數據保存為一組鍵值對。關鍵作為概述關聯值的唯一標識符。一些例子包括Memcached,Voldemort,Redis和Riak。
文檔數據庫存儲和查詢數據與嵌套結構的類似JSON的文檔。兩個主要的開源選項是MongoDB和CouchDB。
面向列的數據庫是以給定列的數據存儲在一起的方式設計的。一些更流行的產品是HBase,Cassandra,Hypertable。
圖數據庫的實力在于它們的模型網絡(即與其他東西連接的東西)。通常在社交網絡應用中發現,圖形數據庫可以快速橫向節點和關系來提取相關數據。您可能已經聽說過其最著名的示例:Neo4j。
NoSQL數據庫具有豐富的選擇,但所有選擇都沒有同等地創建。廣泛的NoSQL產品說明一個人可以在管理文檔中Excel Excel,而另一個可以提供無與倫比的優勢來管理社交網絡。以下是每個NoSQL數據庫類型的一些現實生活用例。
> Image by Author
6. 最適合您的業務問題
選擇哪些NoSQL數據庫采用時,您必須要求自己的問題不是“此數據庫可以存儲我的數據嗎?”而是,“它是最適合我的業務問題和應用要求嗎?”
但對我來說很清楚,許多其他決定“最適合”可能是艱難的,因為有這么多考慮因素。每次考慮都對不同用例的最終決策進行了不同的重量。
要為您提供一個起點,以下是在決定數據存儲解決方案的最佳擬合時必須考慮的6個關鍵因素。
> Image by Author
7.各種選擇都有一定的權衡
隨著數據庫景觀更快地改變我們敢于預測,選擇最佳選擇是非常復雜的。
例如,雖然圖形數據庫如Neo4j將適合Facebook這樣的社交媒體,但存儲的純粹量存儲器將很容易地壓倒任何現有的圖形數據庫。因此,傾向于更大的大規模選項(如HBase或RIAK)是有意義的,這最初與社交網絡無關。
這里的那一點是,每個NoSQL數據庫應該被評估為單獨的技術,而不是基于其分類來刻板透明。潛在的權衡必須仔細考慮,因為它們可能是交易破壞者。
為了說明這一點,以下是七周內從書中所選數據庫之間的簡化比較。
注意:在表中,我還包括關系PostgreSQL以突出顯示用于在其他非關系對等體上選擇關系數據庫的權衡。此外,可以發布新功能以解決我們的說法,以解決一些潛在的權衡,因此最好檢查最新的更新。
感謝各位的閱讀,以上就是“NoSQL的必須知道的東西有哪些”的內容了,經過本文的學習后,相信大家對NoSQL的必須知道的東西有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。