真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

nosql大數據量,進行數據管理的nosql

目前哪些NoSQL數據庫應用廣泛,各有什么特點

特點:

創(chuàng)新互聯(lián)公司是專業(yè)的廣州網站建設公司,廣州接單;提供成都網站制作、做網站,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行廣州網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!

它們可以處理超大量的數據。

它們運行在便宜的PC服務器集群上。

PC集群擴充起來非常方便并且成本很低,避免了“sharding”操作的復雜性和成本。

它們擊碎了性能瓶頸。

NoSQL的支持者稱,通過NoSQL架構可以省去將Web或Java應用和數據轉換成SQL友好格式的時間,執(zhí)行速度變得更快。

“SQL并非適用于所有的程序代碼,” 對于那些繁重的重復操作的數據,SQL值得花錢。但是當數據庫結構非常簡單時,SQL可能沒有太大用處。

沒有過多的操作。

雖然NoSQL的支持者也承認關系數據庫提供了無可比擬的功能集合,而且在數據完整性上也發(fā)揮絕對穩(wěn)定,他們同時也表示,企業(yè)的具體需求可能沒有那么多。

Bootstrap支持

因為NoSQL項目都是開源的,因此它們缺乏供應商提供的正式支持。這一點它們與大多數開源項目一樣,不得不從社區(qū)中尋求支持。

優(yōu)點:

易擴展

NoSQL數據庫種類繁多,但是一個共同的特點都是去掉關系數據庫的關系型特性。數據之間無關系,這樣就非常容易擴展。也無形之間,在架構的層面上帶來了可擴展的能力。

大數據量,高性能

NoSQL數據庫都具有非常高的讀寫性能,尤其在大數據量下,同樣表現優(yōu)秀。這得益于它的無關系性,數據庫的結構簡單。一般MySQL使用 Query Cache,每次表的更新Cache就失效,是一種大粒度的Cache,在針對web2.0的交互頻繁的應用,Cache性能不高。而NoSQL的 Cache是記錄級的,是一種細粒度的Cache,所以NoSQL在這個層面上來說就要性能高很多了。

靈活的數據模型

NoSQL無需事先為要存儲的數據建立字段,隨時可以存儲自定義的數據格式。而在關系數據庫里,增刪字段是一件非常麻煩的事情。如果是非常大數據量的表,增加字段簡直就是一個噩夢。這點在大數據量的web2.0時代尤其明顯。

高可用

NoSQL在不太影響性能的情況,就可以方便的實現高可用的架構。比如Cassandra,HBase模型,通過復制模型也能實現高可用。

主要應用:

Apache HBase

這個大數據管理平臺建立在谷歌強大的BigTable管理引擎基礎上。作為具有開源、Java編碼、分布式多個優(yōu)勢的數據庫,Hbase最初被設計應用于Hadoop平臺,而這一強大的數據管理工具,也被Facebook采用,用于管理消息平臺的龐大數據。

Apache Storm

用于處理高速、大型數據流的分布式實時計算系統(tǒng)。Storm為Apache Hadoop添加了可靠的實時數據處理功能,同時還增加了低延遲的儀表板、安全警報,改進了原有的操作方式,幫助企業(yè)更有效率地捕獲商業(yè)機會、發(fā)展新業(yè)務。

Apache Spark

該技術采用內存計算,從多迭代批量處理出發(fā),允許將數據載入內存做反復查詢,此外還融合數據倉庫、流處理和圖計算等多種計算范式,Spark用Scala語言實現,構建在HDFS上,能與Hadoop很好的結合,而且運行速度比MapReduce快100倍。

Apache Hadoop

該技術迅速成為了大數據管理標準之一。當它被用來管理大型數據集時,對于復雜的分布式應用,Hadoop體現出了非常好的性能,平臺的靈活性使它可以運行在商用硬件系統(tǒng),它還可以輕松地集成結構化、半結構化和甚至非結構化數據集。

Apache Drill

你有多大的數據集?其實無論你有多大的數據集,Drill都能輕松應對。通過支持HBase、Cassandra和MongoDB,Drill建立了交互式分析平臺,允許大規(guī)模數據吞吐,而且能很快得出結果。

Apache Sqoop

