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