柚子快報(bào)邀請(qǐng)碼778899分享:【數(shù)據(jù)庫(kù)】NoSQL數(shù)據(jù)庫(kù)
柚子快報(bào)邀請(qǐng)碼778899分享:【數(shù)據(jù)庫(kù)】NoSQL數(shù)據(jù)庫(kù)
目錄
【概述】
【分類(lèi)】
鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)
列存儲(chǔ)數(shù)據(jù)庫(kù)
文檔型數(shù)據(jù)庫(kù)
圖形(Graph)數(shù)據(jù)庫(kù)
【概述】
NoSQL(Not only SQL)是對(duì)不同于傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)管理系統(tǒng)的統(tǒng)稱,即廣義地來(lái)說(shuō)可以把所有不是關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)統(tǒng)稱為NoSQL。
NoSQL用于超大規(guī)模數(shù)據(jù)的存儲(chǔ)。這些類(lèi)型的數(shù)據(jù)存儲(chǔ)不需要固定的模式,無(wú)需多余操作就可以橫向擴(kuò)展。
NoSQL 數(shù)據(jù)庫(kù)專(zhuān)門(mén)構(gòu)建用于特定的數(shù)據(jù)模型,并且具有靈活的架構(gòu)來(lái)構(gòu)建現(xiàn)代應(yīng)用程序。NoSQL 數(shù)據(jù)庫(kù)使用各種數(shù)據(jù)模型來(lái)訪問(wèn)和管理數(shù)據(jù)。這些類(lèi)型的數(shù)據(jù)庫(kù)專(zhuān)門(mén)針對(duì)需要大數(shù)據(jù)量、低延遲和靈活數(shù)據(jù)模型的應(yīng)用程序進(jìn)行了優(yōu)化,這是通過(guò)放寬其他數(shù)據(jù)庫(kù)的某些數(shù)據(jù)一致性限制來(lái)實(shí)現(xiàn)的。
【分類(lèi)】
鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)
Key指向Value的鍵值對(duì),通常用hash表來(lái)實(shí)現(xiàn)。
這一類(lèi)數(shù)據(jù)庫(kù)主要會(huì)使用到一個(gè)哈希表,這個(gè)表中有一個(gè)特定的鍵和一個(gè)指針指向特定的數(shù)據(jù)。但是如果DBA只對(duì)部分值進(jìn)行查詢或更新的時(shí)候,Key/value就顯得效率低下了。
鍵值數(shù)據(jù)庫(kù)是高度可分區(qū)的,并且允許以其他類(lèi)型的數(shù)據(jù)庫(kù)無(wú)法實(shí)現(xiàn)的規(guī)模進(jìn)行水平擴(kuò)展。諸如游戲、廣告技術(shù)和 IoT 等使用案例本身特別適合鍵值數(shù)據(jù)模型。Amazon DynamoDB 旨在為任意規(guī)模的工作負(fù)載提供一致且低于 10 毫秒的延遲。這種一致的性能是為何使用 Snapchat Stories 功能的主要原因,該功能包含移至 DynamoDB 的 Snapchat 的最大存儲(chǔ)寫(xiě)入工作負(fù)載。
鍵值數(shù)據(jù)庫(kù)是一種非關(guān)系數(shù)據(jù)庫(kù),它使用簡(jiǎn)單的鍵值方法來(lái)存儲(chǔ)數(shù)據(jù)。鍵值數(shù)據(jù)庫(kù)將數(shù)據(jù)存儲(chǔ)為鍵值對(duì)集合,其中鍵作為唯一標(biāo)識(shí)符。鍵和值都可以是從簡(jiǎn)單對(duì)象到復(fù)雜復(fù)合對(duì)象的任何內(nèi)容。鍵值數(shù)據(jù)庫(kù)是高度可分區(qū)的,并且允許以其他類(lèi)型的數(shù)據(jù)庫(kù)無(wú)法實(shí)現(xiàn)的規(guī)模進(jìn)行水平擴(kuò)展。
eg.
Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
典型應(yīng)用
內(nèi)容緩存,主要用于處理大量數(shù)據(jù)的高訪問(wèn)負(fù)載,也用于一些日志系統(tǒng)等。
列存儲(chǔ)數(shù)據(jù)庫(kù)
以列簇式存儲(chǔ),將同一列數(shù)據(jù)存在一起。這部分?jǐn)?shù)據(jù)庫(kù)通常是用來(lái)應(yīng)對(duì)分布式存儲(chǔ)的海量數(shù)據(jù)。鍵仍然存在,但它們的特點(diǎn)是指向了多個(gè)列。這些列是由列家族來(lái)安排的。
eg.
Cassandra, HBase, Riak.
典型應(yīng)用
分布式的文件系統(tǒng)
文檔型數(shù)據(jù)庫(kù)
在應(yīng)用程序代碼中,數(shù)據(jù)通常表示為對(duì)象或 JSON 文檔,因?yàn)閷?duì)開(kāi)發(fā)人員而言它是高效和直觀的數(shù)據(jù)模型。文檔數(shù)據(jù)庫(kù)讓開(kāi)發(fā)人員可以使用他們?cè)谄鋺?yīng)用程序代碼中使用的相同文檔模型格式,更輕松地在數(shù)據(jù)庫(kù)中存儲(chǔ)和查詢數(shù)據(jù)。文檔和文檔數(shù)據(jù)庫(kù)的靈活、半結(jié)構(gòu)化和層級(jí)性質(zhì)允許它們隨應(yīng)用程序的需求而變化。文檔模型可以很好地與目錄、用戶配置文件和內(nèi)容管理系統(tǒng)配合使用,其中每個(gè)文檔都是唯一的,并會(huì)隨時(shí)間而變化。
文檔型數(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ù)的查詢效率更高。
文檔數(shù)據(jù)庫(kù)是一種非關(guān)系數(shù)據(jù)庫(kù),旨在將數(shù)據(jù)作為類(lèi) JSON 文檔存儲(chǔ)和查詢。文檔數(shù)據(jù)庫(kù)讓開(kāi)發(fā)人員可以使用他們?cè)谄鋺?yīng)用程序代碼中使用的相同文檔模型格式,更輕松地在數(shù)據(jù)庫(kù)中存儲(chǔ)和查詢數(shù)據(jù)。文檔和文檔數(shù)據(jù)庫(kù)的靈活、半結(jié)構(gòu)化和層級(jí)性質(zhì)允許它們隨應(yīng)用程序的需求而變化。文檔模型可以很好地與目錄、用戶配置文件和內(nèi)容管理系統(tǒng)等使用案例配合使用,其中每個(gè)文檔都是唯一的,并會(huì)隨時(shí)間而變化。文檔數(shù)據(jù)庫(kù)支持靈活的索引、強(qiáng)大的臨時(shí)查詢和文檔集合分析。
eg.
CouchDB, MongoDb。國(guó)內(nèi)也有文檔型數(shù)據(jù)庫(kù)SequoiaDB(開(kāi)源)
典型應(yīng)用
Web應(yīng)用
圖形(Graph)數(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)的查詢語(yǔ)言(SQL),因此進(jìn)行數(shù)據(jù)庫(kù)查詢需要制定數(shù)據(jù)模型。許多NoSQL數(shù)據(jù)庫(kù)都有REST式的數(shù)據(jù)接口或者查詢API。
圖形數(shù)據(jù)庫(kù)旨在輕松構(gòu)建和運(yùn)行與高度連接的數(shù)據(jù)集一起使用的應(yīng)用程序。熱門(mén)圖形數(shù)據(jù)庫(kù)包括 Neo4j 和 Giraph。圖形數(shù)據(jù)庫(kù)專(zhuān)門(mén)用于存儲(chǔ)和導(dǎo)航關(guān)系。關(guān)系是圖形數(shù)據(jù)庫(kù)中的一等公民,圖形數(shù)據(jù)庫(kù)的大部分價(jià)值都源自于這些關(guān)系。圖形數(shù)據(jù)庫(kù)使用節(jié)點(diǎn)來(lái)存儲(chǔ)數(shù)據(jù)實(shí)體,并使用邊緣來(lái)存儲(chǔ)實(shí)體之間的關(guān)系。邊緣始終有一個(gè)開(kāi)始節(jié)點(diǎn)、結(jié)束節(jié)點(diǎn)、類(lèi)型和方向,并且邊緣可以描述父子關(guān)系、操作、所有權(quán)等。一個(gè)節(jié)點(diǎn)可以擁有的關(guān)系的數(shù)量和類(lèi)型沒(méi)有限制。
圖形數(shù)據(jù)庫(kù)中的圖形可依據(jù)具體的邊緣類(lèi)型進(jìn)行遍歷,或者也可對(duì)整個(gè)圖形進(jìn)行遍歷。在圖形數(shù)據(jù)庫(kù)中,遍歷聯(lián)結(jié)或關(guān)系非??欤?yàn)楣?jié)點(diǎn)之間的關(guān)系不是在查詢時(shí)計(jì)算的,而是留存在數(shù)據(jù)庫(kù)中。
典型應(yīng)用
社交網(wǎng)絡(luò)、推薦引擎、欺詐檢測(cè)、推薦系統(tǒng)。
柚子快報(bào)邀請(qǐng)碼778899分享:【數(shù)據(jù)庫(kù)】NoSQL數(shù)據(jù)庫(kù)
精彩內(nèi)容
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。