也許你的數據現在還被鎖定于舊系統(tǒng)中,Sqoop可以幫你解決這個問題。這一平臺采用并發(fā)連接,可以將數據從關系數據庫系統(tǒng)方便地轉移到Hadoop中,可以自定義數據類型以及元數據傳播的映射。事實上,你還可以將數據(如新的數據)導入到HDFS、Hive和Hbase中。

Apache Giraph

這是功能強大的圖形處理平臺,具有很好可擴展性和可用性。該技術已經被Facebook采用,Giraph可以運行在Hadoop環(huán)境中,可以將它直接部署到現有的Hadoop系統(tǒng)中。通過這種方式,你可以得到強大的分布式作圖能力,同時還能利用上現有的大數據處理引擎。

Cloudera Impala

Impala模型也可以部署在你現有的Hadoop群集上,監(jiān)視所有的查詢。該技術和MapReduce一樣,具有強大的批處理能力,而且Impala對于實時的SQL查詢也有很好的效果,通過高效的SQL查詢,你可以很快的了解到大數據平臺上的數據。

Gephi

它可以用來對信息進行關聯(lián)和量化處理,通過為數據創(chuàng)建功能強大的可視化效果,你可以從數據中得到不一樣的洞察力。Gephi已經支持多個圖表類型,而且可以在具有上百萬個節(jié)點的大型網絡上運行。Gephi具有活躍的用戶社區(qū),Gephi還提供了大量的插件,可以和現有系統(tǒng)完美的集成到一起,它還可以對復雜的IT連接、分布式系統(tǒng)中各個節(jié)點、數據流等信息進行可視化分析。

MongoDB

這個堅實的平臺一直被很多組織推崇,它在大數據管理上有極好的性能。MongoDB最初是由DoubleClick公司的員工創(chuàng)建,現在該技術已經被廣泛的應用于大數據管理。MongoDB是一個應用開源技術開發(fā)的NoSQL數據庫,可以用于在JSON這樣的平臺上存儲和處理數據。目前,紐約時報、Craigslist以及眾多企業(yè)都采用了MongoDB,幫助他們管理大型數據集。(Couchbase服務器也作為一個參考)。

十大頂尖公司:

Amazon Web Services

Forrester將AWS稱為“云霸主”,談到云計算領域的大數據,那就不得不提到亞馬遜。該公司的Hadoop產品被稱為EMR(Elastic Map Reduce),AWS解釋這款產品采用了Hadoop技術來提供大數據管理服務,但它不是純開源Hadoop,經過修改后現在被專門用在AWS云上。

Forrester稱EMR有很好的市場前景。很多公司基于EMR為客戶提供服務,有一些公司將EMR應用于數據查詢、建模、集成和管理。而且AWS還在創(chuàng)新,Forrester稱未來EMR可以基于工作量的需要自動縮放調整大小。亞馬遜計劃為其產品和服務提供更強大的EMR支持,包括它的RedShift數據倉庫、新公布的Kenesis實時處理引擎以及計劃中的NoSQL數據庫和商業(yè)智能工具。不過AWS還沒有自己的Hadoop發(fā)行版。

Cloudera

Cloudera有開源Hadoop的發(fā)行版,這個發(fā)行版采用了Apache Hadoop開源項目的很多技術,不過基于這些技術的發(fā)行版也有很大的進步。Cloudera為它的Hadoop發(fā)行版開發(fā)了很多功能,包括Cloudera管理器,用于管理和監(jiān)控,以及名為Impala的SQL引擎等。Cloudera的Hadoop發(fā)行版基于開源Hadoop,但也不是純開源的產品。當Cloudera的客戶需要Hadoop不具備的某些功能時,Cloudera的工程師們就會實現這些功能,或者找一個擁有這項技術的合作伙伴。Forrester表示:“Cloudera的創(chuàng)新方法忠于核心Hadoop,但因為其可實現快速創(chuàng)新并積極滿足客戶需求,這一點使它不同于其他那些供應商?!蹦壳?,Cloudera的平臺已經擁有200多個付費客戶,一些客戶在Cloudera的技術支持下已經可以跨1000多個節(jié)點實現對PB級數據的有效管理。

Hortonworks

