elasticsearch是分布式的搜索系統(全文搜索),
創新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于網站建設、做網站、德化網絡推廣、微信平臺小程序開發、德化網絡營銷、德化企業策劃、德化品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創新互聯為所有大學生創業者提供德化建站搭建服務,24小時服務熱線:18982081108,官方網址:m.kartarina.com
NoSQL非關系型數據庫,主要用在大數據量,高并發情景下(非事務)
NoSQL,泛指非關系型的數據庫。隨著互聯網web2.0網站的興起,傳統的關系數據庫在應付web2.0網站,特別是超大規模和高并發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,而非關系型的數據庫則由于其本身的特點得到了非常迅速的發展。NoSQL數據庫的產生就是為了解決大規模數據集合多重數據種類帶來的挑戰,尤其是大數據應用難題。
雖然NoSQL流行語火起來才短短一年的時間,但是不可否認,現在已經開始了第二代運動。盡管早期的堆棧代碼只能算是一種實驗,然而現在的系統已經更加的成熟、穩定。不過現在也面臨著一個嚴酷的事實:技術越來越成熟——以至于原來很好的NoSQL數據存儲不得不進行重寫,也有少數人認為這就是所謂的2.0版本。這里列出一些比較知名的工具,可以為大數據建立快速、可擴展的存儲庫。
NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,是一項全新的數據庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對于鋪天蓋地的關系型數據庫運用,這一概念無疑是一種全新的思維的注入。
對于NoSQL并沒有一個明確的范圍和定義,但是他們都普遍存在下面一些共同特征:
不需要預定義模式:不需要事先定義數據模式,預定義表結構。數據中的每條記錄都可能有不同的屬性和格式。當插入數據時,并不需要預先定義它們的模式。
無共享架構:相對于將所有數據存儲的存儲區域網絡中的全共享架構。NoSQL往往將數據劃分后存儲在各個本地服務器上。因為從本地磁盤讀取數據的性能往往好于通過網絡傳輸讀取數據的性能,從而提高了系統的性能。
彈性可擴展:可以在系統運行的時候,動態增加或者刪除結點。不需要停機維護,數據可以自動遷移。
分區:相對于將數據存放于同一個節點,NoSQL數據庫需要將數據進行分區,將記錄分散在多個節點上面。并且通常分區的同時還要做復制。這樣既提高了并行性能,又能保證沒有單點失效的問題。
異步復制:和RAID存儲系統不同的是,NoSQL中的復制,往往是基于日志的異步復制。這樣,數據就可以盡快地寫入一個節點,而不會被網絡傳輸引起遲延。缺點是并不總是能保證一致性,這樣的方式在出現故障的時候,可能會丟失少量的數據。
BASE:相對于事務嚴格的ACID特性,NoSQL數據庫保證的是BASE特性。BASE是最終一致性和軟事務。
NoSQL數據庫并沒有一個統一的架構,兩種NoSQL數據庫之間的不同,甚至遠遠超過兩種關系型數據庫的不同。可以說,NoSQL各有所長,成功的NoSQL必然特別適用于某些場合或者某些應用,在這些場合中會遠遠勝過關系型數據庫和其他的NoSQL。
數據庫有兩種類型,分別是關系型數據庫與非關系型數據庫。
1、關系數據庫
包括:MySQL、MariaDB(MySQL的代替品,英文維基百科從MySQL轉向MariaDB)、Percona Server(MySQL的代替品)、PostgreSQL、Microsoft Access、Microsoft SQL Server、Google Fusion Tables。
FileMaker、Oracle數據庫、Sybase、dBASE、Clipper、FoxPro、foshub。幾乎所有的數據庫管理系統都配備了一個開放式數據庫連接(ODBC)驅動程序,令各個數據庫之間得以互相集成。
2、非關系型數據庫(NoSQL)
包括:BigTable(Google)、Cassandra、MongoDB、CouchDB、鍵值(key-value)數據庫、Apache Cassandra(為Facebook所使用):高度可擴展、Dynamo、LevelDB(Google)。
擴展資料:
數據庫的作用
數據庫管理系統是為管理數據庫而設計的電腦軟件系統,一般具有存儲、截取、安全保障、備份等基礎功能。
數據庫管理系統可以依據它所支持的數據庫模型來作分類,例如關系式、XML;或依據所支持的計算機類型來作分類,例如服務器群集、移動電話。
或依據所用查詢語言來作分類,例如SQL、XQuery;或依據性能沖量重點來作分類,例如最大規模、最高運行速度;亦或其他的分類方式。不論使用哪種分類方式,一些DBMS能夠跨類別,例如,同時支持多種查詢語言。
參考資料來源:百度百科--數據庫
像MongoDB, Cassandra, HBase, DynamoDB, 和
Riak這些NoSQL缺乏傳統的原子事務機制,所謂原子事務機制是可以保證一系列寫操作要么全部完成,要么全部不會完成,不會發生只完成一系列中一兩個
寫操作;因為數據庫不提供這種事務機制支持,開發者需要自己編寫代碼來確保一系列寫操作的事務機制,比較復雜和測試。
這些NoSQL數據庫不提供事務機制原因在于其分布式特點,一系列寫操作中訪問的數據可能位于不同的分區服務器,這樣的事務就變成分布式事務,在分
布式事務中實現原子性需要彼此協調,而協調是耗費時間的,每臺機器在一個大事務過程中必須依次確認,這就需要一種協議確保一個事務中沒有任何一臺機器寫操
作失敗。
這種協調是昂貴的,會增加延遲時間,關鍵問題是,當協調沒有完成時,其他操作是不能讀取事務中寫操作結果的,這是因為事務的all-or-
nothing原理導致,萬一協調過程發現某個寫操作不能完成,那么需要將其他寫操作成功的進行回滾。針對分布式事務的分布式協調對整體數據庫性能有嚴重
影響,不只是吞吐量還包括延遲時間,這樣大部分NoSQL數據庫因為性能問題就選擇不提供分布式事務。
MongoDB, Riak, HBase, 和 Cassandra提供基于單一鍵的事務,這是因為所有信息都和一個鍵key有關,這個鍵是存儲在單個服務器上,這樣基于單鍵的事務不會帶來復雜的分布式協調。
那么看來擴展性性能和分布式事務是一對矛盾,總要有取舍?實際上是不完全是,現在完全有可能提供高擴展的性能同時提供分布式原子事務。
FIT是這樣一個在分布式系統提供原子事務的策略,在fairness公平性, isolation隔離性, 和throughput吞吐量(簡稱FIT)可以權衡。
一個支持分布式事務的可伸縮分布式系統能夠完成這三個屬性中兩個,公平是事務之間不會相互影響造成延遲;隔離性提供一種幻覺好像整個數據庫只有它自
己一個事務,隔離性保證當任何同時發生的事務發生沖突時,能夠保證彼此能看到彼此的寫操作結果,因此減輕了程序員為避免事務讀寫沖突的強邏輯推理要求;吞
吐量是指每單元時間數據庫能夠并發處理多少事務。
FIT是如下進行權衡:
保證公平性fairness 和隔離性isolation, 但是犧牲吞吐量
保證公平性fairness和吞吐量, 犧牲隔離性isolation
保證隔離性isolation和吞吐量throughput, 但是犧牲公平性fairness.
犧牲公平性:放棄公平性,數據庫能有更多機會降低分布式事務的成本,主要成本是分布式協調帶來的,也就是說,不需要在每個事務過程內對每個機器都依
次確認事務完成,這樣排隊式的確認commit事務是很浪費時間的,放棄公平性,意味著可以在事務外面進行協調,這樣就只是增加了協調時間,不會增加互相
沖突事務因為彼此沖突而不能運行所耽擱的時間,當系統不需要公平性時,需要根據事務的優先級或延遲等標準進行指定先后執行順序,這樣就能夠獲得很好的吞吐
量。
G-Store是一種放棄公平性的 Isolation-Throughput
的分布式key-value存儲,支持多鍵事務(multi-key transactions),MongoDB 和
HBase在鍵key在同樣分區上也支持多鍵事務,但是不支持跨分區的事務。
總之:傳統分布式事務性能不佳的原因是確保原子性(分布式協調)和隔離性同時重疊,創建一個高吞吐量分布式事務的關鍵是分離這兩種關注,這種分離原
子性和隔離性的視角將導致兩種類型的系統,第一種選擇是弱隔離性能讓沖突事務并行執行和確認提交;第二個選擇重新排序原子性和隔離性機制保證它們不會某個
時間重疊,這是一種放棄公平的事務執行,所謂放棄公平就是不再同時照顧原子性和隔離性了,有所傾斜,放棄高標準道德要求就會帶來高自由高效率。
名稱欄目:nosql排序,nosql有哪些
本文來源:http://m.kartarina.com/article40/hdddeo.html
成都網站建設公司_創新互聯,為您提供微信公眾號、靜態網站、動態網站、小程序開發、網站改版、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