欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

nosql英文輪文,數(shù)據(jù)庫nosql中文意思

分布式系統(tǒng)領(lǐng)域有哪些經(jīng)典論文

分布式系統(tǒng)在互聯(lián)網(wǎng)時代,尤其是大數(shù)據(jù)時代到來之后,成為了每個程序員的必備技能之一。分布式系統(tǒng)從上個世紀(jì)80年代就開始有了不少出色的研究和論文,我在這里只列舉最近15年范圍以內(nèi)我覺得有重大影響意義的15篇論文(15 within 15)。

創(chuàng)新互聯(lián)公司專注于成都做網(wǎng)站、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、網(wǎng)站制作、網(wǎng)站開發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點出發(fā),讓客戶在網(wǎng)絡(luò)營銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對待客戶,用專業(yè)的服務(wù)創(chuàng)造價值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。

1. The Google File System: 這是分布式文件系統(tǒng)領(lǐng)域劃時代意義的論文,文中的多副本機(jī)制、控制流與數(shù)據(jù)流隔離和追加寫模式等概念幾乎成為了分布式文件系統(tǒng)領(lǐng)域的標(biāo)準(zhǔn),其影響之深遠(yuǎn)通過其5000+的引用就可見一斑了,Apache Hadoop鼎鼎大名的HDFS就是GFS的模仿之作;

2. MapReduce: Simplified Data Processing on Large Clusters:這篇也是Google的大作,通過Map和Reduce兩個操作,大大簡化了分布式計算的復(fù)雜度,使得任何需要的程序員都可以編寫分布式計算程序,其中使用到的技術(shù)值得我們好好學(xué)習(xí):簡約而不簡單!Hadoop也根據(jù)這篇論文做了一個開源的MapReduce;

3. Bigtable: A Distributed Storage System for Structured Data:Google在NoSQL領(lǐng)域的分布式表格系統(tǒng),LSM樹的最好使用范例,廣泛使用到了網(wǎng)頁索引存儲、YouTube數(shù)據(jù)管理等業(yè)務(wù),Hadoop對應(yīng)的開源系統(tǒng)叫HBase(我在前公司任職時也開發(fā)過一個相應(yīng)的系統(tǒng)叫BladeCube,性能較HBase有數(shù)倍提升);

4. The Chubby lock service for loosely-coupled distributed systems:Google的分布式鎖服務(wù),基于Paxos協(xié)議,這篇文章相比于前三篇可能知道的人就少了,但是其對應(yīng)的開源系統(tǒng)zookeeper幾乎是每個后端同學(xué)都接觸過,其影響力其實不亞于前三篇;

5. Finding a Needle in Haystack: Facebook's Photo Storage:facebook的在線圖片存儲系統(tǒng),目前來看是對小文件存儲的最好解決方案之一,facebook目前通過該系統(tǒng)存儲了超過300PB的數(shù)據(jù),一個師兄就在這個團(tuán)隊工作,聽過很多有意思的事情(我在前公司的時候開發(fā)過一個類似的系統(tǒng)pallas,不僅支持副本,還支持Reed Solomon-LRC,性能也有較多優(yōu)化);

6. Windows Azure Storage: a highly available cloud storage service with strong consistency:windows azure的總體介紹文章,是一篇很好的描述云存儲架構(gòu)的論文,其中通過分層來同時保證可用性和一致性的思路在現(xiàn)實工作中也給了我很多啟發(fā);

7. GraphLab: A New Framework for Parallel Machine Learning:CMU基于圖計算的分布式機(jī)器學(xué)習(xí)框架,目前已經(jīng)成立了專門的商業(yè)公司,在分布式機(jī)器學(xué)習(xí)上很有兩把刷子,其單機(jī)版的GraphChi在百萬維度的矩陣分解都只需要2~3分鐘;

8. Resilient Distributed Datasets: A Fault-Tolerant Abstraction for

In-Memory Cluster Computing:其實就是 Spark,目前這兩年最流行的內(nèi)存計算模式,通過RDD和lineage大大簡化了分布式計算框架,通常幾行scala代碼就可以搞定原來上千行MapReduce代碼才能搞定的問題,大有取代MapReduce的趨勢;