和Cloudera一樣,Hortonworks是一個純粹的Hadoop技術公司。與Cloudera不同的是,Hortonworks堅信開源Hadoop比任何其他供應商的Hadoop發(fā)行版都要強大。Hortonworks的目標是建立Hadoop生態(tài)圈和Hadoop用戶社區(qū),推進開源項目的發(fā)展。Hortonworks平臺和開源Hadoop聯(lián)系緊密,公司管理人員表示這會給用戶帶來好處,因為它可以防止被供應商套牢(如果Hortonworks的客戶想要離開這個平臺,他們可以輕松轉向其他開源平臺)。這并不是說Hortonworks完全依賴開源Hadoop技術,而是因為該公司將其所有開發(fā)的成果回報給了開源社區(qū),比如Ambari,這個工具就是由Hortonworks開發(fā)而成,用來填充集群管理項目漏洞。Hortonworks的方案已經得到了Teradata、Microsoft、Red Hat和SAP這些供應商的支持。

IBM

當企業(yè)考慮一些大的IT項目時,很多人首先會想到IBM。IBM是Hadoop項目的主要參與者之一,Forrester稱IBM已有100多個Hadoop部署,它的很多客戶都有PB級的數據。IBM在網格計算、全球數據中心和企業(yè)大數據項目實施等眾多領域有著豐富的經驗?!癐BM計劃繼續(xù)整合SPSS分析、高性能計算、BI工具、數據管理和建模、應對高性能計算的工作負載管理等眾多技術。”

Intel

和AWS類似,英特爾不斷改進和優(yōu)化Hadoop使其運行在自己的硬件上,具體來說,就是讓Hadoop運行在其至強芯片上,幫助用戶打破Hadoop系統(tǒng)的一些限制,使軟件和硬件結合的更好,英特爾的Hadoop發(fā)行版在上述方面做得比較好。Forrester指出英特爾在最近才推出這個產品,所以公司在未來還有很多改進的可能,英特爾和微軟都被認為是Hadoop市場上的潛力股。

MapR Technologies

MapR的Hadoop發(fā)行版目前為止也許是最好的了,不過很多人可能都沒有聽說過。Forrester對Hadoop用戶的調查顯示,MapR的評級最高,其發(fā)行版在架構和數據處理能力上都獲得了最高分。MapR已將一套特殊功能融入其Hadoop發(fā)行版中。例如網絡文件系統(tǒng)(NFS)、災難恢復以及高可用性功能。Forrester說MapR在Hadoop市場上沒有Cloudera和Hortonworks那樣的知名度,MapR要成為一個真正的大企業(yè),還需要加強伙伴關系和市場營銷。

Microsoft

微軟在開源軟件問題上一直很低調,但在大數據形勢下,它不得不考慮讓Windows也兼容Hadoop,它還積極投入到開源項目中,以更廣泛地推動Hadoop生態(tài)圈的發(fā)展。我們可以在微軟的公共云Windows Azure HDInsight產品中看到其成果。微軟的Hadoop服務基于Hortonworks的發(fā)行版,而且是為Azure量身定制的。

微軟也有一些其他的項目,包括名為Polybase的項目,讓Hadoop查詢實現了SQLServer查詢的一些功能。Forrester說:“微軟在數據庫、數據倉庫、云、OLAP、BI、電子表格(包括PowerPivot)、協(xié)作和開發(fā)工具市場上有很大優(yōu)勢,而且微軟擁有龐大的用戶群,但要在Hadoop這個領域成為行業(yè)領導者還有很遠的路要走?!?/p>

Pivotal Software

EMC和Vmware部分大數據業(yè)務分拆組合產生了Pivotal。Pivotal一直努力構建一個性能優(yōu)越的Hadoop發(fā)行版,為此,Pivotal在開源Hadoop的基礎上又添加了一些新的工具,包括一個名為HAWQ的SQL引擎以及一個專門解決大數據問題的Hadoop應用。Forrester稱Pivotal Hadoop平臺的優(yōu)勢在于它整合了Pivotal、EMC、Vmware的眾多技術,Pivotal的真正優(yōu)勢實際上等于EMC和Vmware兩大公司為其撐腰。到目前為止,Pivotal的用戶還不到100個,而且大多是中小型客戶。

Teradata

對于Teradata來說,Hadoop既是一種威脅也是一種機遇。數據管理,特別是關于SQL和關系數據庫這一領域是Teradata的專長。所以像Hadoop這樣的NoSQL平臺崛起可能會威脅到Teradata。相反,Teradata接受了Hadoop,通過與Hortonworks合作,Teradata在Hadoop平臺集成了SQL技術,這使Teradata的客戶可以在Hadoop平臺上方便地使用存儲在Teradata數據倉庫中的數據。

