nosql是not only sql的意思。是近今年新發(fā)展起來的存儲系統(tǒng)。當前使用最多的是key-value模型,用于處理超大規(guī)模的數(shù)據。
在大石橋等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網站建設、網站設計 網站設計制作定制網站設計,公司網站建設,企業(yè)網站建設,成都品牌網站建設,成都全網營銷推廣,外貿營銷網站建設,大石橋網站建設費用合理。
以下是摘自百度百科中的一部分
NoSQL 是非關系型數(shù)據存儲的廣義定義。它打破了長久以來關系型數(shù)據庫與ACID理論大一統(tǒng)的局面。NoSQL 數(shù)據存儲不需要固定的表結構,通常也不存在連接操作。在大數(shù)據存取上具備關系型數(shù)據庫無法比擬的性能優(yōu)勢。該術語在 2009 年初得到了廣泛認同。
當今的應用體系結構需要數(shù)據存儲在橫向伸縮性上能夠滿足需求。而 NoSQL 存儲就是為了實現(xiàn)這個需求。Google 的BigTable與Amazon的Dynamo是非常成功的商業(yè) NoSQL 實現(xiàn)。一些開源的 NoSQL 體系,如Facebook 的Cassandra, Apache 的HBase,也得到了廣泛認同。從這些NoSQL項目的名字上看不出什么相同之處:Hadoop、Voldemort、Dynomite,還有其它很多。
NoSQL與關系型數(shù)據庫設計理念比較
關系型數(shù)據庫中的表都是存儲一些格式化的數(shù)據結構,每個元組字段的組成都一樣,即使不是每個元組都需要所有的字段,但數(shù)據庫會為每個元組分配所有的字段,這樣的結構可以便于表與表之間進行連接等操作,但從另一個角度來說它也是關系型數(shù)據庫性能瓶頸的一個因素。而非關系型數(shù)據庫以鍵值對存儲,它的結構不固定,每一個元組可以有不一樣的字段,每個元組可以根據需要增加一些自己的鍵值對,這樣就不會局限于固定的結構,可以減少一些時間和空間的開銷。
特點:
它們可以處理超大量的數(shù)據。
它們運行在便宜的PC服務器集群上。
PC集群擴充起來非常方便并且成本很低,避免了“sharding”操作的復雜性和成本。
它們擊碎了性能瓶頸。
NoSQL的支持者稱,通過NoSQL架構可以省去將Web或Java應用和數(shù)據轉換成SQL友好格式的時間,執(zhí)行速度變得更快。
“SQL并非適用于所有的程序代碼,” 對于那些繁重的重復操作的數(shù)據,SQL值得花錢。但是當數(shù)據庫結構非常簡單時,SQL可能沒有太大用處。
沒有過多的操作。
雖然NoSQL的支持者也承認關系數(shù)據庫提供了無可比擬的功能集合,而且在數(shù)據完整性上也發(fā)揮絕對穩(wěn)定,他們同時也表示,企業(yè)的具體需求可能沒有那么多。
Bootstrap支持
因為NoSQL項目都是開源的,因此它們缺乏供應商提供的正式支持。這一點它們與大多數(shù)開源項目一樣,不得不從社區(qū)中尋求支持。
優(yōu)點:
易擴展
NoSQL數(shù)據庫種類繁多,但是一個共同的特點都是去掉關系數(shù)據庫的關系型特性。數(shù)據之間無關系,這樣就非常容易擴展。也無形之間,在架構的層面上帶來了可擴展的能力。
大數(shù)據量,高性能
NoSQL數(shù)據庫都具有非常高的讀寫性能,尤其在大數(shù)據量下,同樣表現(xiàn)優(yōu)秀。這得益于它的無關系性,數(shù)據庫的結構簡單。一般MySQL使用 Query Cache,每次表的更新Cache就失效,是一種大粒度的Cache,在針對web2.0的交互頻繁的應用,Cache性能不高。而NoSQL的 Cache是記錄級的,是一種細粒度的Cache,所以NoSQL在這個層面上來說就要性能高很多了。
靈活的數(shù)據模型
NoSQL無需事先為要存儲的數(shù)據建立字段,隨時可以存儲自定義的數(shù)據格式。而在關系數(shù)據庫里,增刪字段是一件非常麻煩的事情。如果是非常大數(shù)據量的表,增加字段簡直就是一個噩夢。這點在大數(shù)據量的web2.0時代尤其明顯。
高可用
NoSQL在不太影響性能的情況,就可以方便的實現(xiàn)高可用的架構。比如Cassandra,HBase模型,通過復制模型也能實現(xiàn)高可用。
主要應用:
Apache HBase
這個大數(shù)據管理平臺建立在谷歌強大的BigTable管理引擎基礎上。作為具有開源、Java編碼、分布式多個優(yōu)勢的數(shù)據庫,Hbase最初被設計應用于Hadoop平臺,而這一強大的數(shù)據管理工具,也被Facebook采用,用于管理消息平臺的龐大數(shù)據。
Apache Storm
用于處理高速、大型數(shù)據流的分布式實時計算系統(tǒng)。Storm為Apache Hadoop添加了可靠的實時數(shù)據處理功能,同時還增加了低延遲的儀表板、安全警報,改進了原有的操作方式,幫助企業(yè)更有效率地捕獲商業(yè)機會、發(fā)展新業(yè)務。
Apache Spark
該技術采用內存計算,從多迭代批量處理出發(fā),允許將數(shù)據載入內存做反復查詢,此外還融合數(shù)據倉庫、流處理和圖計算等多種計算范式,Spark用Scala語言實現(xiàn),構建在HDFS上,能與Hadoop很好的結合,而且運行速度比MapReduce快100倍。
Apache Hadoop
該技術迅速成為了大數(shù)據管理標準之一。當它被用來管理大型數(shù)據集時,對于復雜的分布式應用,Hadoop體現(xiàn)出了非常好的性能,平臺的靈活性使它可以運行在商用硬件系統(tǒng),它還可以輕松地集成結構化、半結構化和甚至非結構化數(shù)據集。
Apache Drill
你有多大的數(shù)據集?其實無論你有多大的數(shù)據集,Drill都能輕松應對。通過支持HBase、Cassandra和MongoDB,Drill建立了交互式分析平臺,允許大規(guī)模數(shù)據吞吐,而且能很快得出結果。
Apache Sqoop
也許你的數(shù)據現(xiàn)在還被鎖定于舊系統(tǒng)中,Sqoop可以幫你解決這個問題。這一平臺采用并發(fā)連接,可以將數(shù)據從關系數(shù)據庫系統(tǒng)方便地轉移到Hadoop中,可以自定義數(shù)據類型以及元數(shù)據傳播的映射。事實上,你還可以將數(shù)據(如新的數(shù)據)導入到HDFS、Hive和Hbase中。
Apache Giraph
這是功能強大的圖形處理平臺,具有很好可擴展性和可用性。該技術已經被Facebook采用,Giraph可以運行在Hadoop環(huán)境中,可以將它直接部署到現(xiàn)有的Hadoop系統(tǒng)中。通過這種方式,你可以得到強大的分布式作圖能力,同時還能利用上現(xiàn)有的大數(shù)據處理引擎。
Cloudera Impala
Impala模型也可以部署在你現(xiàn)有的Hadoop群集上,監(jiān)視所有的查詢。該技術和MapReduce一樣,具有強大的批處理能力,而且Impala對于實時的SQL查詢也有很好的效果,通過高效的SQL查詢,你可以很快的了解到大數(shù)據平臺上的數(shù)據。
Gephi
它可以用來對信息進行關聯(lián)和量化處理,通過為數(shù)據創(chuàng)建功能強大的可視化效果,你可以從數(shù)據中得到不一樣的洞察力。Gephi已經支持多個圖表類型,而且可以在具有上百萬個節(jié)點的大型網絡上運行。Gephi具有活躍的用戶社區(qū),Gephi還提供了大量的插件,可以和現(xiàn)有系統(tǒng)完美的集成到一起,它還可以對復雜的IT連接、分布式系統(tǒng)中各個節(jié)點、數(shù)據流等信息進行可視化分析。
MongoDB
這個堅實的平臺一直被很多組織推崇,它在大數(shù)據管理上有極好的性能。MongoDB最初是由DoubleClick公司的員工創(chuàng)建,現(xiàn)在該技術已經被廣泛的應用于大數(shù)據管理。MongoDB是一個應用開源技術開發(fā)的NoSQL數(shù)據庫,可以用于在JSON這樣的平臺上存儲和處理數(shù)據。目前,紐約時報、Craigslist以及眾多企業(yè)都采用了MongoDB,幫助他們管理大型數(shù)據集。(Couchbase服務器也作為一個參考)。
十大頂尖公司:
Amazon Web Services
Forrester將AWS稱為“云霸主”,談到云計算領域的大數(shù)據,那就不得不提到亞馬遜。該公司的Hadoop產品被稱為EMR(Elastic Map Reduce),AWS解釋這款產品采用了Hadoop技術來提供大數(shù)據管理服務,但它不是純開源Hadoop,經過修改后現(xiàn)在被專門用在AWS云上。
Forrester稱EMR有很好的市場前景。很多公司基于EMR為客戶提供服務,有一些公司將EMR應用于數(shù)據查詢、建模、集成和管理。而且AWS還在創(chuàng)新,F(xiàn)orrester稱未來EMR可以基于工作量的需要自動縮放調整大小。亞馬遜計劃為其產品和服務提供更強大的EMR支持,包括它的RedShift數(shù)據倉庫、新公布的Kenesis實時處理引擎以及計劃中的NoSQL數(shù)據庫和商業(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的工程師們就會實現(xiàn)這些功能,或者找一個擁有這項技術的合作伙伴。Forrester表示:“Cloudera的創(chuàng)新方法忠于核心Hadoop,但因為其可實現(xiàn)快速創(chuàng)新并積極滿足客戶需求,這一點使它不同于其他那些供應商?!蹦壳?,Cloudera的平臺已經擁有200多個付費客戶,一些客戶在Cloudera的技術支持下已經可以跨1000多個節(jié)點實現(xiàn)對PB級數(shù)據的有效管理。
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項目的主要參與者之一,F(xiàn)orrester稱IBM已有100多個Hadoop部署,它的很多客戶都有PB級的數(shù)據。IBM在網格計算、全球數(shù)據中心和企業(yè)大數(shù)據項目實施等眾多領域有著豐富的經驗?!癐BM計劃繼續(xù)整合SPSS分析、高性能計算、BI工具、數(shù)據管理和建模、應對高性能計算的工作負載管理等眾多技術?!?/p>
Intel
和AWS類似,英特爾不斷改進和優(yōu)化Hadoop使其運行在自己的硬件上,具體來說,就是讓Hadoop運行在其至強芯片上,幫助用戶打破Hadoop系統(tǒng)的一些限制,使軟件和硬件結合的更好,英特爾的Hadoop發(fā)行版在上述方面做得比較好。Forrester指出英特爾在最近才推出這個產品,所以公司在未來還有很多改進的可能,英特爾和微軟都被認為是Hadoop市場上的潛力股。
MapR Technologies
MapR的Hadoop發(fā)行版目前為止也許是最好的了,不過很多人可能都沒有聽說過。Forrester對Hadoop用戶的調查顯示,MapR的評級最高,其發(fā)行版在架構和數(shù)據處理能力上都獲得了最高分。MapR已將一套特殊功能融入其Hadoop發(fā)行版中。例如網絡文件系統(tǒng)(NFS)、災難恢復以及高可用性功能。Forrester說MapR在Hadoop市場上沒有Cloudera和Hortonworks那樣的知名度,MapR要成為一個真正的大企業(yè),還需要加強伙伴關系和市場營銷。
什么是NoSQL數(shù)據庫?從名稱“非SQL”或“非關系型”衍生而來,這些數(shù)據庫不使用類似SQL的查詢語言,通常稱為結構化存儲。這些數(shù)據庫自1960年就已經存在,但是直到現(xiàn)在一些大公司(例如Google和Facebook)開始使用它們時,這些數(shù)據庫才流行起來。該數(shù)據庫最明顯的優(yōu)勢是擺脫了一組固定的列、連接和類似SQL的查詢語言的限制。有時,NoSQL這個名稱也可能表示“不僅僅SQL”,來確保它們可能支持SQL。 NoSQL數(shù)據庫使用諸如鍵值、寬列、圖形或文檔之類的數(shù)據結構,并且可以如JSON之類的不同格式存儲。
NoSQL太火,冒出太多產品了,保守估計也成百上千了。
互聯(lián)網公司常用的基本集中在以下幾種,每種只舉一個比較常見或者應用比較成功的例子吧。
1. In-Memory KV Store : Redis
in memory key-value store,同時提供了更加豐富的數(shù)據結構和運算的能力,成功用法是替代memcached,通過checkpoint和commit log提供了快速的宕機恢復,同時支持replication提供讀可擴展和高可用。
2. Disk-Based KV Store: Leveldb
真正基于磁盤的key-value storage, 模型單一簡單,數(shù)據量不受限于內存大小,數(shù)據落盤高可靠,Google的幾位大神出品的精品,LSM模型天然寫優(yōu)化,順序寫盤的方式對于新硬件ssd再適合不過了,不足是僅提供了一個庫,需要自己封裝server端。
3. Document Store: Mongodb
分布式nosql,具備了區(qū)別mysql的最大亮點:可擴展性。mongodb 最新引人的莫過于提供了sql接口,是目前nosql里最像mysql的,只是沒有ACID的特性,發(fā)展很快,支持了索引等特性,上手容易,對于數(shù)據量遠超內存限制的場景來說,還需要慎重。
4. Column Table Store: HBase
這個富二代似乎不用贅述了,最大的優(yōu)勢是開源,對于普通的scan和基于行的get等基本查詢,性能完全不是問題,只是只提供裸的api,易用性上是短板,可擴展性方面是最強的,其次坐上了Hadoop的快車,社區(qū)發(fā)展很快,各種基于其上的開源產品不少,來解決諸如join、聚集運算等復雜查詢。
2. 什么是NoSQL?
2.1 NoSQL 概述
NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,
泛指非關系型的數(shù)據庫。隨著互聯(lián)網web2.0網站的興起,傳統(tǒng)的關系數(shù)據庫在應付web2.0網站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動態(tài)網站已經顯得力不從心,暴露了很多難以克服的問題,而非關系型的數(shù)據庫則由于其本身的特點得到了非常迅速的發(fā)展。NoSQL數(shù)據庫的產生就是為了解決大規(guī)模數(shù)據集合多重數(shù)據種類帶來的挑戰(zhàn),尤其是大數(shù)據應用難題,包括超大規(guī)模數(shù)據的存儲。
(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數(shù)據)。這些類型的數(shù)據存儲不需要固定的模式,無需多余操作就可以橫向擴展。
2.2 NoSQL代表
MongDB、 Redis、Memcache
3. 關系型數(shù)據庫與NoSQL的區(qū)別?
3.1 RDBMS
高度組織化結構化數(shù)據
結構化查詢語言(SQL)
數(shù)據和關系都存儲在單獨的表中。
數(shù)據操縱語言,數(shù)據定義語言
嚴格的一致性
基礎事務
ACID
關系型數(shù)據庫遵循ACID規(guī)則
事務在英文中是transaction,和現(xiàn)實世界中的交易很類似,它有如下四個特性:
A (Atomicity) 原子性
原子性很容易理解,也就是說事務里的所有操作要么全部做完,要么都不做,事務成功的條件是事務里的所有操作都成功,只要有一個操作失敗,整個事務就失敗,需要回滾。比如銀行轉賬,從A賬戶轉100元至B賬戶,分為兩個步驟:1)從A賬戶取100元;2)存入100元至B賬戶。這兩步要么一起完成,要么一起不完成,如果只完成第一步,第二步失敗,錢會莫名其妙少了100元。
C (Consistency) 一致性
一致性也比較容易理解,也就是說數(shù)據庫要一直處于一致的狀態(tài),事務的運行不會改變數(shù)據庫原本的一致性約束。
I (Isolation) 獨立性
所謂的獨立性是指并發(fā)的事務之間不會互相影響,如果一個事務要訪問的數(shù)據正在被另外一個事務修改,只要另外一個事務未提交,它所訪問的數(shù)據就不受未提交事務的影響。比如現(xiàn)有有個交易是從A賬戶轉100元至B賬戶,在這個交易還未完成的情況下,如果此時B查詢自己的賬戶,是看不到新增加的100元的
D (Durability) 持久性
持久性是指一旦事務提交后,它所做的修改將會永久的保存在數(shù)據庫上,即使出現(xiàn)宕機也不會丟失。
3.2 NoSQL
代表著不僅僅是SQL
沒有聲明性查詢語言
沒有預定義的模式
鍵 - 值對存儲,列存儲,文檔存儲,圖形數(shù)據庫
最終一致性,而非ACID屬性
非結構化和不可預知的數(shù)據
CAP定理
高性能,高可用性和可伸縮性
分布式數(shù)據庫中的CAP原理(了解)
CAP定理:
Consistency(一致性), 數(shù)據一致更新,所有數(shù)據變動都是同步的
Availability(可用性), 好的響應性能
Partition tolerance(分區(qū)容錯性) 可靠性
P: 系統(tǒng)中任意信息的丟失或失敗不會影響系統(tǒng)的繼續(xù)運作。
定理:任何分布式系統(tǒng)只可同時滿足二點,沒法三者兼顧。
CAP理論的核心是:一個分布式系統(tǒng)不可能同時很好的滿足一致性,可用性和分區(qū)容錯性這三個需求,
因此,根據 CAP 原理將 NoSQL 數(shù)據庫分成了滿足 CA 原則、滿足 CP 原則和滿足 AP 原則三 大類:
CA - 單點集群,滿足一致性,可用性的系統(tǒng),通常在可擴展性上不太強大。
CP - 滿足一致性,分區(qū)容忍性的系統(tǒng),通常性能不是特別高。
AP - 滿足可用性,分區(qū)容忍性的系統(tǒng),通??赡軐σ恢滦砸蟮鸵恍?。
CAP理論就是說在分布式存儲系統(tǒng)中,最多只能實現(xiàn)上面的兩點。
而由于當前的網絡硬件肯定會出現(xiàn)延遲丟包等問題,所以分區(qū)容忍性是我們必須需要實現(xiàn)的。
所以我們只能在一致性和可用性之間進行權衡,沒有NoSQL系統(tǒng)能同時保證這三點。
說明:C:強一致性 A:高可用性 P:分布式容忍性
舉例:
CA:傳統(tǒng)Oracle數(shù)據庫
AP:大多數(shù)網站架構的選擇
CP:Redis、Mongodb
注意:分布式架構的時候必須做出取舍。
一致性和可用性之間取一個平衡。多余大多數(shù)web應用,其實并不需要強一致性。
因此犧牲C換取P,這是目前分布式數(shù)據庫產品的方向。
4. 當下NoSQL的經典應用
當下的應用是 SQL 與 NoSQL 一起使用的。
代表項目:阿里巴巴商品信息的存放。
去 IOE 化。
ps:I 是指 IBM 的小型機,很貴的,好像好幾萬一臺;O 是指 Oracle 數(shù)據庫,也很貴的,好幾萬呢;M 是指 EMC 的存儲設備,也很貴的。
難點:
數(shù)據類型多樣性。
數(shù)據源多樣性和變化重構。
數(shù)據源改造而服務平臺不需要大面積重構。
NoSQL,指的是非關系型的數(shù)據庫。NoSQL有時也稱作Not Only SQL的縮寫,是對不同于傳統(tǒng)的關系型數(shù)據庫的數(shù)據庫管理系統(tǒng)的統(tǒng)稱。
NoSQL用于超大規(guī)模數(shù)據的存儲。(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數(shù)據)。這些類型的數(shù)據存儲不需要固定的模式,無需多余操作就可以橫向擴展。
NoSQL的優(yōu)點/缺點
優(yōu)點:
- 高可擴展性
- 分布式計算
- 低成本
- 架構的靈活性,半結構化數(shù)據
- 沒有復雜的關系
缺點:
- 沒有標準化
- 有限的查詢功能(到目前為止)
- 最終一致是不直觀的程序 (BY三人行慕課)
分享標題:nosql有什么特別的,NoSQL是什么
本文路徑:http://chinadenli.net/article48/hohehp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供商城網站、網站設計、虛擬主機、域名注冊、全網營銷推廣、Google
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)