一、nosql基礎知識
1.關於nosql
在「nosql」一詞。實際上是乙個叫racker的同事創造的,當約翰埃文斯埃里克要組織一次活動來討論開源的分布式資料庫。
這個名稱和概念都由此而來。
有些人反對nosql術語,由於它聽起來像我們定義自己是什麼.在一定程度,但長期仍然是有價值的。由於當乙個關聯式資料庫是唯一的工具,你知道,每個問題,看起來像乙個大拇指。
nosql是讓人們知道有其它選擇**。但我們並不反對關聯式資料庫,由於當這確實是工作的最佳工具.
乙個與nosql名稱真正關注的是,它是乙個非常大的帳篷。有非常不同的設計空間。假設這不是在討論清楚的,它在各種產品混亂的結果。因此,我要建議沿著三個軸的思考非常多資料庫選項:可擴充套件性,資料和查詢模型和永續性的設計。
前所未有的資料量正推動企業關注傳統的關聯式資料庫技術。已服務了30多年良好替代品。總的來說。這些替代品已被稱作「nosql資料庫。」
每server效能和嚴格的架構設計。
我近期寫了郵件給卡桑德拉,關於非關係型資料庫的資源。我們承諾後,還有其它非關係型資料庫在工作,我們稱之為「nosql運動。」
2.乙個簡單的nosql例項
我選擇了一些作為樣例nosql資料庫。這不是乙個詳盡的清單,但討論的概念是對於衡量其它人也至關重要。
可伸縮性
縮放讀取與複製easy,當我們對在這方面縮放時。我們的意思寫了縮放到多台機器自己主動分割槽的資料。我們呼籲制度不健全。這樣的「分布式資料庫。
」這當中包含cassandra,hbase。riak,scalaris,voldemort,等等。
假設你寫卷或資料容量超過一台機器可處理。那麼這些是你的唯一選擇,假設你不想手動分割槽管理。
有兩件事情看在分布式資料庫:1)支援多種資料中心和2)可以加入新的機器現場集群的應用程式的透明。
二、nosql資料庫使用
1. nosql資料和查詢模型
非分布式nosql資料庫包含couchdb。mongodb,neo4j,redis。和tokyo cabinet。
這些能夠作為分布式系統持久層; mongodb提供有限的共享支援,做了單獨的歇息室為couchdb專案。和tokyo cabinet可作為voldemort儲存引擎使用。
資料和查詢模型
在nosql裡有非常多不同的資料模型和資料庫的查詢api.
一些重點:
該columnfamily模型cassandra共享和hbase的是由谷歌的bigtable檔案。第2節描寫敘述的啟示。 (cassandra下降,歷史版本號,並加入超級列。)在這兩個系統,你必須像你行和列習以為常,但稀疏行:每一行能夠有很多或盡可能少列的須要。以及列不必須預定義。
鍵/值模型是最簡單和最easy實現的,但效率低,僅僅有當你在查詢或更新的值的一部分感興趣。這也是難以執行的分布式圈頂更複雜的結構/價值。
文件資料庫基本上是下一階段重點/值。同意巢狀的值與每乙個鍵關聯。
檔案資料庫支援查詢的效率比每次返回了整個blob更簡單。
neo4j有乙個真正獨特的資料模型,物件儲存在圖和節點和邊的關係。
對於查詢適合這個模型(比如。分層資料),它們能夠是1000倍速度比替代品。
scalaris是獨特的。提供跨多個鍵分布式事務。 (討論與**之間的一致性和可用性權衡超出了這個職位的範圍,但還有乙個方面就是要牢記在評價分布式系統。)
永續性設計
通過持續的設計我的意思是,「怎樣在內部儲存的資料?」 永續性模型告訴我們非常多這些資料庫可以善於什麼樣的工作量.
在記憶體資料庫是很。很快的(redis達到每秒超過100,000操作一台計算機上),但不能與資料集的工作,超出可用的ram。耐久性(保留資料。即使server崩潰或斷電)也將是乙個問題的資料量,能夠預期損失之間的衝(複製資料到磁碟)可能很大。
scalaris,其它記憶體資料庫,我們的名單上。意向處理與複製耐久性問題,但因為它不支援多個資料中心的資料將仍然easy受到停電的事情一樣。
memtables和sstables快取在記憶體中寫入(1「memtable」)後。以書面追加僅僅承諾為耐久性日誌。
當寫夠已被接受的memtable排序並寫入到磁碟上的全部一次作為「sstable。
」這提供近記憶體中的表現,由於沒有涉及要求。同一時候避免了純粹的耐久性問題,在記憶體的方法。 (這是具體描寫敘述在第5.3和先前提及的5.4 bigtable的檔案,以及在該日誌結構合併樹。
b-樹已被用於從資料庫中實際上是時間的起點。
索引他們提供強大的支援。但表現欠佳的旋轉盤(這仍然是迄今為止最具有成本效益,由於多)要求讀或寫什麼工作。
乙個有趣的變體是couchdb的追加,僅僅有b -樹,它避免了管理費用的目的在限制couchdb一寫一時間成本.
結論該nosql運動在2023年**地為越來越多的企業全力對付大量資料。在rackspace雲高興地發揮了nosql運動的早期作用。並繼續投入資源,cassandra像nosql支援事件。
本文借鑑
Nosql資料庫概述
nosql資料庫簡稱非關係型資料庫,not only sql 那麼nosql資料庫有什麼特點呢?1.易擴充套件 nosql資料庫種類很多,但是有乙個共同的特點是都去掉了關係型資料庫的關係型特性 資料之間無關係,這樣就很容易擴充套件,也在架構的層面帶來了可擴充套件的能力 2.大資料量高效能 nosql...
NoSQL資料庫筆談
序 思想篇cap 最終一致性 變體base 其他i o的五分鐘法則 不要刪除資料 ram是硬碟,硬碟是磁帶 amdahl定律和gustafson定律 萬兆乙太網 手段篇一致性雜湊 亞馬遜的現狀 演算法的選擇 quorum nrw vector clock virtual node gossip go...
NoSQL資料庫簡介
一 簡介 nosql not only sql 泛指非關係型的資料庫。隨著網際網路web2.0 的興起,傳統的關聯式資料庫在應付web2.0 特別是超大規模和高併發的sns型別的web2.0純動態 已經顯得力不從心,暴露了很多難以克服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。...