NoSQL(NoSQL

創(chuàng)新互聯主要從事成都網站建設、做網站、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務馬邊彝族,10年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220
=
Not
Only
SQL
),意即“不僅僅是SQL”,是一項全新的數據庫革命性運動,早期就有人提出,發(fā)展至2009年趨勢越發(fā)高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對于鋪天蓋地的關系型數據庫運用,這一概念無疑是一種全新的思維的注入。
隨著大數據的不斷發(fā)展,非關系型的數據庫現在成了一個極其熱門的新領域,非關系數據庫產品的發(fā)展非常迅速。現今的計算機體系結構在數據存儲方面要有龐大的水平擴展性,而NoSQL也正是致力于改變這一現狀。目前Google的
BigTable和Amazon
的Dynamo使用的就是NoSQL型數據庫,本文介紹了10種出色的NoSQL數據庫。
雖然NoSQL流行語火起來才短短一年的時間,但是不可否認,現在已經開始了第二代運動。盡管早期的堆棧代碼只能算是一種實驗,然而現在的系統已經更加的成熟、穩(wěn)定。不過現在也面臨著一個嚴酷的事實:技術越來越成熟——以至于原來很好的NoSQL數據存儲不得不進行重寫,也有少數人認為這就是所謂的2.0版本。這里列出一些比較知名的NoSQL工具,可以為大數據建立快速、可擴展的存儲庫。
給一個地址吧
NoSQL,泛指非關系型的數據庫。隨著互聯網web2.0網站的興起,傳統的關系數據庫在應付web2.0網站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動態(tài)網站已經顯得力不從心,暴露了很多難以克服的問題,而非關系型的數據庫則由于其本身的特點得到了非常迅速的發(fā)展。NoSQL數據庫的產生就是為了解決大規(guī)模數據集合多重數據種類帶來的挑戰(zhàn),尤其是大數據應用難題。
雖然NoSQL流行語火起來才短短一年的時間,但是不可否認,現在已經開始了第二代運動。盡管早期的堆棧代碼只能算是一種實驗,然而現在的系統已經更加的成熟、穩(wěn)定。不過現在也面臨著一個嚴酷的事實:技術越來越成熟——以至于原來很好的NoSQL數據存儲不得不進行重寫,也有少數人認為這就是所謂的2.0版本。這里列出一些比較知名的工具,可以為大數據建立快速、可擴展的存儲庫。
NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,是一項全新的數據庫革命性運動,早期就有人提出,發(fā)展至2009年趨勢越發(fā)高漲。NoSQL的擁護者們提倡運用非關系型的數據存儲,相對于鋪天蓋地的關系型數據庫運用,這一概念無疑是一種全新的思維的注入。
對于NoSQL并沒有一個明確的范圍和定義,但是他們都普遍存在下面一些共同特征:
不需要預定義模式:不需要事先定義數據模式,預定義表結構。數據中的每條記錄都可能有不同的屬性和格式。當插入數據時,并不需要預先定義它們的模式。
無共享架構:相對于將所有數據存儲的存儲區(qū)域網絡中的全共享架構。NoSQL往往將數據劃分后存儲在各個本地服務器上。因為從本地磁盤讀取數據的性能往往好于通過網絡傳輸讀取數據的性能,從而提高了系統的性能。
彈性可擴展:可以在系統運行的時候,動態(tài)增加或者刪除結點。不需要停機維護,數據可以自動遷移。
分區(qū):相對于將數據存放于同一個節(jié)點,NoSQL數據庫需要將數據進行分區(qū),將記錄分散在多個節(jié)點上面。并且通常分區(qū)的同時還要做復制。這樣既提高了并行性能,又能保證沒有單點失效的問題。
異步復制:和RAID存儲系統不同的是,NoSQL中的復制,往往是基于日志的異步復制。這樣,數據就可以盡快地寫入一個節(jié)點,而不會被網絡傳輸引起遲延。缺點是并不總是能保證一致性,這樣的方式在出現故障的時候,可能會丟失少量的數據。
BASE:相對于事務嚴格的ACID特性,NoSQL數據庫保證的是BASE特性。BASE是最終一致性和軟事務。
NoSQL數據庫并沒有一個統一的架構,兩種NoSQL數據庫之間的不同,甚至遠遠超過兩種關系型數據庫的不同。可以說,NoSQL各有所長,成功的NoSQL必然特別適用于某些場合或者某些應用,在這些場合中會遠遠勝過關系型數據庫和其他的NoSQL。
大數據技術發(fā)展史:大數據的前世今生
今天我們常說的大數據技術,其實起源于Google在2004年前后發(fā)表的三篇論文,也就是我們經常聽到的“三駕馬車”,分別是分布式文件系統GFS、大數據分布式計算框架MapReduce和NoSQL數據庫系統BigTable。
你知道,搜索引擎主要就做兩件事情,一個是網頁抓取,一個是索引構建,而在這個過程中,有大量的數據需要存儲和計算。這“三駕馬車”其實就是用來解決這個問題的,你從介紹中也能看出來,一個文件系統、一個計算框架、一個數據庫系統。
現在你聽到分布式、大數據之類的詞,肯定一點兒也不陌生。但你要知道,在2004年那會兒,整個互聯網還處于懵懂時代,Google發(fā)布的論文實在是讓業(yè)界為之一振,大家恍然大悟,原來還可以這么玩。
因為那個時間段,大多數公司的關注點其實還是聚焦在單機上,在思考如何提升單機的性能,尋找更貴更好的服務器。而Google的思路是部署一個大規(guī)模的服務器集群,通過分布式的方式將海量數據存儲在這個集群上,然后利用集群上的所有機器進行數據計算。 這樣,Google其實不需要買很多很貴的服務器,它只要把這些普通的機器組織到一起,就非常厲害了。
當時的天才程序員,也是Lucene開源項目的創(chuàng)始人Doug Cutting正在開發(fā)開源搜索引擎Nutch,閱讀了Google的論文后,他非常興奮,緊接著就根據論文原理初步實現了類似GFS和MapReduce的功能。
兩年后的2006年,Doug Cutting將這些大數據相關的功能從Nutch中分離了出來,然后啟動了一個獨立的項目專門開發(fā)維護大數據技術,這就是后來赫赫有名的Hadoop,主要包括Hadoop分布式文件系統HDFS和大數據計算引擎MapReduce。
當我們回顧軟件開發(fā)的歷史,包括我們自己開發(fā)的軟件,你會發(fā)現,有的軟件在開發(fā)出來以后無人問津或者寥寥數人使用,這樣的軟件其實在所有開發(fā)出來的軟件中占大多數。而有的軟件則可能會開創(chuàng)一個行業(yè),每年創(chuàng)造數百億美元的價值,創(chuàng)造百萬計的就業(yè)崗位,這些軟件曾經是Windows、Linux、Java,而現在這個名單要加上Hadoop的名字。
如果有時間,你可以簡單瀏覽下Hadoop的代碼,這個純用Java編寫的軟件其實并沒有什么高深的技術難點,使用的也都是一些最基礎的編程技巧,也沒有什么出奇之處,但是它卻給社會帶來巨大的影響,甚至帶動一場深刻的科技革命,推動了人工智能的發(fā)展與進步。
我覺得,我們在做軟件開發(fā)的時候,也可以多思考一下,我們所開發(fā)軟件的價值點在哪里?真正需要使用軟件實現價值的地方在哪里?你應該關注業(yè)務、理解業(yè)務,有價值導向,用自己的技術為公司創(chuàng)造真正的價值,進而實現自己的人生價值。而不是整天埋頭在需求說明文檔里,做一個沒有思考的代碼機器人。
Hadoop發(fā)布之后,Yahoo很快就用了起來。大概又過了一年到了2007年,百度和阿里巴巴也開始使用Hadoop進行大數據存儲與計算。
2008年,Hadoop正式成為Apache的頂級項目,后來Doug Cutting本人也成為了Apache基金會的主席。自此,Hadoop作為軟件開發(fā)領域的一顆明星冉冉升起。
同年,專門運營Hadoop的商業(yè)公司Cloudera成立,Hadoop得到進一步的商業(yè)支持。
這個時候,Yahoo的一些人覺得用MapReduce進行大數據編程太麻煩了,于是便開發(fā)了Pig。Pig是一種腳本語言,使用類SQL的語法,開發(fā)者可以用Pig腳本描述要對大數據集上進行的操作,Pig經過編譯后會生成MapReduce程序,然后在Hadoop上運行。
編寫Pig腳本雖然比直接MapReduce編程容易,但是依然需要學習新的腳本語法。于是Facebook又發(fā)布了Hive。Hive支持使用SQL語法來進行大數據計算,比如說你可以寫個Select語句進行數據查詢,然后Hive會把SQL語句轉化成MapReduce的計算程序。
這樣,熟悉數據庫的數據分析師和工程師便可以無門檻地使用大數據進行數據分析和處理了。Hive出現后極大程度地降低了Hadoop的使用難度,迅速得到開發(fā)者和企業(yè)的追捧。據說,2011年的時候,Facebook大數據平臺上運行的作業(yè)90%都來源于Hive。
隨后,眾多Hadoop周邊產品開始出現,大數據生態(tài)體系逐漸形成,其中包括:專門將關系數據庫中的數據導入導出到Hadoop平臺的Sqoop;針對大規(guī)模日志進行分布式收集、聚合和傳輸的Flume;MapReduce工作流調度引擎Oozie等。
在Hadoop早期,MapReduce既是一個執(zhí)行引擎,又是一個資源調度框架,服務器集群的資源調度管理由MapReduce自己完成。但是這樣不利于資源復用,也使得MapReduce非常臃腫。于是一個新項目啟動了,將MapReduce執(zhí)行引擎和資源調度分離開來,這就是Yarn。2012年,Yarn成為一個獨立的項目開始運營,隨后被各類大數據產品支持,成為大數據平臺上最主流的資源調度系統。
同樣是在2012年,UC伯克利AMP實驗室(Algorithms、Machine和People的縮寫)開發(fā)的Spark開始嶄露頭角。當時AMP實驗室的馬鐵博士發(fā)現使用MapReduce進行機器學習計算的時候性能非常差,因為機器學習算法通常需要進行很多次的迭代計算,而MapReduce每執(zhí)行一次Map和Reduce計算都需要重新啟動一次作業(yè),帶來大量的無謂消耗。還有一點就是MapReduce主要使用磁盤作為存儲介質,而2012年的時候,內存已經突破容量和成本限制,成為數據運行過程中主要的存儲介質。Spark一經推出,立即受到業(yè)界的追捧,并逐步替代MapReduce在企業(yè)應用中的地位。
一般說來,像MapReduce、Spark這類計算框架處理的業(yè)務場景都被稱作批處理計算,因為它們通常針對以“天”為單位產生的數據進行一次計算,然后得到需要的結果,這中間計算需要花費的時間大概是幾十分鐘甚至更長的時間。因為計算的數據是非在線得到的實時數據,而是歷史數據,所以這類計算也被稱為大數據離線計算。
而在大數據領域,還有另外一類應用場景,它們需要對實時產生的大量數據進行即時計算,比如對于遍布城市的監(jiān)控攝像頭進行人臉識別和嫌犯追蹤。這類計算稱為大數據流計算,相應地,有Storm、Flink、Spark Streaming等流計算框架來滿足此類大數據應用的場景。 流式計算要處理的數據是實時在線產生的數據,所以這類計算也被稱為大數據實時計算。
在典型的大數據的業(yè)務場景下,數據業(yè)務最通用的做法是,采用批處理的技術處理歷史全量數據,采用流式計算處理實時新增數據。而像Flink這樣的計算引擎,可以同時支持流式計算和批處理計算。
除了大數據批處理和流處理,NoSQL系統處理的主要也是大規(guī)模海量數據的存儲與訪問,所以也被歸為大數據技術。 NoSQL曾經在2011年左右非常火爆,涌現出HBase、Cassandra等許多優(yōu)秀的產品,其中HBase是從Hadoop中分離出來的、基于HDFS的NoSQL系統。
我們回顧軟件發(fā)展的歷史會發(fā)現,差不多類似功能的軟件,它們出現的時間都非常接近,比如Linux和Windows都是在90年代初出現,Java開發(fā)中的各類MVC框架也基本都是同期出現,Android和iOS也是前腳后腳問世。2011年前后,各種NoSQL數據庫也是層出不群,我也是在那個時候參與開發(fā)了阿里巴巴自己的NoSQL系統。
事物發(fā)展有自己的潮流和規(guī)律,當你身處潮流之中的時候,要緊緊抓住潮流的機會,想辦法脫穎而出,即使沒有成功,也會更加洞悉時代的脈搏,收獲珍貴的知識和經驗。而如果潮流已經退去,這個時候再去往這個方向上努力,只會收獲迷茫與壓抑,對時代、對自己都沒有什么幫助。
但是時代的浪潮猶如海灘上的浪花,總是一浪接著一浪,只要你站在海邊,身處這個行業(yè)之中,下一個浪潮很快又會到來。你需要敏感而又深刻地去觀察,略去那些浮躁的泡沫,抓住真正潮流的機會,奮力一搏,不管成敗,都不會遺憾。
正所謂在歷史前進的邏輯中前進,在時代發(fā)展的潮流中發(fā)展。通俗的說,就是要在風口中飛翔。
上面我講的這些基本上都可以歸類為大數據引擎或者大數據框架。而大數據處理的主要應用場景包括數據分析、數據挖掘與機器學習。數據分析主要使用Hive、Spark SQL等SQL引擎完成;數據挖掘與機器學習則有專門的機器學習框架TensorFlow、Mahout以及MLlib等,內置了主要的機器學習和數據挖掘算法。
此外,大數據要存入分布式文件系統(HDFS),要有序調度MapReduce和Spark作業(yè)執(zhí)行,并能把執(zhí)行結果寫入到各個應用系統的數據庫中,還需要有一個大數據平臺整合所有這些大數據組件和企業(yè)應用系統。
圖中的所有這些框架、平臺以及相關的算法共同構成了大數據的技術體系,我將會在專欄后面逐個分析,幫你能夠對大數據技術原理和應用算法構建起完整的知識體系,進可以專職從事大數據開發(fā),退可以在自己的應用開發(fā)中更好地和大數據集成,掌控自己的項目。
希望對您有所幫助!~
1、20世紀60年代中期,數據庫技術是用來解決文件處理系統問題的。當時的數據庫處理技術還很脆弱,常常發(fā)生應用不能提交的情況。
2、20世紀70年代關系模型的誕生為數據庫專家提供了構造和處理數據庫的標準方法,推動了關系數據庫的發(fā)展和應用。1979年,Ashton-Tate公司引入了微機產品dBase Ⅱ,并稱之為關系數據庫管理系統,從此數據庫技術移植到了個人計算機上。
3、20世紀80年代中期到后期,終端用戶開始使用局域網技術將獨立的計算機連接成網絡,終端之間共享數據庫,形成了一種新型的多用戶數據處理,稱為客戶機/服務器數據庫結構。
數據庫技術正在被用來同Internet技術相結合,以便在機構內聯網、部門局域網甚至WWW上發(fā)布數據庫數據。
擴展資料
在數據庫的發(fā)展歷史上,數據庫先后經歷了層次數據庫、網狀數據庫和關系數據庫等各個階段的發(fā)展,數據庫技術在各個方面的快速的發(fā)展。
特別是關系型數據庫已經成為目前數據庫產品中最重要的一員,80年代以來, 幾乎所有的數據庫廠商新出的數據庫產品都支持關系型數據庫,即使一些非關系數據庫產品也幾乎都有支持關系數據庫的接口。這主要是傳統的關系型數據庫可以比較好的解決管理和存儲關系型數據的問題。
隨著云計算的發(fā)展和大數據時代的到來,關系型數據庫越來越無法滿足需要,這主要是由于越來越多的半關系型和非關系型數據需要用數據庫進行存儲管理,以此同時,分布式技術等新技術的出現也對數據庫的技術提出了新的要求,于是越來越多的非關系型數據庫就開始出現。
這類數據庫與傳統的關系型數據庫在設計和數據結構有了很大的不同, 它們更強調數據庫數據的高并發(fā)讀寫和存儲大數據,這類數據庫被稱為NoSQL(Not only SQL)數據庫。 而傳統的關系型數據庫在一些傳統領域依然保持了強大的生命力。
參考資料來源:百度百科-數據庫
參考資料來源:百度百科- 數據庫技術
網頁題目:nosql的發(fā)展史,nosql數據庫有哪些及其特點
標題來源:http://chinadenli.net/article36/phecsg.html
成都網站建設公司_創(chuàng)新互聯,為您提供靜態(tài)網站、關鍵詞優(yōu)化、虛擬主機、品牌網站建設、做網站、品牌網站設計
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