9. Scaling Distributed Machine Learning with the Parameter Server:百度少帥李沐大作,目前大規(guī)模分布式學(xué)習(xí)各家公司主要都是使用ps,ps具備良好的可擴(kuò)展性,使得大數(shù)據(jù)時代的大規(guī)模分布式學(xué)習(xí)成為可能,包括Google的深度學(xué)習(xí)模型也是通過ps訓(xùn)練實現(xiàn),是目前最流行的分布式學(xué)習(xí)框架,豆瓣的開源系統(tǒng)paracell也是ps的一個實現(xiàn);

10. Dremel: Interactive Analysis of Web-Scale Datasets:Google的大規(guī)模(近)實時數(shù)據(jù)分析系統(tǒng),號稱可以在3秒相應(yīng)1PB數(shù)據(jù)的分析請求,內(nèi)部使用到了查詢樹來優(yōu)化分析速度,其開源實現(xiàn)為Drill,在工業(yè)界對實時數(shù)據(jù)分析也是比價有影響力;

11. Pregel: a system for large-scale graph processing: Google的大規(guī)模圖計算系統(tǒng),相當(dāng)長一段時間是Google PageRank的主要計算系統(tǒng),對開源的影響也很大(包括GraphLab和GraphChi);

12. Spanner: Google's Globally-Distributed Database:這是第一個全球意義上的分布式數(shù)據(jù)庫,Google的出品。其中介紹了很多一致性方面的設(shè)計考慮,簡單起見,還采用了GPS和原子鐘確保時間最大誤差在20ns以內(nèi),保證了事務(wù)的時間序,同樣在分布式系統(tǒng)方面具有很強(qiáng)的借鑒意義;

13. Dynamo: Amazon’s Highly Available Key-value Store:Amazon的分布式NoSQL數(shù)據(jù)庫,意義相當(dāng)于BigTable對于Google,于BigTable不同的是,Dynamo保證CAP中的AP,C通過vector clock做弱保證,對應(yīng)的開源系統(tǒng)為Cassandra;

14. S4: Distributed Stream Computing Platform:Yahoo出品的流式計算系統(tǒng),目前最流行的兩大流式計算系統(tǒng)之一(另一個是storm),Yahoo的主要廣告計算平臺;

15. Storm @Twitter:這個系統(tǒng)不多說,開啟了流式計算的新紀(jì)元,幾乎是所有公司流式計算的首選,絕對值得關(guān)注;

大數(shù)據(jù)時代數(shù)據(jù)管理方式研究

大數(shù)據(jù)時代數(shù)據(jù)管理方式研究

1數(shù)據(jù)管理技術(shù)的回顧

數(shù)據(jù)管理技術(shù)主要經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。隨著數(shù)據(jù)應(yīng)用領(lǐng)域的不斷擴(kuò)展,數(shù)據(jù)管理所處的環(huán)境也越來越復(fù)雜,目前廣泛流行的數(shù)據(jù)庫技術(shù)開始暴露出許多弱點,面臨著許多新的挑戰(zhàn)。

1.1 人工管理階段

20 世紀(jì) 50 年代中期,計算機(jī)主要用于科學(xué)計算。當(dāng)時沒有磁盤等直接存取設(shè)備,只有紙帶、卡片、磁帶等外存,也沒有操作系統(tǒng)和管理數(shù)據(jù)的專門軟件。該階段管理的數(shù)據(jù)不保存、由應(yīng)用程序管理數(shù)據(jù)、數(shù)據(jù)不共享和數(shù)據(jù)不具有獨(dú)立性等特點。

1.2 文件系統(tǒng)階段

20 世紀(jì) 50 年代后期到 60 年代中期,隨著計算機(jī)硬件和軟件的發(fā)展,磁盤、磁鼓等直接存取設(shè)備開始普及,這一時期的數(shù)據(jù)處理系統(tǒng)是把計算機(jī)中的數(shù)據(jù)組織成相互獨(dú)立的被命名的數(shù)據(jù)文件,并可按文件的名字來進(jìn)行訪問,對文件中的記錄進(jìn)行存取的數(shù)據(jù)管理技術(shù)。數(shù)據(jù)可以長期保存在計算機(jī)外存上,可以對數(shù)據(jù)進(jìn)行反復(fù)處理,并支持文件的查詢、修改、插入和刪除等操作。其數(shù)據(jù)面向特定的應(yīng)用程序,因此,數(shù)據(jù)共享性、獨(dú)立性差,且冗余度大,管理和維護(hù)的代價也很大。