AMPLab

通過將數據轉變?yōu)樾畔?,我們才可以理解世界,而這也正是AMPLab所做的。AMPLab致力于機器學習、數據挖掘、數據庫、信息檢索、自然語言處理和語音識別等多個領域,努力改進對信息包括不透明數據集內信息的甄別技術。除了Spark,開源分布式SQL查詢引擎Shark也源于AMPLab,Shark具有極高的查詢效率,具有良好的兼容性和可擴展性。近幾年的發(fā)展使計算機科學進入到全新的時代,而AMPLab為我們設想一個運用大數據、云計算、通信等各種資源和技術靈活解決難題的方案,以應對越來越復雜的各種難題。

為什么海量數據場景中NoSQL越來越重要

本質是因為:隨著互聯(lián)網的進一步發(fā)展與各行業(yè)信息化建設進程加快、參與者的增多,人們對軟件有了更多更新的要求,需要軟件不僅能實現功能,而且要求保證許多人可以共同參與使用,因而軟件所需承載的數據量和吞吐量必須達到相應的需求。而目前的關系型數據庫在某些方面有一些缺點,導致不能滿足需要。

具體則需要對比關系型數據庫與Nosql之間的區(qū)別可以得出

關系型數據庫

關系型數據庫把所有的數據都通過行和列的二元表現形式表示出來。

關系型數據庫的優(yōu)勢:

1.?保持數據的一致性(事務處理)

2.由于以標準化為前提,數據更新的開銷很?。ㄏ嗤淖侄位旧隙贾挥幸惶帲?/p>

3.?可以進行Join等復雜查詢

其中能夠保持數據的一致性是關系型數據庫的最大優(yōu)勢。

關系型數據庫的不足:

不擅長的處理

1.?大量數據的寫入處理(這點尤為重要)

2.?為有數據更新的表做索引或表結構(schema)變更

3.?字段不固定時應用

4.?對簡單查詢需要快速返回結果的處理

--大量數據的寫入處理

讀寫集中在一個數據庫上讓數據庫不堪重負,大部分網站已使用主從復制技術實現讀寫分離,以提高讀寫性能和讀庫的可擴展性。

所以在進行大量數據操作時,會使用數據庫主從模式。數據的寫入由主數據庫負責,數據的讀入由從數據庫負責,可以比較簡單地通過增加從數據庫來實現規(guī)?;菙祿膶懭雲s完全沒有簡單的方法來解決規(guī)?;瘑栴}。

第一,要想將數據的寫入規(guī)?;?,可以考慮把主數據庫從一臺增加到兩臺,作為互相關聯(lián)復制的二元主數據庫使用,確實這樣可以把每臺主數據庫的負荷減少一半,但是更新處理會發(fā)生沖突,可能會造成數據的不一致,為了避免這樣的問題,需要把對每個表的請求分別分配給合適的主數據庫來處理。

第二,可以考慮把數據庫分割開來,分別放在不同的數據庫服務器上,比如將不同的表放在不同的數據庫服務器上,數據庫分割可以減少每臺數據庫服務器上的數據量,以便減少硬盤IO的輸入、輸出處理,實現內存上的高速處理。但是由于分別存儲字不同服務器上的表之間無法進行Join處理,數據庫分割的時候就需要預先考慮這些問題,數據庫分割之后,如果一定要進行Join處理,就必須要在程序中進行關聯(lián),這是非常困難的。

--為有數據更新的表做索引或表結構變更

在使用關系型數據庫時,為了加快查詢速度需要創(chuàng)建索引,為了增加必要的字段就一定要改變表結構,為了進行這些處理,需要對表進行共享鎖定,這期間數據變更、更新、插入、刪除等都是無法進行的。如果需要進行一些耗時操作,例如為數據量比較大的表創(chuàng)建索引或是變更其表結構,就需要特別注意,長時間內數據可能無法進行更新。

--字段不固定時的應用

如果字段不固定,利用關系型數據庫也是比較困難的,有人會說,需要的時候加個字段就可以了,這樣的方法也不是不可以,但在實際運用中每次都進行反復的表結構變更是非常痛苦的。你也可以預先設定大量的預備字段,但這樣的話,時間一長很容易弄不清除字段和數據的對應狀態(tài),即哪個字段保存有哪些數據。

