日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
NoSQL簡(jiǎn)介

2009年在亞特蘭大舉行的”no:sql(east)”討論會(huì)是一個(gè)里程碑,其口號(hào)是”select fun, profit from real_world where relational=false;”。因此,對(duì)NoSQL最普遍的解釋是”非關(guān)聯(lián)型的”,強(qiáng)調(diào)Key-Value存儲(chǔ)和文檔數(shù)據(jù)庫(kù)的優(yōu)點(diǎn),而不是單純的反對(duì)RDBMS。

NoSQL的迅速發(fā)展以及由于NoSQL中沒(méi)有像傳統(tǒng)數(shù)據(jù)庫(kù)那樣定義數(shù)據(jù)的組織方式為關(guān)系型的,所以只要內(nèi)部的數(shù)據(jù)組織采用了非關(guān)系型的方式,就可以稱(chēng)之為NoSQL數(shù)據(jù)庫(kù)。所以隨之帶來(lái)了開(kāi)源社區(qū)上百種所謂的NoSQL數(shù)據(jù)庫(kù),讓人眼花繚亂。對(duì)于NoSQL并沒(méi)有一個(gè)明確的范圍和定義,但是他們都普遍存在下面一些共同特征:

不需要預(yù)定義模式:不需要事先定義數(shù)據(jù)模式,預(yù)定義表結(jié)構(gòu)。數(shù)據(jù)中的每條記錄都可能有不同的屬性和格式。當(dāng)插入數(shù)據(jù)時(shí),并不需要預(yù)先定義它們的模式。

彈性可擴(kuò)展:可以在系統(tǒng)運(yùn)行的時(shí)候,動(dòng)態(tài)增加或者刪除結(jié)點(diǎn)。不需要停機(jī)維護(hù),數(shù)據(jù)可以自動(dòng)遷移。

分布式:相對(duì)于將數(shù)據(jù)存放于同一個(gè)節(jié)點(diǎn),NoSQL數(shù)據(jù)庫(kù)需要將數(shù)據(jù)進(jìn)行分區(qū),將記錄分散在多個(gè)節(jié)點(diǎn)上面。并且通常分區(qū)的同時(shí)還要做復(fù)制。這樣既提高了并行性能,又能保證沒(méi)有單點(diǎn)失效的問(wèn)題。

BASE:相對(duì)于事務(wù)嚴(yán)格的ACID特性,NoSQL數(shù)據(jù)庫(kù)保證的是BASE特性。BASE是最終一致性和軟事務(wù)。

NoSQL優(yōu)勢(shì):避免不必要的復(fù)雜性、高吞吐量、高水平擴(kuò)展能力;比如隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類(lèi)型的web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問(wèn)題,而非關(guān)系型的數(shù)據(jù)庫(kù)則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。NoSQL數(shù)據(jù)庫(kù)的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類(lèi)帶來(lái)的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題。

NoSQL劣勢(shì):數(shù)據(jù)模型和查詢(xún)語(yǔ)言沒(méi)有經(jīng)過(guò)數(shù)據(jù)驗(yàn)證,沒(méi)有堅(jiān)實(shí)的理論基礎(chǔ);不支持ACID特性,當(dāng)然使用SQL數(shù)據(jù)庫(kù)可以解決這個(gè)問(wèn)題;有些NoSQL數(shù)據(jù)庫(kù)過(guò)于簡(jiǎn)單,比如Memcache只是一個(gè)內(nèi)存數(shù)據(jù)庫(kù),適用于某些特性場(chǎng)景;最大的劣勢(shì)就是沒(méi)有統(tǒng)一的數(shù)據(jù)查詢(xún)模型,每種NoSQL產(chǎn)品都有自己的語(yǔ)言使用方式。

由于NoSQL數(shù)據(jù)庫(kù)并沒(méi)有一個(gè)統(tǒng)一的架構(gòu),兩種NoSQL數(shù)據(jù)庫(kù)之間的不同,甚至遠(yuǎn)遠(yuǎn)超過(guò)兩種關(guān)系型數(shù)據(jù)庫(kù)的不同??梢哉f(shuō),NoSQL各有所長(zhǎng),成功的NoSQL必然特別適用于某些場(chǎng)合或者某些應(yīng)用,在這些場(chǎng)合中會(huì)遠(yuǎn)遠(yuǎn)勝過(guò)關(guān)系型數(shù)據(jù)庫(kù)和其他的NoSQL。