1.3數(shù)據(jù)庫階段

20 世紀(jì) 60 年代后期以來,計算機(jī)性能得到進(jìn)一步提高,更重要的是出現(xiàn)了大容量磁盤,存儲容量大大增加且價格下降。在此基礎(chǔ)上,才有可能克服文件系統(tǒng)管理數(shù)據(jù)時的不足,而滿足和解決實際應(yīng)用中多個用戶、多個應(yīng)用程序共享數(shù)據(jù)的要求,從而使數(shù)據(jù)能為盡可能多的應(yīng)用程序服務(wù),這就出現(xiàn)了數(shù)據(jù)庫這樣的數(shù)據(jù)管理技術(shù)。數(shù)據(jù)庫的特點是數(shù)據(jù)不再只針對某一個特定的應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)性,共享性高,冗余度減小,具有一定的程序與數(shù)據(jù)之間的獨(dú)立性,并且對數(shù)據(jù)進(jìn)行統(tǒng)一的控制。

2大數(shù)據(jù)時代的數(shù)據(jù)管理技術(shù)

大數(shù)據(jù)(big data),或稱巨量資料,指的是所涉及的資料量規(guī)模巨大到無法透過目前主流軟件工具,在合理時間內(nèi)達(dá)到擷取、管理、處理、并整理成為幫助企業(yè)經(jīng)營決策更積極目的的資訊。大數(shù)據(jù)有 3 個 V,一是大量化(Volume),數(shù)據(jù)量是持續(xù)快速增加的,從 TB級別,躍升到 PB 級別;二是多樣化(Variety),數(shù)據(jù)類型多樣化,結(jié)構(gòu)化數(shù)據(jù)已被視為小菜一碟,圖片、音頻、視頻等非結(jié)構(gòu)化數(shù)據(jù)正以傳統(tǒng)結(jié)構(gòu)化數(shù)據(jù)增長的兩倍速快速創(chuàng)建;三是快速化 (Velocity),數(shù)據(jù)生成速度快,也就需要快速的處理能力,因此,產(chǎn)生了“1 秒定律”,就是說一般要在秒級時間范圍內(nèi)給出分析結(jié)果,時間太長就失去價值了,這個速度要求是大數(shù)據(jù)處理技術(shù)和傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)最大的區(qū)別。

2.1 關(guān)系型數(shù)據(jù)庫(RDBMS)

20 世紀(jì) 70 年代初,IBM 工程師 Codd 發(fā)表了著名的論文“A Relational Model of Data for Large Shared DataBanks”,標(biāo)志著關(guān)系數(shù)據(jù)庫時代來臨。關(guān)系數(shù)據(jù)庫的理論基礎(chǔ)是關(guān)系模型,是借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù),現(xiàn)實世界中的實體以及實體之間的聯(lián)系非常容易用關(guān)系模型來表示。容易理解的模型、容易掌握的查詢語言、高效的優(yōu)化器、成熟的技術(shù)和產(chǎn)品,使得關(guān)系數(shù)據(jù)庫占據(jù)了數(shù)據(jù)庫市場的絕對的統(tǒng)治地位。隨著互聯(lián)網(wǎng) web2.0 網(wǎng)站的興起,半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的大量涌現(xiàn),傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)付 web2.0 網(wǎng)站特別是超大規(guī)模和高并發(fā)的 SNS(全稱 Social Networking Services,即社會性網(wǎng)絡(luò)服務(wù)) 類型的 web2.0 純動態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題。

2.2 noSQL數(shù)據(jù)庫