--對簡單查詢需要快速返回結果的處理? (這里的“簡單”指的是沒有復雜的查詢條件)

這一點稱不上是缺點,但不管怎樣,關系型數據庫并不擅長對簡單的查詢快速返回結果,因為關系型數據庫是使用專門的sql語言進行數據讀取的,它需要對sql與越南進行解析,同時還有對表的鎖定和解鎖等這樣的額外開銷,這里并不是說關系型數據庫的速度太慢,而只是想告訴大家若希望對簡單查詢進行高速處理,則沒有必要非使用關系型數據庫不可。

NoSQL數據庫

關系型數據庫應用廣泛,能進行事務處理和表連接等復雜查詢。相對地,NoSQL數據庫只應用在特定領域,基本上不進行復雜的處理,但它恰恰彌補了之前所列舉的關系型數據庫的不足之處。

優(yōu)點:

易于數據的分散

各個數據之間存在關聯(lián)是關系型數據庫得名的主要原因,為了進行join處理,關系型數據庫不得不把數據存儲在同一個服務器內,這不利于數據的分散,這也是關系型數據庫并不擅長大數據量的寫入處理的原因。相反NoSQL數據庫原本就不支持Join處理,各個數據都是獨立設計的,很容易把數據分散在多個服務器上,故減少了每個服務器上的數據量,即使要處理大量數據的寫入,也變得更加容易,數據的讀入操作當然也同樣容易。

典型的NoSQL數據庫

臨時性鍵值存儲(memcached、Redis)、永久性鍵值存儲(ROMA、Redis)、面向文檔的數據庫(MongoDB、CouchDB)、面向列的數據庫(Cassandra、HBase)

一、 鍵值存儲

它的數據是以鍵值的形式存儲的,雖然它的速度非???,但基本上只能通過鍵的完全一致查詢獲取數據,根據數據的保存方式可以分為臨時性、永久性和兩者兼具 三種。

(1)臨時性

所謂臨時性就是數據有可能丟失,memcached把所有數據都保存在內存中,這樣保存和讀取的速度非???,但是當memcached停止時,數據就不存在了。由于數據保存在內存中,所以無法操作超出內存容量的數據,舊數據會丟失??偨Y來說:

。在內存中保存數據

??梢赃M行非??焖俚谋4婧妥x取處理

。數據有可能丟失

(2)永久性

所謂永久性就是數據不會丟失,這里的鍵值存儲是把數據保存在硬盤上,與臨時性比起來,由于必然要發(fā)生對硬盤的IO操作,所以性能上還是有差距的,但數據不會丟失是它最大的優(yōu)勢??偨Y來說:

。在硬盤上保存數據

??梢赃M行非??焖俚谋4婧妥x取處理(但無法與memcached相比)

。數據不會丟失

(3) 兩者兼?zhèn)?/p>

Redis屬于這種類型。Redis有些特殊,臨時性和永久性兼具。Redis首先把數據保存在內存中,在滿足特定條件(默認是?15分鐘一次以上,5分鐘內10個以上,1分鐘內10000個以上的鍵發(fā)生變更)的時候將數據寫入到硬盤中,這樣既確保了內存中數據的處理速度,又可以通過寫入硬盤來保證數據的永久性,這種類型的數據庫特別適合處理數組類型的數據。總結來說:

。同時在內存和硬盤上保存數據

??梢赃M行非??焖俚谋4婧妥x取處理

。保存在硬盤上的數據不會消失(可以恢復)

。適合于處理數組類型的數據

二、面向文檔的數據庫

MongoDB、CouchDB屬于這種類型,它們屬于NoSQL數據庫,但與鍵值存儲相異。

(1)不定義表結構

即使不定義表結構,也可以像定義了表結構一樣使用,還省去了變更表結構的麻煩。

(2)可以使用復雜的查詢條件

跟鍵值存儲不同的是,面向文檔的數據庫可以通過復雜的查詢條件來獲取數據,雖然不具備事務處理和Join這些關系型數據庫所具有的處理能力,但初次以外的其他處理基本上都能實現。

三、?面向列的數據庫

Cassandra、HBae、HyperTable屬于這種類型,由于近年來數據量出現爆發(fā)性增長,這種類型的NoSQL數據庫尤其引入注目。