什么是NewSQL?

通過(guò)比較可以發(fā)現(xiàn)NoSQL跟SQL之間的對(duì)立性太強(qiáng)了,基于NoSQL跟SQL之間的某種差異,比如NoSQL有的功能SQL沒(méi)有,如分布式、簡(jiǎn)單數(shù)據(jù)模型;而SQL有的特性NoSQL又沒(méi)有,如ACID功能;當(dāng)然不管哪種數(shù)據(jù)庫(kù),不管其劣勢(shì)還是優(yōu)勢(shì)都有其適用的場(chǎng)景。而SQL很難實(shí)現(xiàn)分布式的原因在于,SQL自身的日志機(jī)制、鎖機(jī)制以及緩沖區(qū)管理機(jī)制。于是就出來(lái)了NewSQL數(shù)據(jù)庫(kù)的概念,所謂的NewSQL是什么呢?就是想柔和SQL與NoSQL獨(dú)有的特性。

目前NewSQL大概有兩類(lèi),第一類(lèi)是擁有關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品和服務(wù),并將關(guān)系型數(shù)據(jù)庫(kù)的好處與優(yōu)勢(shì)帶入到分布式架構(gòu)上,簡(jiǎn)單來(lái)說(shuō)就是把ACID引入到分布式中;第二類(lèi)是提供關(guān)系型數(shù)據(jù)庫(kù)的性能,達(dá)到不用考慮水平擴(kuò)展的方式,簡(jiǎn)單來(lái)說(shuō)就是改變SQL架構(gòu)使得它不用水平擴(kuò)展,不用運(yùn)行在分布式環(huán)境中就能夠帶來(lái)性能上的提升。對(duì)于第一類(lèi)把ACID引入到分布式中去的產(chǎn)品有Clustrix、GenieDB、ScaleArc、ScaleBase、NimbusDB以及MySQL Cluster等。

NoSQL的分類(lèi)?

總的來(lái)說(shuō),如今的數(shù)據(jù)庫(kù)市場(chǎng)真是百花齊放,大概分類(lèi)為SQL、NoSQL、NewSQL以及緩存數(shù)據(jù)庫(kù)系統(tǒng)。而SQL和NewSQL不是本章討論的主題,所以下面來(lái)說(shuō)一說(shuō)NoSQL數(shù)據(jù)庫(kù)。

首先需要明確的一點(diǎn),NoSQL數(shù)據(jù)庫(kù)并不是要取代現(xiàn)在廣泛應(yīng)用的傳統(tǒng)數(shù)據(jù)庫(kù),而是采用一種非關(guān)系型的方式解決數(shù)據(jù)的存儲(chǔ)和計(jì)算的問(wèn)題。目前,可以將眾多的NoSQL數(shù)據(jù)庫(kù)按照內(nèi)部的數(shù)據(jù)組織形式進(jìn)行如下分類(lèi):

鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)

這一類(lèi)數(shù)據(jù)庫(kù)主要會(huì)使用到一個(gè)哈希表,這個(gè)表中有一個(gè)特定的鍵和一個(gè)指針指向特定的數(shù)據(jù)。Key-value模型對(duì)于IT系統(tǒng)來(lái)說(shuō)的優(yōu)勢(shì)在于簡(jiǎn)單、易部署。但是如果DBA只對(duì)部分值進(jìn)行查詢(xún)或更新的時(shí)候,Key-value就顯得效率低下了。

數(shù)據(jù)模型:key-value

優(yōu)點(diǎn):查找速度快

缺點(diǎn):數(shù)據(jù)無(wú)結(jié)構(gòu),通常只被當(dāng)做字符串或二進(jìn)制數(shù)據(jù)

應(yīng)用場(chǎng)景:內(nèi)容緩存

典型產(chǎn)品:Tokyo,Redis(一鍵多值),Dynamo ,Oracle BDB以及Memcache(一鍵一值),但Memcache雖然是Key-avlue存儲(chǔ)但是它是緩存數(shù)據(jù)庫(kù)。