順應(yīng)時代發(fā)展的需要產(chǎn)生了 noSQL數(shù)據(jù)庫技術(shù),其主要特點是采用與關(guān)系模型不同的數(shù)據(jù)模型,當(dāng)前熱門的 noSQL數(shù)據(jù)庫系統(tǒng)可以說是蓬勃發(fā)展、異軍突起,很多公司都熱情追捧之,如:由 Google 公司提出的 Big Table 和 MapReduce 以及 IBM 公司提出的 Lotus Notes 等。不管是那個公司的 noSQL數(shù)據(jù)庫都圍繞著大數(shù)據(jù)的 3 個 V,目的就是解決大數(shù)據(jù)的 3個 V 問題。因此,在設(shè)計 noSQL 時往往考慮以下幾個原則,首先,采用橫向擴(kuò)展的方式,通過并行處理技術(shù)對數(shù)據(jù)進(jìn)行劃分并進(jìn)行并行處理,以獲得高速的讀寫速度;其次,解決數(shù)據(jù)類型從以結(jié)構(gòu)化數(shù)據(jù)為主轉(zhuǎn)向結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化三者的融合的問題;再次,放松對數(shù)據(jù)的 ACID 一致性約束,允許數(shù)據(jù)暫時出現(xiàn)不一致的情況,接受最終一致性;最后,對各個分區(qū)數(shù)據(jù)進(jìn)行備份(一般是 3 份),應(yīng)對節(jié)點失敗的狀況等。

對數(shù)據(jù)的應(yīng)用可以分為分析型應(yīng)用和操作型應(yīng)用,分析型應(yīng)用主要是指對大量數(shù)據(jù)進(jìn)行分類、聚集、匯總,最后獲得數(shù)據(jù)量相對小的分析結(jié)果;操作型應(yīng)用主要是指對數(shù)據(jù)進(jìn)行增加、刪除、修改和查詢以及簡單的匯總操作,涉及的數(shù)據(jù)量一般比較少,事務(wù)執(zhí)行時間一般比較短。目前數(shù)據(jù)庫可分為關(guān)系數(shù)據(jù)庫和 noSQL數(shù)據(jù)庫,根據(jù)數(shù)據(jù)應(yīng)用的要求,再結(jié)合目前數(shù)據(jù)庫的種類,所以目前數(shù)據(jù)庫管理方式主要有以下 4 類。

(1)面向操作型的關(guān)系數(shù)據(jù)庫技術(shù)。

首先,傳統(tǒng)數(shù)據(jù)庫廠商提供的基于行存儲的關(guān)系數(shù)據(jù)庫系統(tǒng),如 DB2、Oracle、SQL Server 等,以其高度的一致性、精確性、系統(tǒng)可恢復(fù)性,在事務(wù)處理方面仍然是核心引擎。其次,面向?qū)崟r計算的內(nèi)存數(shù)據(jù)庫系統(tǒng),如 Hana、Timesten、Altibase 等通過把對數(shù)據(jù)并發(fā)控制、查詢和恢復(fù)等操作控制在內(nèi)存內(nèi)部進(jìn)行,所以獲得了非常高的性能,在很多特定領(lǐng)域如電信、證券、網(wǎng)管等得到普遍應(yīng)用。另外,以 VoltDB、Clustrix 和NuoDB 為代表的 new SQL 宣稱能夠在保持 ACDI 特性的同時提高了事務(wù)處理性能 50 倍 ~60 倍。

(2)面向分析型的關(guān)系數(shù)據(jù)庫技術(shù)。

首先,TeraData 是數(shù)據(jù)倉庫領(lǐng)域的領(lǐng)頭羊,Teradata 在整體上是按 Shared Nothing 架構(gòu)體系進(jìn)行組織的,定位就是大型數(shù)據(jù)倉庫系統(tǒng),支持較高的擴(kuò)展性。其次,面向分析型應(yīng)用,列存儲數(shù)據(jù)庫的研究形成了另一個重要的潮流。列存儲數(shù)據(jù)庫以其高效的壓縮、更高的 I/O 效率等特點,在分析型應(yīng)用領(lǐng)域獲得了比行存儲數(shù)據(jù)庫高得多的性能。如:MonetDB 和 Vertica是一個典型的基于列存儲技術(shù)的數(shù)據(jù)庫系統(tǒng)。

(3)面向操作型的 noSQL 技術(shù)。

