王婭
摘 要:自從大數(shù)據(jù)這個(gè)詞出現(xiàn)以后,人們對(duì)它的研究也越來(lái)越多。大數(shù)據(jù)類型多樣,占據(jù)的空間也非常大,以前傳統(tǒng)關(guān)系型數(shù)據(jù)模型已經(jīng)不能滿足它的需求。如今要處理海量且多種類型的數(shù)據(jù),就需要借助新的非關(guān)系型數(shù)據(jù)庫(kù)模型。本文主要介紹關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)在大數(shù)據(jù)中的應(yīng)用。
關(guān)鍵詞:數(shù)據(jù) 關(guān)系型數(shù)據(jù)庫(kù) 非關(guān)系型數(shù)據(jù)庫(kù)
中圖分類號(hào):TP311.13 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2018)05(c)-0015-02
1 大數(shù)據(jù)
自2008年,Nature首次推出Big Data專刊以來(lái),“大數(shù)據(jù)”這個(gè)詞就以高頻率方式呈現(xiàn)在各大新聞媒體中,而且越演越烈。人們也越來(lái)越重視對(duì)其的探討和研究。
什么是大數(shù)據(jù)?現(xiàn)在不少人認(rèn)同,大數(shù)據(jù)是海量且多種類型的數(shù)據(jù),它具有4V特性:即規(guī)模性(Volume)、多樣性(Variety)、高速性(Velocity)和價(jià)值性(Value)。規(guī)模性指數(shù)據(jù)量巨大,量級(jí)達(dá)到TB級(jí)及PB級(jí);多樣性指數(shù)據(jù)類型繁多,包括結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù);高速性指數(shù)據(jù)創(chuàng)建、處理和分析的速度持續(xù)在加快;價(jià)值性指在大數(shù)據(jù)中有巨大的潛在的價(jià)值,但有價(jià)值的數(shù)據(jù)所占的比例非常低。
大數(shù)據(jù)主要來(lái)自互聯(lián)網(wǎng)領(lǐng)域和物聯(lián)網(wǎng)領(lǐng)域以及一些專業(yè)領(lǐng)域。其包含的數(shù)據(jù)從傳統(tǒng)的單一的文本數(shù)據(jù)發(fā)展成為圖片、視頻、音頻等結(jié)合的多媒體數(shù)據(jù),所占的存儲(chǔ)空間也比原來(lái)大得多。以前傳統(tǒng)關(guān)系型數(shù)據(jù)模型已經(jīng)不能滿足大數(shù)據(jù)的需要。要處理海量且多種類型的數(shù)據(jù),不僅僅要運(yùn)用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)模型,還需要運(yùn)用非關(guān)系型數(shù)據(jù)庫(kù)模型。
2 關(guān)系型數(shù)據(jù)模型和非關(guān)系型數(shù)據(jù)模型
大數(shù)據(jù)可以分為結(jié)構(gòu)化、非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)三類,大數(shù)據(jù)服務(wù)需要能夠同時(shí)支持這三類數(shù)據(jù)。結(jié)構(gòu)化數(shù)據(jù)是指能夠用二維關(guān)系表達(dá)的數(shù)據(jù),它有固定的格式和屬性,對(duì)相同的屬性的數(shù)據(jù)或記錄可以進(jìn)行相應(yīng)的增加和刪除等操作,對(duì)不同的屬性的數(shù)據(jù)往往不能操作。半結(jié)構(gòu)化數(shù)據(jù)是指XML、網(wǎng)頁(yè)這類具有一定結(jié)構(gòu)的數(shù)據(jù)。非結(jié)構(gòu)化數(shù)據(jù)是相對(duì)于結(jié)構(gòu)化數(shù)據(jù)而言的,通過(guò)外在形式來(lái)松散表達(dá)數(shù)據(jù)意義的數(shù)據(jù),它的字段不固定,具有格式各異的特征[4]。
不同的數(shù)據(jù)結(jié)構(gòu)類型,使用的數(shù)據(jù)庫(kù)也不盡相同,主要包含以下幾種。
2.1 分布式結(jié)構(gòu)化數(shù)據(jù)表Bigtable
Bigtable是Google開(kāi)發(fā)的基于GFS和Chubby的分布式存儲(chǔ)系統(tǒng)。它存儲(chǔ)海量結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)。它包含幾個(gè)基本目標(biāo):廣泛的適用性、很強(qiáng)的可擴(kuò)展性、高可用性和簡(jiǎn)單性,是一個(gè)分布式多維映射表,表中的數(shù)據(jù)通過(guò)一個(gè)行關(guān)鍵字、一個(gè)列關(guān)鍵字以及一個(gè)時(shí)間戳進(jìn)行索引,且所有保存其中的數(shù)據(jù)都看做字符串類型。它的存儲(chǔ)邏輯可以表示為:其數(shù)據(jù)的存儲(chǔ)格式,如下圖1所示。
2.2 關(guān)系數(shù)據(jù)庫(kù)服務(wù)RDS
由于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)擴(kuò)展性差,所以RDS采用集群的方式將MySQL數(shù)據(jù)庫(kù)移植到云中,在一定的范圍內(nèi)解決了關(guān)系數(shù)據(jù)庫(kù)的可擴(kuò)展性問(wèn)題。它采用了Share-Nothing架構(gòu)。采用這種架構(gòu),就需要管理總數(shù)據(jù)庫(kù)的開(kāi)發(fā)人員將總的數(shù)據(jù)表劃分成若干個(gè)小表,然后分別存儲(chǔ)在每個(gè)不同的數(shù)據(jù)庫(kù)服務(wù)器上。由于每臺(tái)服務(wù)器都是獨(dú)立的,所以這種邏輯結(jié)構(gòu)就保證了數(shù)據(jù)庫(kù)的可擴(kuò)展性,解決了傳統(tǒng)數(shù)據(jù)庫(kù)擴(kuò)展性差的問(wèn)題。
2.3 微軟云關(guān)系數(shù)據(jù)庫(kù)SQL Azure
SQL Azure是微軟的云中關(guān)系型數(shù)據(jù)庫(kù),是基于SQL Server技術(shù)構(gòu)建的,主要為用戶提供數(shù)據(jù)應(yīng)用。它包含三個(gè)部分:SQL Azure數(shù)據(jù)庫(kù)——為用戶提供云端DBMS、SQL Azure報(bào)表服務(wù)——用數(shù)據(jù)庫(kù)提供報(bào)表服務(wù)和SQL Azure數(shù)據(jù)同步——允許同步本地SQL Server數(shù)據(jù)庫(kù)和SQL Azure數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
2.4 MongoDB數(shù)據(jù)庫(kù)
MongoDB數(shù)據(jù)庫(kù)是一個(gè)開(kāi)放源碼的文檔型NoSQL數(shù)據(jù)庫(kù),可應(yīng)用于對(duì)高并發(fā)訪問(wèn)、高網(wǎng)絡(luò)吞吐的計(jì)算場(chǎng)合。該數(shù)據(jù)庫(kù)是一種面向集合的存儲(chǔ)方式,采用鍵/值,即
MongoDB存儲(chǔ)的方式有兩種,一種是系統(tǒng)主動(dòng)分片存儲(chǔ),另一種是用戶自定義分片存儲(chǔ)。分片存儲(chǔ)的原理是將一個(gè)二進(jìn)制文件分割成多個(gè)數(shù)據(jù)段,每個(gè)段以一條記錄的方式記錄在MongoDB數(shù)據(jù)庫(kù)中。為實(shí)現(xiàn)負(fù)載均衡,MongoDB提供一種機(jī)制使得同一個(gè)文件的多個(gè)分塊分布地存儲(chǔ)于分片服務(wù)器中,每個(gè)分片服務(wù)管理所有數(shù)據(jù)。
2.5 Dynamo
Dynamo是一種鍵值存儲(chǔ)模型,數(shù)據(jù)以鍵值對(duì)的形式儲(chǔ)存,鍵是唯一的。在Dynamo中,數(shù)據(jù)被分割存儲(chǔ)在不同的服務(wù)器集群中,并復(fù)制為多個(gè)副本。其可擴(kuò)展性和持久性依賴于分割和復(fù)制以及對(duì)象版本管理兩個(gè)關(guān)鍵機(jī)制。
它的分割機(jī)制基于一致性哈希技術(shù)。該技術(shù)將數(shù)據(jù)分配的位置看成一個(gè)環(huán)。使用該技術(shù),數(shù)據(jù)鍵值將隨機(jī)分配到環(huán)中的某一個(gè)節(jié)點(diǎn),該節(jié)點(diǎn)稱為協(xié)調(diào)節(jié)點(diǎn)。Dynamo系統(tǒng)中每條數(shù)據(jù)項(xiàng)存儲(chǔ)在協(xié)調(diào)節(jié)點(diǎn)和N﹣1個(gè)后繼節(jié)點(diǎn)上 ,其中N是實(shí)例化的配置參數(shù)。
3 結(jié)語(yǔ)
無(wú)論是關(guān)系型還是非關(guān)系型數(shù)據(jù)庫(kù),都有其自身的優(yōu)缺點(diǎn)。人們?cè)趹?yīng)用數(shù)據(jù)開(kāi)發(fā)時(shí),可根據(jù)需要來(lái)選擇不同的數(shù)據(jù)庫(kù)進(jìn)行操作。
關(guān)系型數(shù)據(jù)庫(kù)所用的結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)并沒(méi)有完全消失,仍然有其利用價(jià)值,特別是對(duì)于 給客戶展示相關(guān)效果時(shí),價(jià)值更加突出。半結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)在加大廣告宣傳的情況下,其利用價(jià)值會(huì)特別顯著。非結(jié)構(gòu)化的數(shù)據(jù)常用于信息搜索。半結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)和非結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)最突出的缺點(diǎn)是操作比較復(fù)雜。非結(jié)構(gòu)化的數(shù)據(jù)如今是常態(tài),在物聯(lián)網(wǎng)中提取的數(shù)據(jù)往往沒(méi)有規(guī)律或沒(méi)有太大的規(guī)律和結(jié)構(gòu),結(jié)構(gòu)化數(shù)據(jù)庫(kù)很顯然不能滿足其需要。我們更需要的是可以任意增加任何結(jié)構(gòu)的數(shù)據(jù),它們之間可以沒(méi)有任何結(jié)構(gòu)關(guān)系,只要我們需要,就可以添加進(jìn)數(shù)據(jù)庫(kù)保存起來(lái),并對(duì)其進(jìn)行相關(guān)的操作。關(guān)系型數(shù)據(jù)庫(kù)對(duì)于高速、同時(shí)處理能力較差,不易于擴(kuò)展,表的鏈接實(shí)效性變差。非關(guān)系型字段不固定,按需提取,沒(méi)有表的鏈接功能,約束性很小,不能實(shí)現(xiàn)條件查詢,只適應(yīng)于簡(jiǎn)單數(shù)據(jù)的應(yīng)用,復(fù)雜數(shù)據(jù)仍然需要依靠SQL數(shù)據(jù)庫(kù)完成。
對(duì)于結(jié)構(gòu)化數(shù)據(jù)而言,其本身采用E-R數(shù)據(jù)模型,半結(jié)構(gòu)化數(shù)據(jù)也已經(jīng)有通過(guò)XML進(jìn)行建模的方案,同時(shí)對(duì)于這兩類數(shù)據(jù)的檢索、分析技術(shù)也相對(duì)成熟。
如果能夠從數(shù)據(jù)中抽取屬性,將非結(jié)構(gòu)化數(shù)據(jù)表示成結(jié)構(gòu)化形式,將有助于實(shí)現(xiàn)非結(jié)構(gòu)化數(shù)據(jù)的有效識(shí)別和分析,這樣才能更好的為人們服務(wù)。
參考文獻(xiàn)
[1] 韓晶.大數(shù)據(jù)服務(wù)若干關(guān)鍵技術(shù)研究[D].北京郵電大學(xué),2013.
[2] 劉鵬.云計(jì)算[M].2版.北京:電子工業(yè)出版社,2011.
[3] 張艷霞,豐繼林,郝偉,等.基于NoSQL的文件型大數(shù)據(jù)存儲(chǔ)技術(shù)研究[J].制造業(yè)自動(dòng)化,2014.6.
[4] 李學(xué)龍,龔海剛.大數(shù)據(jù)系統(tǒng)綜述.中國(guó)科學(xué):信息科學(xué). 2015.1:1-44.