楊曉雁,張博欣
(延安大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,陜西 延安 716000)
網(wǎng)絡(luò)數(shù)據(jù)庫(Network Database,以下簡稱ND),是一種跨越基本數(shù)據(jù)載體如電腦、服務(wù)器等,通過互聯(lián)網(wǎng)、云系統(tǒng)搭建并運(yùn)行的虛擬數(shù)據(jù)庫[1]。ND理念中的數(shù)據(jù)之間關(guān)系為一對一、一對多關(guān)系。隨著互聯(lián)網(wǎng)普及程度的提升,利用網(wǎng)絡(luò)數(shù)據(jù)庫進(jìn)行視頻、圖像以及其他各類型數(shù)據(jù)保存所帶來的數(shù)據(jù)存儲壓力飛速提升。傳統(tǒng)的集成光纖陣列技術(shù)、數(shù)據(jù)倉庫技術(shù)等構(gòu)建的網(wǎng)絡(luò)數(shù)據(jù)庫已經(jīng)逐漸無法滿足海量數(shù)據(jù)所帶來的超高訪問量以及訪問頻次要求。因此,本文基于云平臺,對大數(shù)據(jù)應(yīng)用體系中的網(wǎng)絡(luò)數(shù)據(jù)庫進(jìn)行優(yōu)化,通過集成云計(jì)算,實(shí)現(xiàn)了ND系統(tǒng)中的數(shù)據(jù)優(yōu)先級訪問功能;通過云計(jì)算、虛擬技術(shù)大幅提升ND系統(tǒng)存儲能力、并發(fā)性和利用率等。
云數(shù)據(jù)庫(CloudDB)即云計(jì)算+網(wǎng)絡(luò)數(shù)據(jù)庫,是指被優(yōu)化或部署到虛擬云環(huán)境中的網(wǎng)絡(luò)數(shù)據(jù)庫,能夠根據(jù)用戶自身個(gè)性化需求實(shí)現(xiàn)數(shù)據(jù)庫按需付費(fèi)、按需擴(kuò)展以及存儲整合等[2]。CloudDB是在軟件即服務(wù)理念基礎(chǔ)以及大數(shù)據(jù)技術(shù)發(fā)展背景下由云計(jì)算、數(shù)據(jù)庫技術(shù)演變而來的虛擬數(shù)據(jù)庫技術(shù),能夠極大地增強(qiáng)傳統(tǒng)數(shù)據(jù)庫的存儲容量、利用率等。同時(shí),CloudDB技術(shù)的出現(xiàn)優(yōu)化了許多傳統(tǒng)數(shù)據(jù)庫的后端功能,具有高度個(gè)性化、可拓展、支持資源有效分發(fā)等優(yōu)勢。圖1所示為一典型CloudDB系統(tǒng)[3]。
圖1 典型CloudDB系統(tǒng)結(jié)構(gòu)示意圖
當(dāng)前國內(nèi)外進(jìn)行CloudDB產(chǎn)品開發(fā)的企業(yè)及其云數(shù)據(jù)庫產(chǎn)品主要有亞馬遜DynamoDB、阿里巴巴RDS以及騰訊MongoDB等。本文將基于RDS進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)庫云計(jì)算技術(shù)優(yōu)化論述,通過對比RDS與自建數(shù)據(jù)庫獲得云計(jì)算技術(shù)對網(wǎng)絡(luò)數(shù)據(jù)庫的優(yōu)化成效。
RDS(ApsaraDB for RDS,簡稱RDS)是一款由阿里巴巴開發(fā)的云數(shù)據(jù)庫平臺[4]。該平臺在傳統(tǒng)MySQL框架下,針對高并發(fā)場景進(jìn)行特殊優(yōu)化,同時(shí)引入線程池、并行復(fù)制、隱含主鍵等功能保證系統(tǒng)持續(xù)穩(wěn)定和高吞吐,解決了一般數(shù)據(jù)庫系統(tǒng)安全等級低、數(shù)據(jù)可靠性差、部署架構(gòu)單一等問題,具有豐富的產(chǎn)品形態(tài)和多種部署架構(gòu),充分滿足了海量用戶群體的關(guān)于數(shù)據(jù)庫的個(gè)性化需求。
表1所示為RDS與一般自購服務(wù)器搭建的網(wǎng)絡(luò)數(shù)據(jù)庫性能對比情況。由表1可知,在云計(jì)算技術(shù)與網(wǎng)絡(luò)數(shù)據(jù)庫技術(shù)進(jìn)行融合之后,大幅提升了網(wǎng)絡(luò)數(shù)據(jù)庫在服務(wù)可用性、數(shù)據(jù)可靠性、系統(tǒng)安全性等方面的優(yōu)勢。同時(shí),由于RDS按用戶實(shí)際對資源的使用情況進(jìn)行利用率結(jié)算,因此RDS幾乎能為用戶或企業(yè)帶來高達(dá)100%資源利用率,避免了傳統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)庫高峰期和低峰期帶來的資源浪費(fèi)。
表1 性能對比[5]
本文以微軟的SQL Azure云數(shù)據(jù)庫為基礎(chǔ),充分融合Redhat、MapReduce等技術(shù),搭建了圖2所示采用關(guān)系數(shù)據(jù)模型的云數(shù)據(jù)庫平臺架構(gòu)[6]。該系統(tǒng)包含一個(gè)虛擬機(jī)簇,可以為用戶提供動態(tài)可控的虛擬機(jī)數(shù)量,進(jìn)而實(shí)現(xiàn)用戶使用過程中的快速部署、彈性擴(kuò)容功能。
圖2 采用關(guān)系數(shù)據(jù)模型的云數(shù)據(jù)庫平臺架構(gòu)
平臺中每臺虛擬機(jī)均通過SQL Azure實(shí)現(xiàn)數(shù)據(jù)管理、存儲。通常一份云數(shù)據(jù)庫中的視頻、圖像以及文本等內(nèi)容會被分別存儲在3~5臺虛擬機(jī)中,每臺虛擬主機(jī)均可以負(fù)責(zé)數(shù)據(jù)的存儲、傳輸和共享,用以充分保障平臺高可用性性能要求。不同的虛擬主機(jī)之間會通過網(wǎng)絡(luò)交換彼此內(nèi)部監(jiān)控信息,進(jìn)而保證整個(gè)云數(shù)據(jù)庫平臺的可監(jiān)控性。
搭建采用關(guān)系數(shù)據(jù)模型的云數(shù)據(jù)庫平臺主要通過圖3中關(guān)鍵步驟實(shí)現(xiàn)。
圖3 實(shí)現(xiàn)關(guān)鍵步驟與技術(shù)
3.2.1 利用Redhat設(shè)置平臺操作系統(tǒng)
Redhat作為一種桌面版和服務(wù)器版共存的底層平臺操作工具,在應(yīng)用于云數(shù)據(jù)庫系統(tǒng)后,具有樸實(shí)、簡潔、穩(wěn)定等性能優(yōu)勢,同時(shí)兼具較強(qiáng)的系統(tǒng)可拓展性,能夠幫助云數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)海量數(shù)據(jù)處理。該操作系統(tǒng)具有將各類型信息進(jìn)行可視化處理功能,一定程度上能夠拓展系統(tǒng)物理存儲空間,提高大數(shù)據(jù)處理效率可通信寬帶利用率,圖4為選擇利用Redhat設(shè)置平臺操作系統(tǒng)時(shí)的操作界面截圖[7]。
3.2.2 搭建Hadoop集群
MapReduce具有開發(fā)簡單、可擴(kuò)展性強(qiáng)以及容錯(cuò)率高等優(yōu)勢,對于Hadoop集群在作業(yè)時(shí)出現(xiàn)的節(jié)點(diǎn)故障,能夠自動安排無故障的系統(tǒng)節(jié)點(diǎn)進(jìn)行作業(yè),能夠一定程度上優(yōu)化Hadoop集群作業(yè),實(shí)現(xiàn)海量數(shù)據(jù)的分布式計(jì)算[8]?;贛apReduce搭建的Hadoop集群系統(tǒng)見圖5。
圖4 Redhat設(shè)置平臺操作系統(tǒng)
圖5 Hadoop集群系統(tǒng)
3.2.3 數(shù)據(jù)整合與預(yù)處理
云數(shù)據(jù)庫可供用戶儲存的資源類型極多,如個(gè)人用戶的文件日志、視頻數(shù)據(jù)以及企業(yè)用戶的關(guān)系數(shù)據(jù)、對象數(shù)據(jù)等[9]。云數(shù)據(jù)庫中儲存的數(shù)據(jù)類型囊括了結(jié)構(gòu)與非結(jié)構(gòu)等不同性質(zhì)的數(shù)據(jù)。本次構(gòu)建系統(tǒng)實(shí)現(xiàn)了云數(shù)據(jù)庫結(jié)構(gòu)與非結(jié)構(gòu)性數(shù)據(jù)的整合,以便用戶能夠利用云數(shù)據(jù)庫服務(wù)總線對數(shù)據(jù)進(jìn)行預(yù)處理、傳輸以及可視化等。本次構(gòu)建云數(shù)據(jù)庫采用HiveSQL工具作為系統(tǒng)完成數(shù)據(jù)整合與預(yù)處理的主要工具,進(jìn)一步增強(qiáng)了系統(tǒng)對大規(guī)模數(shù)據(jù)的管控。
3.2.4 數(shù)據(jù)挖掘和分析
云數(shù)據(jù)庫需要儲存海量的各類型資源數(shù)據(jù)。由于數(shù)據(jù)量巨大,若不針對數(shù)據(jù)進(jìn)行篩選,數(shù)據(jù)庫用戶在進(jìn)行操作時(shí)往往將面臨無序、雜亂、復(fù)雜的數(shù)據(jù)應(yīng)用場景。本文利用數(shù)據(jù)挖掘和分析技術(shù),對云數(shù)據(jù)庫數(shù)據(jù)利用時(shí)效性進(jìn)行優(yōu)化(圖6),大幅縮短了操作人員進(jìn)行數(shù)據(jù)增刪改查等處理的時(shí)間。
圖6 數(shù)據(jù)挖掘和分析模塊配置截圖
本文對大數(shù)據(jù)時(shí)代云計(jì)算技術(shù)對網(wǎng)絡(luò)數(shù)據(jù)庫的性能優(yōu)化進(jìn)行總結(jié),以微軟的SQL Azure云數(shù)據(jù)庫為基礎(chǔ),初步構(gòu)建了一種基于云計(jì)算技術(shù)的云數(shù)據(jù)庫系統(tǒng)框架;對框架所應(yīng)用的能夠影響云數(shù)據(jù)庫系統(tǒng)性能的關(guān)鍵技術(shù)和模塊進(jìn)行了綜述。云數(shù)據(jù)庫能夠滿足用戶個(gè)性化需求,實(shí)現(xiàn)傳統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)庫無法提供的易檢索、高存儲量、低成本、高共享等優(yōu)勢。