有些操作型應(yīng)用不受 ACID 高度一致性約束,但對大數(shù)據(jù)處理需要處理的數(shù)據(jù)量非常大,對速度性能要求也非常高,這樣就必須依靠大規(guī)模集群的并行處理能力來實現(xiàn)數(shù)據(jù)處理,弱一致性或最終一致性就可以了。這時,操作型 noSQL數(shù)據(jù)庫的優(yōu)點就可以發(fā)揮的淋漓盡致了。如,Hbase 一天就可以有超過 200 億個到達(dá)硬盤的讀寫操作,實現(xiàn)對大數(shù)據(jù)的處理。另外,noSQL數(shù)據(jù)庫是一個數(shù)據(jù)模型靈活、支持多樣數(shù)據(jù)類型,如對圖數(shù)據(jù)建模、存儲和分析,其性能、擴(kuò)展性是關(guān)系數(shù)據(jù)庫無法比擬的。

(4)面向分析型的 noSQL 技術(shù)。

面向分析型應(yīng)用的 noSQL 技術(shù)主要依賴于Hadoop 分布式計算平臺,Hadoop 是一個分布式計算平臺,以 HDFS 和 Map Reduce 為用戶提供系統(tǒng)底層細(xì)節(jié)透明的分布式基礎(chǔ)架構(gòu)。《Hadoop 經(jīng)典實踐染技巧》傳統(tǒng)的數(shù)據(jù)庫廠商 Microsoft,Oracle,SAS,IBM 等紛紛轉(zhuǎn)向 Hadoop 的研究,如微軟公司關(guān)閉 Dryad 系統(tǒng),全力投入 Map Reduce 的研發(fā),Oracle 在 2011 年下半年發(fā)布 Big Plan 戰(zhàn)略計劃,全面進(jìn)軍大數(shù)據(jù)處理領(lǐng)域,IBM 則早已捷足先登“,沃森(Watson)”計算機(jī)就是基于 Hadoop 技術(shù)開發(fā)的產(chǎn)物,同時 IBM 發(fā)布了 BigInsights 計劃,基于 Hadoop,Netezza 和 SPSS(統(tǒng)計分析、數(shù)據(jù)挖掘軟件)等技術(shù)和產(chǎn)品構(gòu)建大數(shù)據(jù)分析處理的技術(shù)框架。同時也涌現(xiàn)出一批新公司來研究Hadoop 技術(shù),如 Cloudera、MapRKarmashpere 等。

3數(shù)據(jù)管理方式的展望

通過以上分析,可以看出關(guān)系數(shù)據(jù)庫的 ACID 強(qiáng)調(diào)數(shù)據(jù)一致性通常指關(guān)聯(lián)數(shù)據(jù)之間的邏輯關(guān)系是否正確和完整,而對于很多互聯(lián)網(wǎng)應(yīng)用來說,對這一致性和隔離性的要求可以降低,而可用性的要求則更為明顯,此時就可以采用 noSQL 的兩種弱一致性的理論 BASE 和 CAP.關(guān)系數(shù)據(jù)庫和 noSQL數(shù)據(jù)庫并不是想到對立的矛盾體,而是可以相互補(bǔ)充的,根據(jù)不同需求使用不同的技術(shù),甚至二者可以共同存在,互不影響。最近幾年,以 Spanner 為代表新型數(shù)據(jù)庫的出現(xiàn),給數(shù)據(jù)庫領(lǐng)域注入新鮮血液,這就是融合了一致性和可用性的 newSQL,這種新型思維方式或許會是未來大數(shù)據(jù)處理方式的發(fā)展方向。

4 結(jié)束語

隨著云計算、物聯(lián)網(wǎng)等的發(fā)展,數(shù)據(jù)呈現(xiàn)爆炸式的增長,人們正被數(shù)據(jù)洪流所包圍,大數(shù)據(jù)的時代已經(jīng)到來。正確利用大數(shù)據(jù)給人們的生活帶來了極大的便利,但與此同時也給傳統(tǒng)的數(shù)據(jù)管理方式帶來了極大的挑戰(zhàn)。

大數(shù)據(jù)都是需要什么技術(shù)的?

大數(shù)據(jù)技術(shù)龐大復(fù)雜,基礎(chǔ)的技術(shù)包含數(shù)據(jù)的采集、數(shù)據(jù)預(yù)處理、分布式存儲、NoSQL數(shù)據(jù)庫、數(shù)據(jù)倉庫、機(jī)器學(xué)習(xí)、并行計算、可視化等范疇

查詢引擎:Phoenix、Shark、Pig、Hive等

