NoSQL,指的是非關(guān)系型的數(shù)據(jù)庫。
10年積累的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有賀蘭免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
NoSQL 是Not Only SQL 的縮寫,意思是“不僅僅是 SQL”,而不是“不使用 SQL”。
NoSQL 的出現(xiàn)可以解決傳統(tǒng)關(guān)系型數(shù)據(jù)庫所不能解決的問題。
Web1.0的時(shí)代,數(shù)據(jù)訪問量很有限,用一夫當(dāng)關(guān)的高性能的單點(diǎn)服務(wù)器可以解決大部分問題。
隨著Web2.0的時(shí)代的到來,用戶訪問量大幅度提升,同時(shí)產(chǎn)生了大量的用戶數(shù)據(jù)。加上后來的智能移動(dòng)設(shè)備的普及,所有的互聯(lián)網(wǎng)平臺都面臨了巨大的性能挑戰(zhàn)。
NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,泛指非關(guān)系型的數(shù)據(jù)庫。
NoSQL 不依賴業(yè)務(wù)邏輯方式存儲,而以簡單的key-value模式存儲。因此大大的增加了數(shù)據(jù)庫的擴(kuò)展能力。
Memcache Memcache Redis Redis MongoDB MongoDB 列式數(shù)據(jù)庫 列式數(shù)據(jù)庫 Hbase Hbase
HBase是Hadoop項(xiàng)目中的數(shù)據(jù)庫。它用于需要對大量的數(shù)據(jù)進(jìn)行隨機(jī)、實(shí)時(shí)的讀寫操作的場景中。
HBase的目標(biāo)就是處理數(shù)據(jù)量非常龐大的表,可以用普通的計(jì)算機(jī)處理超過10億行數(shù)據(jù),還可處理有數(shù)百萬列元素的數(shù)據(jù)表。
Cassandra Cassandra
Apache Cassandra是一款免費(fèi)的開源NoSQL數(shù)據(jù)庫,其設(shè)計(jì)目的在于管理由大量商用服務(wù)器構(gòu)建起來的龐大集群上的海量數(shù)據(jù)集(數(shù)據(jù)量通常達(dá)到PB級別)。在眾多顯著特性當(dāng)中,Cassandra最為卓越的長處是對寫入及讀取操作進(jìn)行規(guī)模調(diào)整,而且其不強(qiáng)調(diào)主集群的設(shè)計(jì)思路能夠以相對直觀的方式簡化各集群的創(chuàng)建與擴(kuò)展流程。
主要應(yīng)用:社會關(guān)系,公共交通網(wǎng)絡(luò),地圖及網(wǎng)絡(luò)拓譜(n*(n-1)/2)
何玩轉(zhuǎn) NoSQL數(shù)據(jù)庫作者:IT專家中國 Weather公司CIO Bryson Koehler整理MongoDBRiakCassandra等NoSQL數(shù)據(jù)庫特性指其重要特性NoSQL限制住 Weather公司致力于氣報(bào)告氣預(yù)報(bào)業(yè)務(wù)其并缺乏數(shù)據(jù)缺乏數(shù)據(jù)管理工具需要三種同NoSQL數(shù)據(jù)庫 近我向Weather 公司CIO Bryson Koehler提疑問除公司CIO,Bryson Koehler其業(yè)務(wù)單元孵化者,包括Weather ChannelWeatherFXWeather UndergroundIntellicast等Weather公司每獲取處理著約二0萬億字節(jié)數(shù)據(jù)外提供前全球氣狀況并航空公司緊中國服務(wù)貨運(yùn)商公用事業(yè)保險(xiǎn)及線氣中國站氣應(yīng)用程序用戶提供氣預(yù)報(bào)服務(wù)每需求增加數(shù)十億氣數(shù)據(jù)請求并且預(yù)期響應(yīng)間要一0毫秒左右 RiakWeather 公司臺NoSQL數(shù)據(jù)庫服務(wù)于公司事務(wù)性存儲公用中國絡(luò)(SUN)數(shù)據(jù)獲取平臺運(yùn)行亞馬遜中國絡(luò)服務(wù)(AWS)用區(qū)域并每一5頻率捕獲超二0億氣象數(shù)據(jù)信息所Riak具明確處理規(guī)模該公司使用Cassandra及新近添加MongoDB數(shù)據(jù)庫Weather中國 IOSAndroid移應(yīng)用程序服務(wù) Weather 公司使用同產(chǎn)品Koehler解釋說同工具同優(yōu)勢 Cassandra服務(wù)于Weather 公司及全球消費(fèi)者使用第三氣應(yīng)用API數(shù)據(jù):我數(shù)據(jù)發(fā)平臺每秒處理數(shù)十萬事務(wù)我發(fā)現(xiàn)Cassandra用于全球發(fā)數(shù)據(jù)棒解決案并且[數(shù)據(jù)庫]讀取面體現(xiàn)高用性 本質(zhì)全球各消費(fèi)者所使用數(shù)據(jù)服務(wù)包括Weather 公司第三氣應(yīng)用程序 MongoDB提供Weather中國中國站移應(yīng)用程序間層緩存功能:離我核API我沒全部Weather中國內(nèi)容所MongoDB容器發(fā)站W(wǎng)eather中國及AndroidiOS移應(yīng)用程序服務(wù)Mongo處些處基于其內(nèi)建JSON格式及靈性 Riak用于消費(fèi)氣象數(shù)據(jù)觀測包括自世界各圖片視頻等:我喜Riak其優(yōu)秀數(shù)據(jù)攝取能力且種全球布式式實(shí)現(xiàn)于全球布式平臺獲取數(shù)據(jù)入站式數(shù)據(jù)庫真靠選擇 我曾聽說DatastaxBashoCouchbase高管貶低MongoDB擴(kuò)展性MongoDB指向規(guī)模部署Facebook超二00萬臺移設(shè)備應(yīng)用程序提供支持eHarmony公司MongDB每處理著數(shù)十億潛比賽預(yù)約據(jù)Koehle所述MongoDBWeather中國Weather中國移應(yīng)用程序處理著每十億交易毫疑問通配置部署Mongo處理批量交易數(shù)據(jù) 盡管Koehler承認(rèn)樂于看MongoDB繼續(xù)使全球集群位置[功能]更加縫化且易于使用 些屬于全球性布式集群復(fù)制負(fù)載平衡CassandraRiak眾所周知功能 規(guī)模討論角度看少公司達(dá)Weather公司經(jīng)營規(guī)模易于發(fā)架構(gòu)靈性JSON數(shù)據(jù)處理使MongoDB世界流行NoSQL數(shù)據(jù)庫微軟IBM都進(jìn)行MongoDB模仿微軟Azure DocumentDBIBM CloudantCassandraRiak Weather公司三NoSQL標(biāo)準(zhǔn)降低至兩程鞏固Koehler說公司沒準(zhǔn)備做 由于我構(gòu)造由許同數(shù)據(jù)解決案組中國狀結(jié)構(gòu)我目前環(huán)境已于復(fù)雜說我希望給團(tuán)隊(duì)些自由空間讓我解所選擇利弊看些整合 候遷移件難事關(guān)于NoSQL數(shù)據(jù)庫重要事情困其 Koehler說架構(gòu)編碼確數(shù)據(jù)庫遷移另并難隨著模式自由及數(shù)據(jù)轉(zhuǎn)存技術(shù)發(fā)展論前者key-value存儲或其形式轉(zhuǎn)儲數(shù)據(jù)都十容易 特定產(chǎn)品進(jìn)程自定義編碼復(fù)雜存儲程已經(jīng)復(fù)返Koehler說關(guān)于結(jié)構(gòu)化編碼確需要考慮?做避免特殊供應(yīng)商提供工具功能能讓身陷其舉亞馬遜中國絡(luò)服務(wù)(AWS)消息服務(wù)例 必讓服務(wù)云運(yùn)行解釋說部署自RabbitMQ環(huán)境陷于其所原先部署AWS 應(yīng)用程序轉(zhuǎn)部署谷歌計(jì)算云服務(wù)論數(shù)據(jù)平臺存儲環(huán)境或云計(jì)算環(huán)境都要?jiǎng)e讓自局限僅由供應(yīng)商提供范圍空間內(nèi) 轉(zhuǎn)
NoSQL,指的是非關(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純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。
NoSQL(NoSQL
= Not Only SQL
),意即“不僅僅是SQL”,是一項(xiàng)全新的數(shù)據(jù)庫革命性運(yùn)動(dòng),早期就有人提出,發(fā)展至2009年趨勢越發(fā)高漲。NoSQL的擁護(hù)者們提倡運(yùn)用非關(guān)系型的數(shù)
據(jù)存儲,相對于鋪天蓋地的關(guān)系型數(shù)據(jù)庫運(yùn)用,這一概念無疑是一種全新的思維的注入。
從這一新興技術(shù)中選擇一款正確的NoSQL數(shù)據(jù)庫是非常具有挑戰(zhàn)性的。比一下網(wǎng)建議在選擇時(shí)考慮以下因素:
并發(fā)控制
并
發(fā)控制指的是當(dāng)多個(gè)用戶同時(shí)更新運(yùn)行時(shí),用于保護(hù)數(shù)據(jù)庫完整性的各種技術(shù)。并發(fā)機(jī)制不正確可能導(dǎo)致臟讀、幻讀和不可重復(fù)讀等此類問題。并發(fā)控制的目的是保
證一個(gè)用戶的工作不會對另一個(gè)用戶的工作產(chǎn)生不合理的影響。在某些情況下,這些措施保證了當(dāng)用戶和其他用戶一起操作時(shí),所得的結(jié)果和她單獨(dú)操作時(shí)的結(jié)果是
一樣的。在另一些情況下,這表示用戶的工作按預(yù)定的方式受其他用戶的影響。
封鎖
就是事務(wù)T在對某個(gè)數(shù)據(jù)對象(例如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務(wù)T就對該數(shù)據(jù)對象有了一定的控制,在事務(wù)T釋放它的鎖之前,其它的事務(wù)不能更新此數(shù)據(jù)對象。
封鎖是一次只允許一個(gè)用戶讀取或修改的一種機(jī)制,是實(shí)現(xiàn)并發(fā)控制的一個(gè)非常重要的技術(shù)。
MVCC
Multi-Version Concurrency Control多版本并發(fā)控制,維持一個(gè)數(shù)據(jù)的多個(gè)版本使讀寫操作沒有沖突。MVCC優(yōu)化了數(shù)據(jù)庫并發(fā)系統(tǒng),使系統(tǒng)在有大量并發(fā)用戶時(shí)得到最高的性能,并且可以不用關(guān)閉服務(wù)器就直接進(jìn)行熱備份。
ACID
指
數(shù)據(jù)庫事務(wù)正確執(zhí)行的四個(gè)基本要素的縮寫。包含:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久
性(Durability)。一個(gè)支持事務(wù)(Transaction)的數(shù)據(jù)庫系統(tǒng),必需要具有這四種特性,否則在事務(wù)過程(Transaction
processing)當(dāng)中無法保證數(shù)據(jù)的正確性,交易過程極可能達(dá)不到交易方的要求。
None
一些系統(tǒng)不提供原子性。
鏡像
數(shù)據(jù)庫鏡像是DBMS根據(jù)DBA的要求,自動(dòng)把整個(gè)數(shù)據(jù)庫或其中的關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)磁盤上,每當(dāng)主數(shù)據(jù)庫更新時(shí),DBMS會自動(dòng)把更新后的數(shù)據(jù)復(fù)制過去,即DBMS自動(dòng)保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性。
鏡像分為同步和異步。
數(shù)據(jù)存儲
指的是數(shù)據(jù)的物理特性怎樣被存儲在數(shù)據(jù)庫中。
磁盤 數(shù)據(jù)被存儲在硬盤驅(qū)動(dòng)器里;
GFS或谷歌文件系統(tǒng)是一個(gè)由谷歌開發(fā)的專有的分布式文件系統(tǒng);
Hadoop是Apache軟件框架,免費(fèi)許可下支持?jǐn)?shù)據(jù)密集型分布式應(yīng)用程序;
RAM隨機(jī)存儲器;
插件 可以添加外部插件;
Amazon S3通過Web服務(wù)接口提供存儲;
BDB:BDB
全稱是 “Berkeley DB”,它是MySQL具有事務(wù)能力的表類型,由Sleepycat
Software開發(fā)。BDB表類型提供了MySQL用戶長久期盼的功能,即事務(wù)控制能力。在任何RDBMS中,事務(wù)控制能力都是一種極其重要和寶貴的功
能。事務(wù)控制能力使得我們能夠確保一組命令確實(shí)已經(jīng)全部執(zhí)行成功,或者確保當(dāng)任何一個(gè)命令出現(xiàn)錯(cuò)誤時(shí)所有命令的執(zhí)行結(jié)果均被退回。
實(shí)現(xiàn)語言
實(shí)現(xiàn)語言會影響數(shù)據(jù)庫的發(fā)展速度。典型的NoSQL數(shù)據(jù)庫是用低級語言如C / C + +編寫的。另一方面,那些更高層次的語言如Java,使自定義更容易。
實(shí)現(xiàn)語言有:C, C++, Erlang, Java, Python
特性
考慮下列哪一個(gè)特點(diǎn)對你的數(shù)據(jù)庫是最重要的:
持久性
可用性
一致性
分區(qū)容忍性
證書類型
下面這些許可證是一個(gè)不同的開放源碼許可的形式:
GPL:通用公共許可證
BSD:伯克利軟件分發(fā)
MPL:Mozilla公共許可證
EPL:Eclipse公共許可證
IDPL:最初的開發(fā)者的公共許可證
LGPL:較寬松通用公共許可證
存儲類型
存儲類型是NoSQL數(shù)據(jù)庫最大的不同,是決定使用哪款數(shù)據(jù)庫的一個(gè)首要指標(biāo)。
關(guān)鍵字:支持get、put和刪除操作
按列存儲:相對于傳統(tǒng)的按行存儲,數(shù)據(jù)集成容易多了
面向文件系統(tǒng):存儲像是JSON或XML這樣的結(jié)構(gòu)化文件,很容易就能從面向?qū)ο筌浖蝎@取數(shù)據(jù)。
什么是NoSQL數(shù)據(jù)庫?從名稱“非SQL”或“非關(guān)系型”衍生而來,這些數(shù)據(jù)庫不使用類似SQL的查詢語言,通常稱為結(jié)構(gòu)化存儲。這些數(shù)據(jù)庫自1960年就已經(jīng)存在,但是直到現(xiàn)在一些大公司(例如Google和Facebook)開始使用它們時(shí),這些數(shù)據(jù)庫才流行起來。該數(shù)據(jù)庫最明顯的優(yōu)勢是擺脫了一組固定的列、連接和類似SQL的查詢語言的限制。有時(shí),NoSQL這個(gè)名稱也可能表示“不僅僅SQL”,來確保它們可能支持SQL。 NoSQL數(shù)據(jù)庫使用諸如鍵值、寬列、圖形或文檔之類的數(shù)據(jù)結(jié)構(gòu),并且可以如JSON之類的不同格式存儲。
NoSQL,泛指非關(guān)系型的數(shù)據(jù)庫。NoSQL數(shù)據(jù)庫的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類帶來的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題。
雖然關(guān)系型數(shù)據(jù)庫系統(tǒng)RDBMS在安裝和使用上仍然占有主要地位,但毋庸置疑,非關(guān)系型數(shù)據(jù)庫NoSQL技術(shù)已經(jīng)成為今天發(fā)展最快的數(shù)據(jù)庫技術(shù)。
NoSQL詳解:如何找到對的技術(shù)
NoSQL是對數(shù)據(jù)庫系統(tǒng)的總稱,在某種程度上,它的性能和用途可能完全不同。NoSQL一詞最早產(chǎn)生于上世紀(jì)九十年代,意思是NoSQL(沒有SQL語言),后來隨著時(shí)間和技術(shù)的發(fā)展,SQL界面仍然作為處理數(shù)據(jù)的方式存在,所以NoSQL又有了新的詮釋,即NotOnlySQL(不只是SQL語言)。今天,NoSQL數(shù)據(jù)庫憑借著其非關(guān)系型、分布式、開源和橫向擴(kuò)展等優(yōu)勢,被認(rèn)為是下一代數(shù)據(jù)庫產(chǎn)品。
四種主要的NoSQL數(shù)據(jù)庫和它們主要的應(yīng)用場景
鍵值數(shù)據(jù)庫:當(dāng)數(shù)據(jù)以鍵的形式訪問時(shí),比如通過國際標(biāo)準(zhǔn)書號ISBN找一本書,鍵值數(shù)據(jù)庫是最理想的。在這里,ISBN是鍵,書籍的其他信息就是值。必須知道鍵才能查詢,不過值是一堆無意義的數(shù)據(jù),讀取之后必須經(jīng)過翻譯。
文檔存儲數(shù)據(jù)庫:該數(shù)據(jù)庫以文檔的形式管理和存儲數(shù)據(jù)。有點(diǎn)類似于鍵值數(shù)據(jù)庫,但文檔數(shù)據(jù)庫中的數(shù)據(jù)有結(jié)構(gòu)。與鍵值數(shù)據(jù)庫中值是一堆無意義的數(shù)據(jù)不同,文檔數(shù)據(jù)庫中數(shù)據(jù)以文檔的結(jié)構(gòu)被描述,典型的是JavaScriptObjectNotation(JSON)或XML.文檔存儲數(shù)據(jù)庫中的數(shù)據(jù)可以通過定義的任何模式進(jìn)行查詢,但鍵值數(shù)據(jù)庫只能通過它的鍵進(jìn)行查詢。