CGFT大數(shù)據(jù)技術(shù)原理中NoSQL的四大類型是什么?

CGFT大數(shù)據(jù)技術(shù)原理中NoSQL的四大類型是什么?今天跟著小編一起看看。

1、鍵值數(shù)據(jù)庫(kù)

鍵值數(shù)據(jù)庫(kù)(Key-Value Database)會(huì)使用一個(gè)哈希表,這個(gè)表中有一個(gè)特定的Key和一個(gè)指針指向特定的Value。Key可以用來(lái)定位Value,即存儲(chǔ)和檢索具體的Value。Value對(duì)數(shù)據(jù)庫(kù)而言是透明不可見的,不能對(duì)Value進(jìn)行索引和查詢,只能通過(guò)Key進(jìn)行查詢。

Value可以用來(lái)存儲(chǔ)任意類型的數(shù)據(jù),包括整型、字符型、數(shù)組、對(duì)象等。在存在大量寫操作的情況下,鍵值數(shù)據(jù)庫(kù)可以比關(guān)系數(shù)據(jù)庫(kù)取得明顯更好的性能。因?yàn)?,關(guān)系數(shù)據(jù)庫(kù)需要建立索引來(lái)加速查詢,當(dāng)存在大量寫操作時(shí),索引會(huì)發(fā)生頻繁更新,由此會(huì)產(chǎn)生高昂的索引維護(hù)代價(jià)。

cgft

關(guān)系數(shù)據(jù)庫(kù)通常很難水平擴(kuò)展,但是,鍵值數(shù)據(jù)庫(kù)天生具有良好的伸縮性,理論上幾乎可以實(shí)現(xiàn)數(shù)據(jù)量的無(wú)限擴(kuò)容。鍵值數(shù)據(jù)庫(kù)可以進(jìn)一步劃分為內(nèi)存鍵值數(shù)據(jù)庫(kù)和持久化(Persistent)鍵值數(shù)據(jù)庫(kù)。內(nèi)存鍵值數(shù)據(jù)庫(kù)把數(shù)據(jù)保存在內(nèi)存,如Memcached和Redis;持久化鍵值數(shù)據(jù)庫(kù)把數(shù)據(jù)保存在磁盤,如BerkeleyDB、Voldmort和Riak。

2、列族數(shù)據(jù)庫(kù)

列族數(shù)據(jù)庫(kù)一般采用列族數(shù)據(jù)模型,數(shù)據(jù)庫(kù)由多個(gè)行構(gòu)成,每行數(shù)據(jù)包含多個(gè)列族,不同的行可以具有不同數(shù)量的列族,屬于同一列族的數(shù)據(jù)會(huì)被存放在一起。每行數(shù)據(jù)通過(guò)行鍵進(jìn)行定位,與這個(gè)行鍵對(duì)應(yīng)的是一個(gè)列族,從這個(gè)角度來(lái)說(shuō),列族數(shù)據(jù)庫(kù)也可以被視為一個(gè)鍵值數(shù)據(jù)庫(kù)。列族可以被配置成支持不同類型的訪問(wèn)模式,一個(gè)列族也可以被設(shè)置成放入內(nèi)存當(dāng)中,以消耗內(nèi)存為代價(jià)來(lái)?yè)Q取更好的響應(yīng)性能。

3、文檔數(shù)據(jù)庫(kù)

在文檔數(shù)據(jù)庫(kù)中,文檔是數(shù)據(jù)庫(kù)的*小單位。雖然每一種文檔數(shù)據(jù)庫(kù)的部署都有所不同,但是,大都假定文檔以某種標(biāo)準(zhǔn)化格式封裝并對(duì)數(shù)據(jù)進(jìn)行加密,同時(shí)用多種格式進(jìn)行解碼,包括XML、YAML、JSON和BSON等,或者也可以使用二進(jìn)制格式(如PDF、微軟Office文檔等)。

文檔數(shù)據(jù)庫(kù)通過(guò)鍵來(lái)定位一個(gè)文檔,因此可以看成鍵值數(shù)據(jù)庫(kù)的一個(gè)衍生品,而且前者比后者具有更高的查詢效率。對(duì)于那些可以把輸人數(shù)據(jù)表示成文檔的應(yīng)用而言,文檔數(shù)據(jù)庫(kù)是*合適的一個(gè)文檔可以包含*復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如嵌套對(duì)象,并且不需要采用特定的數(shù)據(jù)模式,每個(gè)文檔可能具有完全不同的結(jié)構(gòu)。文檔數(shù)據(jù)庫(kù)既可以根據(jù)鍵(Key)來(lái)構(gòu)建索引,也可以基于文檔內(nèi)容來(lái)構(gòu)建索引。

尤其是基于文檔內(nèi)容的索引和查詢這種能力,是文檔數(shù)據(jù)庫(kù)不同于鍵值數(shù)據(jù)庫(kù)的地方,因?yàn)?,在鍵值數(shù)據(jù)庫(kù)中,值(Value)對(duì)數(shù)據(jù)庫(kù)是透明不可見的,不能根據(jù)值來(lái)構(gòu)建索引。文檔數(shù)據(jù)庫(kù)主要用于存儲(chǔ)并檢索文檔數(shù)據(jù),當(dāng)需要考慮很多關(guān)系和標(biāo)準(zhǔn)化約束以及需要事務(wù)支持時(shí),傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)是更好的選擇。

4、圖形數(shù)據(jù)庫(kù)

圖形數(shù)據(jù)庫(kù)以圖論為基礎(chǔ),一個(gè)圖是一個(gè)數(shù)學(xué)概念,用來(lái)表示一個(gè)對(duì)象集合,包括頂點(diǎn)以連接頂點(diǎn)的邊。圖形數(shù)據(jù)庫(kù)使用圖作為數(shù)據(jù)模型來(lái)存儲(chǔ)數(shù)據(jù),完全不同于鍵值、列族和文檔數(shù)據(jù)模型,可以高效地存儲(chǔ)不同頂點(diǎn)之間的關(guān)系。圖形數(shù)據(jù)庫(kù)專門用于處理具有高度相互關(guān)聯(lián)關(guān)系的數(shù)據(jù),可以高效地處理實(shí)體之間的關(guān)系,比較適合于社交網(wǎng)絡(luò)、模式識(shí)別、依賴分析、推薦系統(tǒng)以及路徑尋找等問(wèn)題。