流式計算:storm、Twitter Rainbird等

迭代計算:Apache Hama、Apache Giraph、HaLoop等

離線計算:Hadoop MapReduce、Berkeley Spark等

鍵值存儲:LevelDB、RocksDB、HyperDex、Voldemort等

表格存儲:OceanBase、Amazon SimpleDB、Cassandra、HBase等

文件存儲:CouchDB、MongoDB、HDFS等

資源管理:Twitter Mesos、Hadoop Yarn

NewSQL為何使傳統(tǒng)關(guān)系數(shù)據(jù)庫黯然失色?

傳統(tǒng)數(shù)據(jù)庫仍舊會有一席之地,至于NewSQL的優(yōu)勢又是什么,簡單和大家說說:

首先關(guān)于“中間件+關(guān)系數(shù)據(jù)庫分庫分表”算不算NewSQL分布式數(shù)據(jù)庫問題,國外有篇論文pavlo-newsql-sigmodrec,如果根據(jù)該文中的分類,Spanner、TiDB、OB算是第一種新架構(gòu)型,Sharding-Sphere、Mycat、DRDS等中間件方案算是第二種(文中還有第三種云數(shù)據(jù)庫,本文暫不詳細(xì)介紹)。

基于中間件(包括SDK和Proxy兩種形式)+傳統(tǒng)關(guān)系數(shù)據(jù)庫(分庫分表)模式是不是分布式架構(gòu)?我覺得是的,因為存儲確實也分布式了,也能實現(xiàn)橫向擴(kuò)展。但是不是“偽”分布式數(shù)據(jù)庫?從架構(gòu)先進(jìn)性來看,這么說也有一定道理。

“偽”主要體現(xiàn)在中間件層與底層DB重復(fù)的SQL解析與執(zhí)行計劃生成、存儲引擎基于B+Tree等,這在分布式數(shù)據(jù)庫架構(gòu)中實際上冗余低效的。為了避免引起真?zhèn)畏植际綌?shù)據(jù)庫的口水戰(zhàn),本文中NewSQL數(shù)據(jù)庫特指這種新架構(gòu)NewSQL數(shù)據(jù)庫。

NewSQL數(shù)據(jù)庫相比中間件+分庫分表的先進(jìn)在哪兒?畫一個簡單的架構(gòu)對比圖:

傳統(tǒng)數(shù)據(jù)庫面向磁盤設(shè)計,基于內(nèi)存的存儲管理及并發(fā)控制,不如NewSQL數(shù)據(jù)庫那般高效利用;

中間件模式SQL解析、執(zhí)行計劃優(yōu)化等在中間件與數(shù)據(jù)庫中重復(fù)工作,效率相比較低;

NewSQL數(shù)據(jù)庫的分布式事務(wù)相比于XA進(jìn)行了優(yōu)化,性能更高;

新架構(gòu)NewSQL數(shù)據(jù)庫存儲設(shè)計即為基于paxos(或Raft)協(xié)議的多副本,相比于傳統(tǒng)數(shù)據(jù)庫主從模式(半同步轉(zhuǎn)異步后也存在丟數(shù)問題),在實現(xiàn)了真正的高可用、高可靠(RTO30s,RPO=0);

NewSQL數(shù)據(jù)庫天生支持?jǐn)?shù)據(jù)分片,數(shù)據(jù)的遷移、擴(kuò)容都是自動化的,大大減輕了DBA的工作,同時對應(yīng)用透明,無需在SQL指定分庫分表鍵。

常見NoSQL數(shù)據(jù)庫的應(yīng)用場景是怎么樣的

文檔數(shù)據(jù)庫

源起:受Lotus Notes啟發(fā)。

數(shù)據(jù)模型:包含了key-value的文檔集合

例子:CouchDB, MongoDB

優(yōu)點:數(shù)據(jù)模型自然,編程友好,快速開發(fā),web友好,CRUD。

圖數(shù)據(jù)庫

源起: 歐拉和圖理論。

數(shù)據(jù)模型:節(jié)點和關(guān)系,也可處理鍵值對。

例子:AllegroGraph, InfoGrid, Neo4j

優(yōu)點:解決復(fù)雜的圖問題。

關(guān)系數(shù)據(jù)庫