列存儲(chǔ)數(shù)據(jù)庫(kù)

顧名思義,是按列存儲(chǔ)數(shù)據(jù)的。最大的特點(diǎn)是方便存儲(chǔ)結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù),方便做數(shù)據(jù)壓縮,對(duì)針對(duì)某一列或者某幾列的查詢(xún)有非常大的IO優(yōu)勢(shì)。

數(shù)據(jù)模型:數(shù)據(jù)按列存儲(chǔ)、將同一列數(shù)據(jù)存在一起

優(yōu)點(diǎn):查找迅速、可擴(kuò)展性強(qiáng)、易于實(shí)現(xiàn)分布式

缺點(diǎn):功能相對(duì)SQL很有限

應(yīng)用場(chǎng)景:分布式文件系統(tǒng)或分布式存儲(chǔ)

典型產(chǎn)品:Cassandra, HBase, Bigtable

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

文檔型數(shù)據(jù)庫(kù)的靈感是來(lái)自于Lotus Notes辦公軟件的,而且它同第一種鍵值存儲(chǔ)相類(lèi)似。該類(lèi)型的數(shù)據(jù)模型是版本化的文檔,半結(jié)構(gòu)化的文檔以特定的格式存儲(chǔ),比如JSON。文檔型數(shù)據(jù)庫(kù)可 以看作是鍵值數(shù)據(jù)庫(kù)的升級(jí)版,允許之間嵌套鍵值。而且文檔型數(shù)據(jù)庫(kù)比鍵值數(shù)據(jù)庫(kù)的查詢(xún)效率更高。

數(shù)據(jù)模型:與鍵值模型類(lèi)似,但value指向類(lèi)似一個(gè)容器(文檔),容器內(nèi)有一組信息

優(yōu)點(diǎn):數(shù)據(jù)格式要求不嚴(yán)格,無(wú)須提前定義結(jié)構(gòu),每個(gè)文檔字段隨意

缺點(diǎn):查詢(xún)性能不高(比SQL可能稍微好點(diǎn)),缺乏統(tǒng)一查詢(xún)語(yǔ)法

應(yīng)用場(chǎng)景:只要不需要ACID就可以使用

典型產(chǎn)品:CouchDB, MongoDB,國(guó)內(nèi)也有文檔型數(shù)據(jù)庫(kù)SequoiaDB,已經(jīng)開(kāi)源

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

圖形結(jié)構(gòu)的數(shù)據(jù)庫(kù)同其他行列以及剛性結(jié)構(gòu)的SQL數(shù)據(jù)庫(kù)不同,它是使用靈活的圖形模型,并且能夠擴(kuò)展到多個(gè)服務(wù)器上。NoSQL數(shù)據(jù)庫(kù)沒(méi)有標(biāo)準(zhǔn)的查詢(xún)語(yǔ)言(SQL),因此進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)需要制定數(shù)據(jù)模型。許多NoSQL數(shù)據(jù)庫(kù)都有REST式的數(shù)據(jù)接口或者查詢(xún)API。

數(shù)據(jù)模型:圖結(jié)構(gòu)模型

優(yōu)點(diǎn):利用圖結(jié)構(gòu)相關(guān)算法提高性能,并滿(mǎn)足特殊場(chǎng)景應(yīng)用需求

缺點(diǎn):功能有限,且難以實(shí)現(xiàn)分布式

應(yīng)用場(chǎng)景:社交網(wǎng)絡(luò)推薦系統(tǒng),比如好友推薦功能,關(guān)系圖譜

典型產(chǎn)品:Neo4J, InfoGrid, Infinite Graph

因此,我們總結(jié)NoSQL數(shù)據(jù)庫(kù)在以下的這幾種情況下比較適用:

\1. 數(shù)據(jù)模型比較簡(jiǎn)單;

\2. 需要靈活性更強(qiáng)的IT系統(tǒng);

\3. 對(duì)數(shù)據(jù)庫(kù)性能要求較高;

\4. 不需要高度的數(shù)據(jù)一致性;

\5. 對(duì)于給定key比較容易映射復(fù)雜值的環(huán)境。


網(wǎng)站欄目:NoSQL簡(jiǎn)介
文章網(wǎng)址:http://www.5511xx.com/article/cdpicsj.html