趙鑫
摘要:隨著互聯(lián)網(wǎng)的急速發(fā)展和云計算的大范圍普及,我們生活的環(huán)境正在經(jīng)歷著大規(guī)模的數(shù)據(jù)爆炸,海量的數(shù)據(jù)在迅速的增長和積累,我們已經(jīng)步入了大數(shù)據(jù)的時代。面對如此龐大的數(shù)據(jù)量,傳統(tǒng)的關系數(shù)據(jù)庫存儲的硬盤已經(jīng)無法承受各種需求,對于高訪問和高存儲的海量數(shù)據(jù)也無法滿足其高效率的要求,對于改善服務器對于高擴展性和高可用性的缺陷問題,NoSQL這種數(shù)據(jù)庫變營運而生,對于大數(shù)據(jù)的處理起著至關重要的作用。該文將從NoSQL的相關內容進行闡述,進而提出基于NoSQL數(shù)據(jù)庫的大數(shù)據(jù)處理的分析。
關鍵詞:NoSQL;數(shù)據(jù)庫;大數(shù)據(jù);數(shù)據(jù)處理
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)11-0026-02
Analysis of Large Data Processing Based on NoSQL database
ZHAO Xin
(Liaoning Administration Institute, Shengyang 110161, China)
Abstract: with the wide range of the rapid development of Internet and the popularity of cloud computing, our living environment is undergoing a massive explosion of data, massive data in the rapid growth and accumulation, we have entered the era of big data. In the face of such a huge amount of data, the traditional relational database storage hard disk has been unable to withstand a variety of needs, for the high access and storage of massive data can not meet the requirements of high efficiency, to improve the server for high scalability and high availability problems of NoSQL database, the operation is born, to handle large data plays a vital role in the. This paper will elaborate the related content of NoSQL, and analysis of large data processing based on NoSQL database.
Key words: NoSQL; database; data; data processing
隨著社會的發(fā)展和不斷的進步,海量是數(shù)據(jù)已經(jīng)大規(guī)模的出現(xiàn)在人們的生活和科學研究的各個領域之中,人們對于如此多的數(shù)據(jù)的存儲和管理的問題必須重視考慮,互聯(lián)網(wǎng)和云計算技術的興起,越來越多的人們樂意與其他人進行網(wǎng)上分享和交流,尤其隨著電子商務的發(fā)展、測量技術、生物化學、醫(yī)學天文等各個領域,要想將有價值的數(shù)據(jù)在海量的信息中提取出來,僅僅通過傳統(tǒng)的數(shù)據(jù)庫結構已經(jīng)不能將這些龐大的數(shù)據(jù)進行及時有效的處理,于是,一種新的設計思想力求滿足系統(tǒng)的不同需求,沒有固定的模式,可以進行擴展,對傳統(tǒng)的關系型數(shù)據(jù)庫進行補充,這些系統(tǒng)目前被統(tǒng)稱為NoSQL數(shù)據(jù)庫。
1 關于大數(shù)據(jù)
大數(shù)據(jù)在近段時間來,已經(jīng)走入了我們的生活之中,大數(shù)據(jù)具備著數(shù)據(jù)量大、結構復雜、實時性高、價值密度低這樣的四個特征,被歸納為“四個V”,即Volume、Variety、Velocity、Value。主要是對海量的數(shù)據(jù)在可容忍的時間范圍內進行數(shù)據(jù)捕捉、存儲、查詢、共享、分析以及顯示?,F(xiàn)在的人們在日常生活中喜歡與人分享自己的心情、圖片等,通常通過微信、微博等社交工具,因此,常見的如網(wǎng)絡日志、視頻圖片、地理位置等都已經(jīng)成為大數(shù)據(jù)的數(shù)據(jù)來源,而且這些存在的數(shù)據(jù)大部分是半結構化或者是非結構化的數(shù)據(jù)。
大數(shù)據(jù)中的數(shù)據(jù)是海量的,但是價值密度低,也就是說大量的信息中,信息量的價值較低,加之對大數(shù)據(jù)的處理存在缺陷和問題,導致只有在足夠多的數(shù)據(jù)之中,擁有足夠的能力對這些海量數(shù)據(jù)加以處理,才能真正的去挖掘出有價值的部分,從而為企業(yè)等創(chuàng)造巨大的價值。而從技術層面來說,就需要具備分析處理數(shù)據(jù)的工具和人才,采用更加靈活、高效的數(shù)據(jù)存儲模型與處理方式來應對大數(shù)據(jù)環(huán)境之下的海量數(shù)據(jù)。
2 關于NoSQL
2.1 NoSQL的概念
NoSQL(Not Only SQL)是在1998年便被提出,直到2009年作為非關系的分布式數(shù)據(jù)庫才被世人所知,NoSQL主要是指相對于傳統(tǒng)關系數(shù)據(jù)庫的一類數(shù)據(jù)庫的總稱,這一類數(shù)據(jù)庫主要采用的是靈活的、分布式的、可擴展的數(shù)據(jù)存儲方式來對數(shù)據(jù)進行管理,去滿足大數(shù)據(jù)存儲于處理的需求,由于此類數(shù)據(jù)庫對關系操作不支持,因此一般情況下不支持SQL的語言接口。
2.2 NoSQL的特點
相比于傳統(tǒng)的數(shù)據(jù)庫,NoSQL主要具備四大優(yōu)勢的特點,即較容易擴展、較高的性能、數(shù)據(jù)模型的靈活性、可用性能高。NoSQL數(shù)據(jù)庫摒棄了傳統(tǒng)的關系型數(shù)據(jù)庫的特征,數(shù)據(jù)之間無關系,擴展起來較為容易,同時,NoSQL數(shù)據(jù)庫的結構簡單,因此在大數(shù)據(jù)的環(huán)境下更有利于讀寫,NoSQL可以將用戶存儲的數(shù)據(jù)可以及時進行存儲,更符合大數(shù)據(jù)的特點,對此進行優(yōu)化,可提供更加高效、符合大數(shù)據(jù)處理數(shù)據(jù)的需求的操作方式。
3 NoSQL數(shù)據(jù)庫的存儲模型
由于NoSQL并非基于關系模型的數(shù)據(jù)結構,因此,NoSQL數(shù)據(jù)存儲通常是不基于表的連接操作。NoSQL數(shù)據(jù)庫可以根據(jù)數(shù)據(jù)庫的存儲模型及其特點進行分類,通??煞譃樗膫€類型,即:廣義列模型、鍵值模型、文檔模型和圖模型。NoSQL數(shù)據(jù)庫存儲模型劃分實例和特點如圖1所示。
圖1 NoSQL數(shù)據(jù)庫存儲模型劃分
3.1 廣義列模型
廣義列模型也可以叫做列式模型,這種模型并不支持類似于多表連接這樣的操作,主要適用于類似傳統(tǒng)的二維表的這樣的數(shù)據(jù)庫,列式模型主要的特點就是在對數(shù)據(jù)進行存儲時,主要是圍繞列而并非行進行存儲。也就是說,在大數(shù)據(jù)之中進行海量數(shù)據(jù)的存儲的時候,同一列的數(shù)據(jù)會盡可能的存放在硬盤的同一個頁面上,這樣的優(yōu)勢在于,對于同一列數(shù)據(jù)進行海量的數(shù)據(jù)分析時,會大大的減少硬盤的輸入及輸出的操作,這樣便可以極大的提升數(shù)據(jù)處理的速度。
3.2 鍵值模型
鍵值模型的思想來源于數(shù)據(jù)結構中的哈希表,有一個特定的key和一個value指針,用來指向特定的數(shù)據(jù)。在大數(shù)據(jù)的環(huán)境之下,海量的數(shù)據(jù)存儲使用鍵值模型最大的優(yōu)勢就在于數(shù)據(jù)模型相對簡單,比較容易實現(xiàn),非常使用通過key對數(shù)據(jù)進行查詢和修改等操作。但是如果整個大數(shù)據(jù)的環(huán)境之中存儲系統(tǒng)更加注重的是批量數(shù)據(jù)的查詢以及更新的操作,那么,鍵值模型便在效率上處于劣勢,可見,鍵值模型的存儲方式并不適用于較為復雜的數(shù)據(jù)操作。
3.3 文檔模型
文檔模型的數(shù)據(jù)庫就好比是在鍵值存儲模型和傳統(tǒng)的關系數(shù)據(jù)庫之間進行溝通,數(shù)據(jù)結構主要是以JSON或者是相類似的JSON格式的文檔對數(shù)據(jù)進行存儲,在存儲過程中,是有語義存在的,文檔模型的數(shù)據(jù)庫主要應用為MongoDB和CouchDB。通常來說,文檔模型的數(shù)據(jù)庫可以認為是鍵值數(shù)據(jù)庫的升級,對鍵值是允許嵌套的,而且文檔模型是可以對其值進行索引的創(chuàng)建,這樣會方便上層的應用,這也正是鍵值數(shù)據(jù)模型所無法支持的。與鍵值數(shù)據(jù)模型相比,文檔數(shù)據(jù)模型在海量數(shù)據(jù)查詢時,效率會更為突出。
3.4 圖模型
目前來說,對于圖模型的研究為數(shù)不多,不過,從早期的數(shù)據(jù)模型發(fā)展來看,所說的圖模型就是傳統(tǒng)關心數(shù)據(jù)庫中的網(wǎng)絡結構圖,但圖結構較關系數(shù)據(jù)庫模型相比更加規(guī)范化,但是,傳統(tǒng)的關系數(shù)據(jù)庫在對文件的遞歸結構以及社交網(wǎng)絡結構查詢的時候會受到性能的影響,不但操作緩慢,而且對于表中元組數(shù)量的增加無法跟著伸縮,為了解決傳統(tǒng)關系數(shù)據(jù)庫的性能缺陷,研究人員便提出了圖模型。一個完整的圖模型當中包含節(jié)點、關系、節(jié)點和關系上的屬性等單元。
4 基于NoSQL數(shù)據(jù)庫的大數(shù)據(jù)處理方法
4.1 MapReduce方法
MapReduce是目前處理大數(shù)據(jù)最普遍和最流行的方法。Map即映射,Reduce即化簡,設計思想主要來源于函數(shù)編程語言,對于MapReduce處理大數(shù)據(jù)的流程圖如圖2所示。
圖2 MapReduce處理任務流程圖
在大數(shù)據(jù)環(huán)境之下,MapReduce 的流程就是將大數(shù)據(jù)集分解成為多個小數(shù)據(jù)集,一個或多個數(shù)據(jù)集分別由集群中的節(jié)點來處理和生成中間結果,然后這些中間節(jié)點又通過大量的合并形成最終結果,在這整個過程中,需要用戶完成的工作只是編寫所需的 Map 函數(shù)和Reduce 函數(shù)。處理大數(shù)據(jù)的效率是非??斓摹?/p>
4.2 Dryad 方法
Dryad是微軟公司發(fā)布的并行處理海量數(shù)據(jù)設計的分布式架構,可以為海量的數(shù)據(jù)提供高效可靠的分布式擴展服務,同時,還可以為海量的數(shù)據(jù)處理的并行程序提供一個分布式的高效率的執(zhí)行引擎。Dryad的架構主要包含了四個重要的組件:基礎設施(WindowsHPC Server)、DFS(即分布式文件系統(tǒng),Cosmos)、執(zhí)行引擎(Dryad )和語言解釋引擎(DryadLINQ)。
總之,在如今這個大數(shù)據(jù)的時代,傳統(tǒng)的關系數(shù)據(jù)庫已經(jīng)逐漸的不能再適應人們的需求,NoSQL數(shù)據(jù)庫則具有良好的擴展性和可用性,可以將傳統(tǒng)的數(shù)據(jù)庫的缺陷進行彌補,大數(shù)據(jù)時代的到來以及云計算技術的普及,都為NoSQL數(shù)據(jù)庫帶來了新的挑戰(zhàn)與機遇,NoSQL數(shù)據(jù)庫還有許多地方值得深思,但將NoSQL數(shù)據(jù)庫與其他的技術相結合,在大數(shù)據(jù)的海量數(shù)據(jù)處理之中,對于提高速度和存儲容量仍是不可取代的!
參考文獻:
[1] 李偉.大數(shù)據(jù)下的NoSQL數(shù)據(jù)庫技術分析[J].信息通信.2014(7).
[2] 李青.基于NoSQL的大數(shù)據(jù)處理的研究[D].西南電子科技大學.2014.
[3] 吳金朋.一種大數(shù)據(jù)存儲模型的研究與應用[D].北京郵電大學.2012.