源起: E. F. Codd 在A Relational Model of Data for Large Shared Data Banks提出的

數(shù)據(jù)模型:各種關(guān)系

例子:VoltDB, Clustrix, MySQL

優(yōu)點:高性能、可擴(kuò)展的OLTP,支持SQL,物化視圖,支持事務(wù),編程友好。

對象數(shù)據(jù)庫

源起:圖數(shù)據(jù)庫研究

數(shù)據(jù)模型:對象

例子:Objectivity, Gemstone

優(yōu)點:復(fù)雜對象模型,快速鍵值訪問,鍵功能訪問,以及圖數(shù)據(jù)庫的優(yōu)點。

Key-Value數(shù)據(jù)庫

源起:Amazon的論文 Dynamo 和 Distributed HashTables。

數(shù)據(jù)模型:鍵值對

例子:Membase, Riak

優(yōu)點:處理大量數(shù)據(jù),快速處理大量讀寫請求。編程友好。

BigTable類型數(shù)據(jù)庫

源起:Google的論文 BigTable。

數(shù)據(jù)模型:列簇,每一行在理論上都是不同的

例子:HBase, Hypertable, Cassandra

優(yōu)點:處理大量數(shù)據(jù),應(yīng)對極高寫負(fù)載,高可用,支持跨數(shù)據(jù)中心, MapReduce。

數(shù)據(jù)結(jié)構(gòu)服務(wù)

源起: ?

數(shù)據(jù)模型:字典操作,lists, sets和字符串值

例子:Redis

優(yōu)點:不同于以前的任何數(shù)據(jù)庫

網(wǎng)格數(shù)據(jù)庫

源起:數(shù)據(jù)網(wǎng)格和元組空間研究。

數(shù)據(jù)模型:基于空間的架構(gòu)

例子:GigaSpaces, Coherence

優(yōu)點:適于事務(wù)處理的高性能和高擴(kuò)展性

什么是NoSQL數(shù)據(jù)庫?

2. 什么是NoSQL?

2.1 NoSQL 概述

NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,

泛指非關(guān)系型的數(shù)據(jù)庫。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫則由于其本身的特點得到了非常迅速的發(fā)展。NoSQL數(shù)據(jù)庫的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重數(shù)據(jù)種類帶來的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題,包括超大規(guī)模數(shù)據(jù)的存儲。

(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數(shù)據(jù))。這些類型的數(shù)據(jù)存儲不需要固定的模式,無需多余操作就可以橫向擴(kuò)展。

2.2 NoSQL代表

MongDB、 Redis、Memcache

3. 關(guān)系型數(shù)據(jù)庫與NoSQL的區(qū)別?

3.1 RDBMS

高度組織化結(jié)構(gòu)化數(shù)據(jù)

結(jié)構(gòu)化查詢語言(SQL)

數(shù)據(jù)和關(guān)系都存儲在單獨(dú)的表中。

數(shù)據(jù)操縱語言,數(shù)據(jù)定義語言

嚴(yán)格的一致性

基礎(chǔ)事務(wù)

ACID

關(guān)系型數(shù)據(jù)庫遵循ACID規(guī)則

事務(wù)在英文中是transaction,和現(xiàn)實世界中的交易很類似,它有如下四個特性:

A (Atomicity) 原子性

原子性很容易理解,也就是說事務(wù)里的所有操作要么全部做完,要么都不做,事務(wù)成功的條件是事務(wù)里的所有操作都成功,只要有一個操作失敗,整個事務(wù)就失敗,需要回滾。比如銀行轉(zhuǎn)賬,從A賬戶轉(zhuǎn)100元至B賬戶,分為兩個步驟:1)從A賬戶取100元;2)存入100元至B賬戶。這兩步要么一起完成,要么一起不完成,如果只完成第一步,第二步失敗,錢會莫名其妙少了100元。

C (Consistency) 一致性

一致性也比較容易理解,也就是說數(shù)據(jù)庫要一直處于一致的狀態(tài),事務(wù)的運(yùn)行不會改變數(shù)據(jù)庫原本的一致性約束。

I (Isolation) 獨(dú)立性