普通的關系型數據庫都是以行為單位來存儲數據的,擅長以行為單位的讀入處理,比如特定條件數據的獲取。因此,關系型數據庫也被成為面向行的數據庫。相反,面向列的數據庫是以列為單位來存儲數據的,擅長以列為單位讀入數據。

面向列的數據庫具有搞擴展性,即使數據增加也不會降低相應的處理速度(特別是寫入速度),所以它主要應用于需要處理大量數據的情況。另外,把它作為批處理程序的存儲器來對大量數據進行更新也是非常有用的。但由于面向列的數據庫跟現行數據庫存儲的思維方式有很大不同,故應用起來十分困難。

總結:關系型數據庫與NoSQL數據庫并非對立而是互補的關系,即通常情況下使用關系型數據庫,在適合使用NoSQL的時候使用NoSQL數據庫,讓NoSQL數據庫對關系型數據庫的不足進行彌補。

為什么要使用NoSQL?NOSQL的優(yōu)勢

非常榮幸能受邀在InfoQ開辟這樣一個關于NoSQL的專欄,InfoQ是我非常尊重的一家技術媒體,同時我也希望借助InfoQ,在國內推動NoSQL的發(fā)展,希望跟我一樣有興趣的朋友加入進來。這次的NoSQL專欄系列將先整體介紹NoSQL,然后介紹如何把NoSQL運用到自己的項目中合適的場景中,還會適當地分析一些成功案例,希望有成功使用NoSQL經驗的朋友給我提供一些線索和信息。 NoSQL概念隨著web2.0的快速發(fā)展,非關系型、分布式數據存儲得到了快速的發(fā)展,它們不保證關系數據的ACID特性。NoSQL概念在2009年被提了出來。NoSQL最常見的解釋是“non-relational”,“Not Only SQL”也被很多人接受。(“NoSQL”一詞最早于1998年被用于一個輕量級的關系數據庫的名字。) NoSQL被我們用得最多的當數key-value存儲,當然還有其他的文檔型的、列存儲、圖型數據庫、xml數據庫等。在NoSQL概念提出之前,這些數據庫就被用于各種系統(tǒng)當中,但是卻很少用于web互聯(lián)網應用。比如cdb、qdbm、bdb數據庫。 傳統(tǒng)關系數據庫的瓶頸 傳統(tǒng)的關系數據庫具有不錯的性能,高穩(wěn)定型,久經歷史考驗,而且使用簡單,功能強大,同時也積累了大量的成功案例。在互聯(lián)網領域,MySQL成為了絕對靠前的王者,毫不夸張的說,MySQL為互聯(lián)網的發(fā)展做出了卓越的貢獻。 在90年代,一個網站的訪問量一般都不大,用單個數據庫完全可以輕松應付。在那個時候,更多的都是靜態(tài)網頁,動態(tài)交互類型的網站不多。 到了最近10年,網站開始快速發(fā)展?;鸨恼搲?、博客、sns、微博逐漸引領web領域的潮流。在初期,論壇的流量其實也不大,如果你接觸網絡比較早,你可能還記得那個時候還有文本型存儲的論壇程序,可以想象一般的論壇的流量有多大。 Memcached+MySQL 后來,隨著訪問量的上升,幾乎大部分使用MySQL架構的網站在數據庫上都開始出現了性能問題,web程序不再僅僅專注在功能上,同時也在追求性能。程序員們開始大量的使用緩存技術來緩解數據庫的壓力,優(yōu)化數據庫的結構和索引。開始比較流行的是通過文件緩存來緩解數據庫壓力,但是當訪問量繼續(xù)增大的時候,多臺web機器通過文件緩存不能共享,大量的小文件緩存也帶了了比較高的IO壓力。在這個時候,Memcached就自然的成為一個非常時尚的技術產品。 Memcached作為一個獨立的分布式的緩存服務器,為多個web服務器提供了一個共享的高性能緩存服務,在Memcached服務器上,又發(fā)展了根據hash算法來進行多臺Memcached緩存服務的擴展,然后又出現了一致性hash來解決增加或減少緩存服務器導致重新hash帶來的大量緩存失效的弊端。當時,如果你去面試,你說你有Memcached經驗,肯定會加分的。 Mysql主從讀寫分離 由于數據庫的寫入壓力增加,Memcached只能緩解數據庫的讀取壓力。讀寫集中在一個數據庫上讓數據庫不堪重負,大部分網站開始使用主從復制技術來達到讀寫分離,以提高讀寫性能和讀庫的可擴展性。Mysql的master-slave模式成為這個時候的網站標配了。 分表分庫隨著web2.0的繼續(xù)高速發(fā)展,在Memcached的高速緩存,MySQL的主從復制,讀寫分離的基礎之上,這時MySQL主庫的寫壓力開始出現瓶頸,而數據量的持續(xù)猛增,由于MyISAM使用表鎖,在高并發(fā)下會出現嚴重的鎖問題,大量的高并發(fā)MySQL應用開始使用InnoDB引擎代替MyISAM。同時,開始流行使用分表分庫來緩解寫壓力和數據增長的擴展問題。這個時候,分表分庫成了一個熱門技術,是面試的熱門問題也是業(yè)界討論的熱門技術問題。也就在這個時候,MySQL推出了還不太穩(wěn)定的表分區(qū),這也給技術實力一般的公司帶來了希望。雖然MySQL推出了MySQL Cluster集群,但是由于在互聯(lián)網幾乎沒有成功案例,性能也不能滿足互聯(lián)網的要求,只是在高可靠性上提供了非常大的保證。 MySQL的擴展性瓶頸 在互聯(lián)網,大部分的MySQL都應該是IO密集型的,事實上,如果你的MySQL是個CPU密集型的話,那么很可能你的MySQL設計得有性能問題,需要優(yōu)化了。大數據量高并發(fā)環(huán)境下的MySQL應用開發(fā)越來越復雜,也越來越具有技術挑戰(zhàn)性。分表分庫的規(guī)則把握都是需要經驗的。雖然有像淘寶這樣技術實力強大的公司開發(fā)了透明的中間件層來屏蔽開發(fā)者的復雜性,但是避免不了整個架構的復雜性。分庫分表的子庫到一定階段又面臨擴展問題。還有就是需求的變更,可能又需要一種新的分庫方式。 MySQL數據庫也經常存儲一些大文本字段,導致數據庫表非常的大,在做數據庫恢復的時候就導致非常的慢,不容易快速恢復數據庫。比如1000萬4KB大小的文本就接近40GB的大小,如果能把這些數據從MySQL省去,MySQL將變得非常的小。 關系數據庫很強大,但是它并不能很好的應付所有的應用場景。MySQL的擴展性差(需要復雜的技術來實現),大數據下IO壓力大,表結構更改困難,正是當前使用MySQL的開發(fā)人員面臨的問題。 NOSQL的優(yōu)勢易擴展NoSQL數據庫種類繁多,但是一個共同的特點都是去掉關系數據庫的關系型特性。數據之間無關系,這樣就非常容易擴展。也無形之間,在架構的層面上帶來了可擴展的能力。 大數據量,高性能 NoSQL數據庫都具有非常高的讀寫性能,尤其在大數據量下,同樣表現優(yōu)秀。這得益于它的無關系性,數據庫的結構簡單。一般MySQL使用Query Cache,每次表的更新Cache就失效,是一種大粒度的Cache,在針對web2.0的交互頻繁的應用,Cache性能不高。而NoSQL的Cache是記錄級的,是一種細粒度的Cache,所以NoSQL在這個層面上來說就要性能高很多了。 靈活的數據模型 NoSQL無需事先為要存儲的數據建立字段,隨時可以存儲自定義的數據格式。而在關系數據庫里,增刪字段是一件非常麻煩的事情。如果是非常大數據量的表,增加字段簡直就是一個噩夢。這點在大數據量的web2.0時代尤其明顯。 高可用NoSQL在不太影響性能的情況,就可以方便的實現高可用的架構。比如Cassandra,HBase模型,通過復制模型也能實現高可用。 總結NoSQL數據庫的出現,彌補了關系數據(比如MySQL)在某些方面的不足,在某些方面能極大的節(jié)省開發(fā)成本和維護成本。 MySQL和NoSQL都有各自的特點和使用的應用場景,兩者的緊密結合將會給web2.0的數據庫發(fā)展帶來新的思路。讓關系數據庫關注在關系上,NoSQL關注在存儲上。


文章題目:nosql大數據量,進行數據管理的nosql
轉載來于:http://weahome.cn/article/hccdhg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部