所謂的獨(dú)立性是指并發(fā)的事務(wù)之間不會互相影響,如果一個事務(wù)要訪問的數(shù)據(jù)正在被另外一個事務(wù)修改,只要另外一個事務(wù)未提交,它所訪問的數(shù)據(jù)就不受未提交事務(wù)的影響。比如現(xiàn)有有個交易是從A賬戶轉(zhuǎn)100元至B賬戶,在這個交易還未完成的情況下,如果此時B查詢自己的賬戶,是看不到新增加的100元的

D (Durability) 持久性

持久性是指一旦事務(wù)提交后,它所做的修改將會永久的保存在數(shù)據(jù)庫上,即使出現(xiàn)宕機(jī)也不會丟失。

3.2 NoSQL

代表著不僅僅是SQL

沒有聲明性查詢語言

沒有預(yù)定義的模式

鍵 - 值對存儲,列存儲,文檔存儲,圖形數(shù)據(jù)庫

最終一致性,而非ACID屬性

非結(jié)構(gòu)化和不可預(yù)知的數(shù)據(jù)

CAP定理

高性能,高可用性和可伸縮性

分布式數(shù)據(jù)庫中的CAP原理(了解)

CAP定理:

Consistency(一致性), 數(shù)據(jù)一致更新,所有數(shù)據(jù)變動都是同步的

Availability(可用性), 好的響應(yīng)性能

Partition tolerance(分區(qū)容錯性) 可靠性

P: 系統(tǒng)中任意信息的丟失或失敗不會影響系統(tǒng)的繼續(xù)運(yùn)作。

定理:任何分布式系統(tǒng)只可同時滿足二點,沒法三者兼顧。

CAP理論的核心是:一個分布式系統(tǒng)不可能同時很好的滿足一致性,可用性和分區(qū)容錯性這三個需求,

因此,根據(jù) CAP 原理將 NoSQL 數(shù)據(jù)庫分成了滿足 CA 原則、滿足 CP 原則和滿足 AP 原則三 大類:

CA - 單點集群,滿足一致性,可用性的系統(tǒng),通常在可擴(kuò)展性上不太強(qiáng)大。

CP - 滿足一致性,分區(qū)容忍性的系統(tǒng),通常性能不是特別高。

AP - 滿足可用性,分區(qū)容忍性的系統(tǒng),通常可能對一致性要求低一些。

CAP理論就是說在分布式存儲系統(tǒng)中,最多只能實現(xiàn)上面的兩點。

而由于當(dāng)前的網(wǎng)絡(luò)硬件肯定會出現(xiàn)延遲丟包等問題,所以分區(qū)容忍性是我們必須需要實現(xiàn)的。

所以我們只能在一致性和可用性之間進(jìn)行權(quán)衡,沒有NoSQL系統(tǒng)能同時保證這三點。

說明:C:強(qiáng)一致性 A:高可用性 P:分布式容忍性

舉例:

CA:傳統(tǒng)Oracle數(shù)據(jù)庫

AP:大多數(shù)網(wǎng)站架構(gòu)的選擇

CP:Redis、Mongodb

注意:分布式架構(gòu)的時候必須做出取舍。

一致性和可用性之間取一個平衡。多余大多數(shù)web應(yīng)用,其實并不需要強(qiáng)一致性。

因此犧牲C換取P,這是目前分布式數(shù)據(jù)庫產(chǎn)品的方向。

4. 當(dāng)下NoSQL的經(jīng)典應(yīng)用

當(dāng)下的應(yīng)用是 SQL 與 NoSQL 一起使用的。

代表項目:阿里巴巴商品信息的存放。

去 IOE 化。

ps:I 是指 IBM 的小型機(jī),很貴的,好像好幾萬一臺;O 是指 Oracle 數(shù)據(jù)庫,也很貴的,好幾萬呢;M 是指 EMC 的存儲設(shè)備,也很貴的。

難點:

數(shù)據(jù)類型多樣性。

數(shù)據(jù)源多樣性和變化重構(gòu)。

數(shù)據(jù)源改造而服務(wù)平臺不需要大面積重構(gòu)。

網(wǎng)頁名稱:nosql英文輪文,數(shù)據(jù)庫nosql中文意思
標(biāo)題鏈接:http://chinadenli.net/article45/dseehei.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作動態(tài)網(wǎng)站標(biāo)簽優(yōu)化微信公眾號網(wǎng)站排名建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)