国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

大數(shù)據(jù)管理系統(tǒng)的歷史、現(xiàn)狀與未來(lái)*

2019-12-21 04:54:30杜小勇
軟件學(xué)報(bào) 2019年1期
關(guān)鍵詞:關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)管理管理系統(tǒng)

杜小勇,盧 衛(wèi),張 峰

1(數(shù)據(jù)工程與知識(shí)工程教育部重點(diǎn)實(shí)驗(yàn)室(中國(guó)人民大學(xué)),北京 100872)

2(中國(guó)人民大學(xué) 信息學(xué)院,北京 100872)

近年來(lái),大數(shù)據(jù)的重要性凸顯,世界上的許多國(guó)家都把大數(shù)據(jù)上升到國(guó)家戰(zhàn)略的高度.實(shí)施國(guó)家大數(shù)據(jù)戰(zhàn)略,離不開(kāi)大數(shù)據(jù)技術(shù)的研究.回顧信息技術(shù)的發(fā)展歷史,數(shù)據(jù)管理技術(shù)是信息應(yīng)用技術(shù)的基礎(chǔ).與其他計(jì)算機(jī)學(xué)科相比,數(shù)據(jù)管理是整個(gè)領(lǐng)域?yàn)閿?shù)不多的既有基礎(chǔ)理論研究、又有系統(tǒng)軟件研制、還有產(chǎn)業(yè)支撐的學(xué)科.專門從事數(shù)據(jù)管理系統(tǒng)軟件和應(yīng)用軟件研制的甲骨文公司于2013年超越IBM,成為繼微軟公司之后全球第二大軟件公司.如今,歷史似乎又正在重演,大數(shù)據(jù)管理在大數(shù)據(jù)技術(shù)中表現(xiàn)得越來(lái)越重要.

大數(shù)據(jù)管理系統(tǒng)正在經(jīng)歷以軟件為中心到以數(shù)據(jù)為中心的計(jì)算平臺(tái)的變遷.計(jì)算機(jī)的研制最初是為了滿足軍事和科學(xué)計(jì)算的需要,應(yīng)用軟件的開(kāi)發(fā)和系統(tǒng)軟件的研制均以硬件為中心開(kāi)展,且依賴于特定的計(jì)算機(jī)硬件環(huán)境.自微軟公司1980年推出MS DOS(MicroSoft Disk Operating System)磁盤操作系統(tǒng)以來(lái),MSDOS作為當(dāng)時(shí)IBM的PC和兼容機(jī)的基本軟件,成為了個(gè)人計(jì)算機(jī)中最普遍的操作系統(tǒng).隨后,微軟推出的首個(gè)帶有圖形界面的個(gè)人電腦操作系統(tǒng)Windows 1.0,逐漸成為PC機(jī)的預(yù)裝軟件.微軟操作系統(tǒng)成功推動(dòng)了底層要素的標(biāo)準(zhǔn)化,即底層硬件的可替代性.具體來(lái)說(shuō),操作系統(tǒng)統(tǒng)一將硬件標(biāo)準(zhǔn)化為設(shè)備,使用同樣的接口,這樣,操作系統(tǒng)就可以運(yùn)行在不同的硬件平臺(tái),使得底層硬件的可替代性得到了增強(qiáng).與此同時(shí),微軟操作系統(tǒng)也成為新的中心,即,應(yīng)用軟件的開(kāi)發(fā)和系統(tǒng)軟件的研制此后均以操作系統(tǒng)軟件為中心展開(kāi).

隨著信息技術(shù)的發(fā)展,特別是以互聯(lián)網(wǎng)為代表的大數(shù)據(jù)應(yīng)用每天產(chǎn)生巨大的數(shù)據(jù)量,大數(shù)據(jù)管理系統(tǒng)也發(fā)生了以軟件為中心到以數(shù)據(jù)為中心的計(jì)算平臺(tái)的遷移.例如,谷歌、百度等搜索引擎公司存儲(chǔ)的網(wǎng)頁(yè)數(shù)據(jù)越來(lái)越多,逐漸成為網(wǎng)絡(luò)數(shù)據(jù)的集中存放倉(cāng)庫(kù),并以這些數(shù)據(jù)為中心開(kāi)展各項(xiàng)服務(wù).據(jù)統(tǒng)計(jì),2013年,谷歌大約存儲(chǔ)了10EB(Exabyte,1018bytes)的磁盤數(shù)據(jù).如何存儲(chǔ)和管理如此巨量的數(shù)據(jù),是目前研究的熱點(diǎn).不僅限于搜索引擎公司,其他信息技術(shù)公司也都面臨同樣的大數(shù)據(jù)管理需求.例如:阿里巴巴集團(tuán)旗下的螞蟻金服存儲(chǔ)著巨量的交易數(shù)據(jù),同時(shí),以此為基礎(chǔ)提供征信服務(wù)[1,2];騰訊公司的社交數(shù)據(jù)中心存有大量的用戶會(huì)話、朋友圈等信息[3],并基于這些信息開(kāi)發(fā)新型應(yīng)用.總之,這些數(shù)據(jù)不可避免地成為了一個(gè)新平臺(tái),大數(shù)據(jù)時(shí)代要求我們?cè)谝詳?shù)據(jù)為中心的平臺(tái)上去開(kāi)發(fā)新型數(shù)據(jù)管理系統(tǒng)和相應(yīng)的應(yīng)用系統(tǒng).

大數(shù)據(jù)管理系統(tǒng)正在經(jīng)歷的另一個(gè)趨勢(shì)是基礎(chǔ)設(shè)施化,基礎(chǔ)設(shè)施是指人們生活中不可或缺的設(shè)施服務(wù),例如水電等公共服務(wù)、飛機(jī)公路等交通設(shè)施等.基礎(chǔ)設(shè)施必須具備3個(gè)基本特征:第一,基礎(chǔ)性,即社會(huì)運(yùn)行不可缺少的東西;第二,規(guī)模性,只有達(dá)到了與社會(huì)經(jīng)濟(jì)狀況相適應(yīng)的規(guī)模才能提供有效的服務(wù);第三,可靠性,不能經(jīng)常出錯(cuò),要能提供持續(xù)穩(wěn)定的服務(wù).我們正在步入數(shù)字經(jīng)濟(jì)和數(shù)字社會(huì)時(shí)代,軟件作為一種使能技術(shù),在數(shù)字社會(huì)中具有不可替代的作用,軟件基礎(chǔ)設(shè)施化的趨勢(shì)也越來(lái)越明顯,并具有其獨(dú)特的表現(xiàn):第一,基礎(chǔ)性,計(jì)算作為數(shù)字社會(huì)中最重要、最基礎(chǔ)的服務(wù),需要通過(guò)軟件來(lái)提供,計(jì)算能力通過(guò)軟件的定義,可以呈現(xiàn)為豐富多彩的服務(wù)形態(tài);第二,規(guī)模性,整個(gè)社會(huì)的計(jì)算能力,或通過(guò)軟件重定義的服務(wù)能力,必須互聯(lián)互通作為一個(gè)整體才能成為社會(huì)的基礎(chǔ)設(shè)施;第三,可靠性.基礎(chǔ)設(shè)施化的軟件必須能夠提供穩(wěn)定的、持續(xù)的、高效的在線服務(wù).大數(shù)據(jù)管理系統(tǒng)正在經(jīng)歷軟件的基礎(chǔ)設(shè)施化進(jìn)程.軟件服務(wù)的種類很多,其中最重要的服務(wù)就是數(shù)據(jù)服務(wù).云計(jì)算不僅是計(jì)算資源的匯聚,更是數(shù)據(jù)資源的匯聚.這些數(shù)據(jù)資源之間通過(guò)數(shù)據(jù)庫(kù)軟件實(shí)現(xiàn)互聯(lián)、互通,并向公眾提供數(shù)據(jù)的存儲(chǔ)與組織以及查詢、分析、維護(hù)、安全性等管理服務(wù).這樣的數(shù)據(jù)庫(kù)軟件我們稱其為大數(shù)據(jù)管理系統(tǒng).大數(shù)據(jù)時(shí)代要求我們根據(jù)軟件的基礎(chǔ)設(shè)施化去開(kāi)發(fā)大數(shù)據(jù)管理系統(tǒng)和相應(yīng)的應(yīng)用系統(tǒng).

結(jié)合大數(shù)據(jù)時(shí)代所處的兩個(gè)趨勢(shì)特征,本文首先回顧數(shù)據(jù)管理技術(shù)的發(fā)展歷史(見(jiàn)第 1節(jié)).之后,從數(shù)據(jù)存儲(chǔ)、組織模型、計(jì)算模式和分析引擎等維度深入剖析大數(shù)據(jù)管理系統(tǒng)的現(xiàn)狀(見(jiàn)第2節(jié)),并指出大數(shù)據(jù)管理系統(tǒng)應(yīng)具備的數(shù)據(jù)特征、系統(tǒng)特征和應(yīng)用特征(見(jiàn)第3節(jié)).隨后,本文進(jìn)一步對(duì)大數(shù)據(jù)管理系統(tǒng)的未來(lái)發(fā)展趨勢(shì)進(jìn)行展望(見(jiàn)第4節(jié)).最后對(duì)全文進(jìn)行總結(jié)(見(jiàn)第5節(jié)).

1 數(shù)據(jù)庫(kù)管理系統(tǒng)的發(fā)展歷史回顧

數(shù)據(jù)庫(kù)管理系統(tǒng)的功能是伴隨著對(duì)數(shù)據(jù)的組織和管理以及應(yīng)用的需求而不斷發(fā)展起來(lái)的.第 1代系統(tǒng)的功能主要集中在數(shù)據(jù)的組織與存儲(chǔ),數(shù)據(jù)的組織以層次和網(wǎng)狀模型為代表,多種鏈表結(jié)構(gòu)作為存儲(chǔ)方式.這個(gè)時(shí)期的數(shù)據(jù)庫(kù)系統(tǒng)可以看作是一種數(shù)據(jù)組織與存取的工具.第2代系統(tǒng)主要圍繞OLTP應(yīng)用展開(kāi),在關(guān)系模型和存儲(chǔ)技術(shù)的基礎(chǔ)上,重點(diǎn)發(fā)展了事務(wù)處理子系統(tǒng)、查詢優(yōu)化子系統(tǒng)、數(shù)據(jù)訪問(wèn)控制子系統(tǒng).第 3代系統(tǒng)主要圍繞OLAP應(yīng)用展開(kāi),重點(diǎn)在于提出高效支持OLAP復(fù)雜查詢的新型數(shù)據(jù)組織技術(shù),包括CUBE和列存儲(chǔ)等技術(shù)以及OLAP分析前端工具.第4代系統(tǒng)主要圍繞大數(shù)據(jù)應(yīng)用展開(kāi),重點(diǎn)在分布式可擴(kuò)展、異地多備份高可用架構(gòu)、多數(shù)據(jù)模型支持以及多應(yīng)用負(fù)載類型支持等特性.

1.1 第1代:層次、網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)

數(shù)據(jù)庫(kù)管理系統(tǒng)的發(fā)展可以上溯到 20世紀(jì) 60年代出現(xiàn)的層次數(shù)據(jù)庫(kù)技術(shù),當(dāng)時(shí),計(jì)算機(jī)已經(jīng)開(kāi)始在商業(yè)上獲得應(yīng)用,文件作為數(shù)據(jù)存儲(chǔ)的主要設(shè)施,已經(jīng)無(wú)法滿足對(duì)商業(yè)應(yīng)用(如銀行業(yè)務(wù))中數(shù)據(jù)項(xiàng)之間的復(fù)雜關(guān)系進(jìn)行管理的需求,主要表現(xiàn)在以下幾個(gè)方面:第一,文件系統(tǒng)是面向單一應(yīng)用的,也就是說(shuō),根據(jù)每一個(gè)應(yīng)用的需要,有針對(duì)性地設(shè)計(jì)文件的數(shù)據(jù)結(jié)構(gòu),因此,不同的應(yīng)用要使用同一個(gè)文件結(jié)構(gòu)會(huì)顯得效率低下;第二,文件之間的數(shù)據(jù)是獨(dú)立的,如果兩個(gè)文件的數(shù)據(jù)存在內(nèi)在的邏輯關(guān)系,要維護(hù)這種關(guān)系就非常困難甚至是不可能的;第三,文件的組織方式單一,難以滿足不同的訪問(wèn)模式對(duì)數(shù)據(jù)高效率訪問(wèn)的需求.

因此,這個(gè)時(shí)期的信息系統(tǒng)對(duì)數(shù)據(jù)管理的核心需求是提供一種面向系統(tǒng)整體的數(shù)據(jù)組織與訪問(wèn)功能,簡(jiǎn)單來(lái)說(shuō)就是存儲(chǔ)和訪問(wèn)這兩件事情.受制于當(dāng)時(shí)的計(jì)算機(jī)技術(shù)水平,第 1代的數(shù)據(jù)庫(kù)管理系統(tǒng)是層次型的,之后又進(jìn)一步擴(kuò)展為網(wǎng)狀型數(shù)據(jù)庫(kù).這里所謂的層次型或者網(wǎng)狀型指的是系統(tǒng)中的數(shù)據(jù)組織方式是按照樹(shù)或者(受限)圖來(lái)組織的.樹(shù)由于其每一個(gè)節(jié)點(diǎn)最多只有一個(gè)父節(jié)點(diǎn),因此可以采用更加有效的手段(例如按照樹(shù)遍歷的順序)來(lái)存儲(chǔ)數(shù)據(jù).網(wǎng)狀模型則通過(guò)引入“基本層次聯(lián)系”的概念,將圖分解為一組基本層次聯(lián)系的集合.而基本層次聯(lián)系實(shí)際上就是一個(gè)命名的層次聯(lián)系.因此,這兩類數(shù)據(jù)庫(kù)本質(zhì)上還是一樣的,都可以用“樹(shù)”結(jié)構(gòu)來(lái)表達(dá)和存儲(chǔ)數(shù)據(jù).盡管這個(gè)時(shí)期數(shù)據(jù)管理的功能集中在數(shù)據(jù)存儲(chǔ)組織和數(shù)據(jù)訪問(wèn)等,但這是第 1次將數(shù)據(jù)管理的功能從具體的應(yīng)用邏輯中分離并獨(dú)立出來(lái),在數(shù)據(jù)管理系統(tǒng)的發(fā)展歷史上是一件里程碑的事情.

對(duì)于層次/網(wǎng)狀數(shù)據(jù)庫(kù),數(shù)據(jù)訪問(wèn)的最常見(jiàn)的模式就是根據(jù)某一個(gè)父節(jié)點(diǎn)的值檢索子節(jié)點(diǎn)的全部或者部分值.例如,查詢信息學(xué)院計(jì)算機(jī)系教師張麗的情況,數(shù)據(jù)的訪問(wèn)就需要從學(xué)院到系再到教師這樣的路徑進(jìn)行.為了數(shù)據(jù)訪問(wèn)的高效率,最有效的數(shù)據(jù)存儲(chǔ)方式就是按照樹(shù)遍歷(例如中序遍歷)方式訪問(wèn)樹(shù)節(jié)點(diǎn),并將這些節(jié)點(diǎn)的數(shù)據(jù)鄰近存儲(chǔ),兄弟節(jié)點(diǎn)之間則用指針進(jìn)行鏈接.因此,這個(gè)時(shí)期的數(shù)據(jù)庫(kù)看起來(lái)就是“玩”各種數(shù)據(jù)結(jié)構(gòu),指針、鏈表被大量使用.

分層結(jié)構(gòu)最大的好處就是底層系統(tǒng)的穩(wěn)定性,即,將變化盡可能地限制在單層內(nèi)部,這會(huì)使得系統(tǒng)的穩(wěn)定性大大增加,減少了系統(tǒng)的維護(hù)代價(jià).這是非常重要的一個(gè)特征.舉例來(lái)說(shuō),數(shù)據(jù)庫(kù)應(yīng)用由于有了三級(jí)模式結(jié)構(gòu),當(dāng)外模式結(jié)構(gòu)發(fā)生了變化,例如數(shù)據(jù)項(xiàng)的增減,可以通過(guò)重新定義外模式和模式之間的對(duì)應(yīng)關(guān)系,而保持下層模式以及內(nèi)模式不變,從而使數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)組織也不需要變化.反過(guò)來(lái),當(dāng)管理員想重新調(diào)整數(shù)據(jù)的存儲(chǔ)組織方式時(shí)(提高效率),可以通過(guò)重新定義模式到內(nèi)模式的映射,而保持模式不變,從而外模式也無(wú)需變化.自然,基于外模式寫的應(yīng)用程序也無(wú)需改變.這就是所謂的程序?qū)τ跀?shù)據(jù)的透明性,或者說(shuō)數(shù)據(jù)對(duì)于程序的獨(dú)立性.

總的來(lái)說(shuō),第1代系統(tǒng)的主要貢獻(xiàn)就是首次將數(shù)據(jù)的存儲(chǔ)與訪問(wèn)功能從應(yīng)用程序中分離出來(lái).

1.2 第2代:關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)

20世紀(jì)70年代是關(guān)系數(shù)據(jù)庫(kù)形成并實(shí)現(xiàn)產(chǎn)品化的年代,主要的代表人物就是IBM的埃德加·科德(Edgar F.Codd).1970年,科德發(fā)表題為“大型共享數(shù)據(jù)庫(kù)的關(guān)系模型”的論文,文中首次提出了數(shù)據(jù)庫(kù)的關(guān)系模型[4]這一概念.由于關(guān)系模型簡(jiǎn)單明了、具有堅(jiān)實(shí)的數(shù)學(xué)理論基礎(chǔ),操作語(yǔ)言是描述性的,不用像層次網(wǎng)狀模型那樣需要描述存取路徑(即先訪問(wèn)哪個(gè)數(shù)據(jù)再訪問(wèn)哪個(gè)數(shù)據(jù))這樣的細(xì)節(jié),給提高信息系統(tǒng)開(kāi)發(fā)的生產(chǎn)率提供了極大的空間,所以一經(jīng)提出就受到了學(xué)術(shù)界和產(chǎn)業(yè)界的高度重視和廣泛響應(yīng).盡管一開(kāi)始產(chǎn)業(yè)界還充斥了對(duì)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)性能的懷疑,但是經(jīng)過(guò)科德所開(kāi)發(fā)的 System R系統(tǒng)的驗(yàn)證,證明關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的性能是可以有保障的.這一結(jié)論極大地推動(dòng)了關(guān)系數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品化的活動(dòng)進(jìn)入一個(gè)高潮,IBM 公司自己也在System R系統(tǒng)的基礎(chǔ)上推出了DB2產(chǎn)品,其他最著名的要數(shù)ORACLE公司的同名數(shù)據(jù)庫(kù)產(chǎn)品了.可以說(shuō),20世紀(jì)80年代以來(lái),關(guān)系數(shù)據(jù)庫(kù)迅速取代層次和網(wǎng)狀數(shù)據(jù)庫(kù)而占領(lǐng)市場(chǎng).數(shù)據(jù)庫(kù)的研究工作也是圍繞關(guān)系數(shù)據(jù)庫(kù)展開(kāi)的,1975年召開(kāi)了第1屆超大規(guī)模數(shù)據(jù)庫(kù)大會(huì)(very large data bases Conf.,簡(jiǎn)稱VLDB),在會(huì)議錄的前言中就曾提到,當(dāng)今產(chǎn)業(yè)屆已經(jīng)出現(xiàn)了一張關(guān)系表中有100萬(wàn)條記錄的“大表”,如何才能確保對(duì)這樣大表的訪問(wèn)效率?由于科德杰出的貢獻(xiàn),1981年的圖靈獎(jiǎng)很自然地授予了這位“關(guān)系數(shù)據(jù)庫(kù)之父”.他的圖靈演講題目就是“關(guān)系數(shù)據(jù)庫(kù):提高生產(chǎn)率的實(shí)際基礎(chǔ)”,說(shuō)到了關(guān)系數(shù)據(jù)庫(kù)成功的關(guān)鍵,那就是這項(xiàng)技術(shù)提高了生產(chǎn)率!這正是數(shù)據(jù)庫(kù)技術(shù)成功背后的“看不見(jiàn)的手”.

為什么能做到這一點(diǎn)呢?

· 第一,描述性的關(guān)系數(shù)據(jù)語(yǔ)言功不可沒(méi).SQL語(yǔ)言的基本結(jié)構(gòu)由 3個(gè)子句構(gòu)成,分別用于指定關(guān)系表、行和列.FROM 子句指定表;WHERE子句指定對(duì)行的選擇條件,也就是哪些行符合查詢要求,是對(duì)行的約束;SELECT子句指定需要呈現(xiàn)的列,可以看作是對(duì)列的限制.從本質(zhì)上來(lái)講,一個(gè)查詢就是從一張表中選擇出需要的行和列.關(guān)系數(shù)據(jù)庫(kù)采用了SQL語(yǔ)言,是提高信息系統(tǒng)開(kāi)發(fā)效率的重要因素之一;

· 第二,關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)有完善的確保數(shù)據(jù)正確的功能,能夠避免各種錯(cuò)誤可能帶來(lái)的數(shù)據(jù)庫(kù)損害.例如,為了應(yīng)對(duì)各種可能的故障,從程序運(yùn)行錯(cuò)誤,到停電,到存儲(chǔ)介質(zhì)損害等等,故障發(fā)生以后,如何使得數(shù)據(jù)不受到破壞,這是任何一個(gè)應(yīng)用系統(tǒng)都需要考慮的問(wèn)題,如果需要為每一個(gè)應(yīng)用系統(tǒng)自己去完成這些代碼,可想而知,應(yīng)用的開(kāi)發(fā)效率不可能高.如果數(shù)據(jù)庫(kù)系統(tǒng)能以一定的方式確保數(shù)據(jù)庫(kù)中的數(shù)據(jù)不會(huì)被各種故障所損害,那么開(kāi)發(fā)應(yīng)用的時(shí)候就可以不用關(guān)心這個(gè)問(wèn)題.事實(shí)上,在數(shù)據(jù)庫(kù)管理系統(tǒng)的代碼中,真正用于處理SQL語(yǔ)句的部分并不多,大部分的代碼都用于處理各種異常;

· 第三,有各種應(yīng)用開(kāi)發(fā)工具.一個(gè)數(shù)據(jù)庫(kù)應(yīng)用從設(shè)計(jì)到實(shí)施有復(fù)雜的過(guò)程,需要了解信息需求和功能需求,需要進(jìn)行數(shù)據(jù)庫(kù)模式設(shè)計(jì),需要編寫SQL語(yǔ)句等等,如果有各種開(kāi)發(fā)工具,甚至是數(shù)據(jù)庫(kù)模式的自動(dòng)生成工具,以及SQL語(yǔ)句的自動(dòng)生成工具,那么應(yīng)用開(kāi)發(fā)的效率自然就能成倍地提高.

在關(guān)系數(shù)據(jù)庫(kù)的關(guān)鍵技術(shù)中,最為核心的有查詢優(yōu)化技術(shù)和事務(wù)管理兩個(gè)方面,這是關(guān)系數(shù)據(jù)庫(kù)走向?qū)嵱帽仨毷紫纫鉀Q的難題.由于關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言是基于集合的描述性語(yǔ)言,典型代表就是 SQL,其查詢的結(jié)果也是一個(gè)集合.如何將一個(gè) SQL語(yǔ)句轉(zhuǎn)換為可以執(zhí)行的程序(有點(diǎn)類似程序自動(dòng)生成器),而且要在所有可能的執(zhí)行計(jì)劃(程序)中選擇出一個(gè)效率足夠好的加以執(zhí)行,這就是查詢優(yōu)化器的作用.

由于關(guān)系數(shù)據(jù)庫(kù)主要用于支撐各種業(yè)務(wù)系統(tǒng),因此需要管理業(yè)務(wù)狀態(tài)的變化,將這類應(yīng)用稱為OLTP(online transaction processing),即聯(lián)機(jī)事務(wù)處理.“事務(wù)”又稱為交易,體現(xiàn)的是現(xiàn)實(shí)世界的業(yè)務(wù)邏輯.典型的例子就是銀行的轉(zhuǎn)賬業(yè)務(wù),如果某客戶希望將賬號(hào)A的錢轉(zhuǎn)到賬號(hào)B上去,那么必須保證賬號(hào)A和B的存款數(shù)之和在轉(zhuǎn)賬前后是一樣的,既不能多出來(lái)也不能少掉.這是數(shù)據(jù)庫(kù)系統(tǒng)必須保障的,否則數(shù)據(jù)庫(kù)就無(wú)法使用.對(duì)于單機(jī)系統(tǒng),這種業(yè)務(wù)邏輯的維護(hù)還比較容易,但當(dāng)數(shù)據(jù)庫(kù)系統(tǒng)是多用戶系統(tǒng)時(shí),這件事情就變得非常復(fù)雜,需要認(rèn)真對(duì)待和解決.這些問(wèn)題如果不能圓滿解決,無(wú)論哪個(gè)公司的數(shù)據(jù)庫(kù)產(chǎn)品都無(wú)法進(jìn)入實(shí)用,最終不能被用戶所接受.

事務(wù)管理(TM)是數(shù)據(jù)庫(kù)的重要部件,它提供對(duì)并發(fā)事務(wù)的調(diào)度控制和故障恢復(fù),確保數(shù)據(jù)庫(kù)系統(tǒng)的正確運(yùn)行.詹姆斯·尼古拉·格雷(James Nicholas Gray)在解決這些重大技術(shù)問(wèn)題上發(fā)揮了十分關(guān)鍵的作用,為DBMS成熟并順利進(jìn)入市場(chǎng)做出了重要貢獻(xiàn).其成就匯聚成一部厚厚的專著《Transaction Processing:Conceptsand Techniques》[5],他也眾望所歸地獲得了1998年度的圖靈獎(jiǎng).

在關(guān)系數(shù)據(jù)庫(kù)時(shí)代,對(duì)于數(shù)據(jù)庫(kù)系統(tǒng)做出重要貢獻(xiàn)的還有一位學(xué)者——邁克爾·斯通布雷克(Michael Stonebraker).他在加州大學(xué)伯克利分校計(jì)算機(jī)科學(xué)系任教達(dá) 29年,在此期間,領(lǐng)導(dǎo)開(kāi)發(fā)了關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)Ingres、對(duì)象-關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)Postgres、聯(lián)邦數(shù)據(jù)庫(kù)系統(tǒng)Mariposa,同時(shí)還創(chuàng)立了多家數(shù)據(jù)庫(kù)公司,包括Ingres、Illustra、Cohera、StreamBase Systems和Vertica等,將大量研究成果和原型系統(tǒng)實(shí)現(xiàn)商業(yè)化.他在“One size does not fit all”的思想指導(dǎo)下,開(kāi)發(fā)了一系列的“專用”關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品,例如流數(shù)據(jù)管理系統(tǒng)、內(nèi)存數(shù)據(jù)庫(kù)管理系統(tǒng)、列存儲(chǔ)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)、科學(xué)數(shù)據(jù)庫(kù)管理系統(tǒng)等.因“對(duì)現(xiàn)代數(shù)據(jù)庫(kù)系統(tǒng)底層的概念與實(shí)踐所做出的基礎(chǔ)性貢獻(xiàn)”,他在2015年獲得了圖靈獎(jiǎng).

1.3 第3代:數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)

這個(gè)階段也可以看成是關(guān)系數(shù)據(jù)庫(kù)的一個(gè)自然延伸.隨著數(shù)據(jù)庫(kù)技術(shù)的普及應(yīng)用,越來(lái)越多的數(shù)據(jù)被存儲(chǔ)在數(shù)據(jù)庫(kù)中,除了支持業(yè)務(wù)處理以外,如何讓這些數(shù)據(jù)發(fā)揮更大的作用,則是一個(gè)亟待解決的問(wèn)題.由于對(duì)這些數(shù)據(jù)而言,主要是分析,因此這類應(yīng)用也稱為OLAP(online analytical processing)應(yīng)用[6],即聯(lián)機(jī)分析處理應(yīng)用.例如,對(duì)于電話詳單數(shù)據(jù),因?yàn)槭峭ㄔ捰涗?因此一旦發(fā)生就成為歷史的記錄,很少發(fā)生事后修改的情況.但是,許多業(yè)務(wù)員會(huì)對(duì)電話詳單數(shù)據(jù)感興趣.例如,按照時(shí)間軸去分析不同時(shí)間區(qū)間通話的數(shù)量變化情況,也可以按照區(qū)域去分析通話數(shù)量的情況等等.盡管關(guān)系數(shù)據(jù)庫(kù)也能實(shí)現(xiàn)上述要求,但是如何讓這樣的復(fù)雜分析高效地執(zhí)行?需要有特殊的數(shù)據(jù)組織模式.

星型模型是最常用的數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)組織模型,特別適合于聯(lián)機(jī)分析類應(yīng)用,即OLAP應(yīng)用.所謂星型模型也稱為多維模型,就是選定一些屬性作為分析的維度,另一些屬性作為分析的對(duì)象.維屬性通常根據(jù)值的包含關(guān)系會(huì)形成一個(gè)層次,例如,時(shí)間屬性可以根據(jù)年月周日形成一個(gè)層次,地區(qū)屬性也可以形成街道-區(qū)-市這樣的層次.為了實(shí)現(xiàn)快速分析,可以預(yù)先計(jì)算出不同粒度的統(tǒng)計(jì)結(jié)果.例如,如果預(yù)先計(jì)算了按照周和區(qū)為單位某連鎖超市的銷售額,就可以快速、方便地分析展示各區(qū)按照周的順序的銷售額的變化情況.這種采用預(yù)先計(jì)算的方法可以獲得快速聯(lián)機(jī)分析的性能.

數(shù)據(jù)倉(cāng)庫(kù)可以用關(guān)系數(shù)據(jù)庫(kù)實(shí)現(xiàn)(relational OLAP,簡(jiǎn)稱 ROLAP),分別用事實(shí)表和維表來(lái)存儲(chǔ)統(tǒng)計(jì)結(jié)果和維度結(jié)構(gòu).也可以用特別的數(shù)據(jù)模型(CUBE)來(lái)實(shí)現(xiàn)(multidimensional OLAP,簡(jiǎn)稱 MOLAP),列存儲(chǔ)的技術(shù)也在這個(gè)過(guò)程中被提出和應(yīng)用.同時(shí),支持OLAP的前端分析工具也很重要,使得普通用戶可以方便地使用數(shù)據(jù)倉(cāng)庫(kù).

1.4 第4代:大數(shù)據(jù)管理系統(tǒng)

關(guān)系數(shù)據(jù)庫(kù)成熟并得以廣泛應(yīng)用后,數(shù)據(jù)庫(kù)研究和開(kāi)發(fā)一度走入一段迷茫期.數(shù)據(jù)庫(kù)界一直無(wú)法打破關(guān)系數(shù)據(jù)庫(kù)的魔咒,被關(guān)系模型和系統(tǒng)的“完美”所陶醉,無(wú)法自我突破.提出的一些新概念,例如面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng),很快就被關(guān)系數(shù)據(jù)庫(kù)所消化,未能形成氣候.整個(gè)20世紀(jì)90年代都是在這樣的氣氛中渡過(guò)的.斯通布雷克也不能免俗,也難以逃脫關(guān)系數(shù)據(jù)庫(kù)的束縛.MapReduce[7]出現(xiàn)之后,他曾經(jīng)激烈地批判過(guò) MapReduce,認(rèn)為是對(duì)數(shù)據(jù)庫(kù)技術(shù)的巨大倒退(從某些方面來(lái)講,也確實(shí)是這樣的).所以,大數(shù)據(jù)處理平臺(tái) MapReduce并不是數(shù)據(jù)庫(kù)學(xué)者首先提出來(lái)的,而是做系統(tǒng)的人提出來(lái)的,據(jù)說(shuō)最早的論文是投到數(shù)據(jù)庫(kù)頂級(jí)會(huì)議上,被無(wú)情地拒了.這也是數(shù)據(jù)庫(kù)學(xué)術(shù)界需要認(rèn)真反思的地方.

由于信息技術(shù)的高度發(fā)展,信息系統(tǒng)所積累的數(shù)據(jù)越來(lái)越多,數(shù)據(jù)類型也越來(lái)越豐富,而且產(chǎn)生的速度非???傳統(tǒng)的數(shù)據(jù)庫(kù)技術(shù)“存不下”、無(wú)法建模、無(wú)法及時(shí)入庫(kù)等問(wèn)題凸顯出來(lái),難以滿足應(yīng)用的需要.在這樣的背景下,Google公司發(fā)展了GFS(Google file system)[8]、MapReduce和Bigtable[9].

Google的這3件“武器”后來(lái)在Apache基金會(huì)下面有一個(gè)對(duì)應(yīng)的實(shí)現(xiàn),這就是Hadoop生態(tài)系統(tǒng).它包括實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)HDFS(hadoop distributed file system)[10]、一個(gè)計(jì)算框架MapReduce和一個(gè)數(shù)據(jù)庫(kù)HBase[11].HDFS有高容錯(cuò)性的特點(diǎn),并且可部署在低廉的服務(wù)器上,適合那些有著超大數(shù)據(jù)規(guī)模的應(yīng)用.MapReduce為海量的數(shù)據(jù)提供了一個(gè)可容錯(cuò)的、高可擴(kuò)展的、分布式的計(jì)算框架,HBase是一個(gè)基于鍵值對(duì)組織模型(邏輯上可以看成是寬表)的分布式數(shù)據(jù)庫(kù),數(shù)據(jù)按行列混合模式存儲(chǔ)在HDFS上.MapReduce可以直接訪問(wèn)HDFS上的數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,也可以通過(guò)HBase間接訪問(wèn)HDFS上的數(shù)據(jù),以提高分析性能.

很自然地,在HDFS上如何表達(dá)和管理數(shù)據(jù)?NoSQL[12]數(shù)據(jù)庫(kù)便應(yīng)運(yùn)而生.一開(kāi)始確實(shí)是“No SQL”的含義,因?yàn)閷?duì)大容量的非結(jié)構(gòu)化數(shù)據(jù)的處理需求,都不是SQL所擅長(zhǎng)的.NoSQL的重點(diǎn)在于如何表達(dá)和存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),先后提出了Key-Value結(jié)構(gòu),也就是有一個(gè)Key,對(duì)于一個(gè)值(可以是很復(fù)雜的非結(jié)構(gòu)化數(shù)據(jù)),XML描述的文檔、圖結(jié)構(gòu)等.后來(lái)人們發(fā)現(xiàn):無(wú)論從應(yīng)用程序的繼承角度還是提高生產(chǎn)率的角度,SQL都是不可或缺的工具,因此,在上層提供SQL引擎,成為大數(shù)據(jù)管理系統(tǒng)的共識(shí).

1.5 小 結(jié)

從上述數(shù)據(jù)庫(kù)管理系統(tǒng)發(fā)展的簡(jiǎn)史中,可以感受到以下幾點(diǎn):第一,數(shù)據(jù)庫(kù)管理系統(tǒng)的功能是伴隨著應(yīng)用的發(fā)展而不斷豐富起來(lái)的,因此任何時(shí)候,應(yīng)用的需要才是技術(shù)發(fā)展的動(dòng)力;第二,將數(shù)據(jù)管理的一些功能逐步從業(yè)務(wù)邏輯中分離出來(lái),形成獨(dú)立的軟件系統(tǒng),這是提高應(yīng)用生產(chǎn)效率的有效手段和途徑;第三,系統(tǒng)分層是一個(gè)好主意,上層可以屏蔽下層的一些實(shí)現(xiàn)細(xì)節(jié),為更上層提供更簡(jiǎn)潔的服務(wù);第四,語(yǔ)言或者說(shuō)接口是定義一個(gè)系統(tǒng)的最有效的方法.

2 大數(shù)據(jù)管理系統(tǒng)的現(xiàn)狀

自 20世紀(jì) 70年代起,關(guān)系數(shù)據(jù)庫(kù)由于具備嚴(yán)格的關(guān)系理論輔助數(shù)據(jù)建模、數(shù)據(jù)獨(dú)立性高,查詢優(yōu)化技術(shù)實(shí)現(xiàn)突破,逐漸成為數(shù)據(jù)管理中的主流技術(shù).時(shí)至今日,關(guān)系數(shù)據(jù)庫(kù)仍然是數(shù)據(jù)管理,特別是涉及到人、財(cái)、物等需要精細(xì)管理應(yīng)用的主流技術(shù).關(guān)系數(shù)據(jù)庫(kù)信守的原則是one-size-fits-all,認(rèn)為所有有關(guān)數(shù)據(jù)管理的任務(wù)都應(yīng)該交由關(guān)系數(shù)據(jù)庫(kù)來(lái)解決.進(jìn)入大數(shù)據(jù)時(shí)代,大數(shù)據(jù)的許多應(yīng)用,特別是互聯(lián)網(wǎng)的應(yīng)用,比如社交網(wǎng)絡(luò)、知識(shí)圖譜、搜索引擎、阿里的“雙十一”等數(shù)據(jù)管理問(wèn)題,使用傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)已經(jīng)無(wú)法滿足應(yīng)用處理的要求,人們開(kāi)始嘗試研制適合自己應(yīng)用場(chǎng)景的大數(shù)據(jù)系統(tǒng).谷歌三件套,包括GFS、MapReduce計(jì)算框架以及BigTable的提出,以及以Hadoop為核心的開(kāi)源生態(tài)系統(tǒng)的形成,人們意識(shí)到one-size-does-not-fit-all,即無(wú)法使用單一的數(shù)據(jù)管理系統(tǒng)來(lái)解決所有大數(shù)據(jù)應(yīng)用的問(wèn)題.在經(jīng)歷相當(dāng)長(zhǎng)的一段時(shí)間的探索之后,人們對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的各個(gè)模塊,包括存儲(chǔ)系統(tǒng)、數(shù)據(jù)組織模型、查詢處理引擎、查詢接口等,依托谷歌管理和分析大數(shù)據(jù)的設(shè)計(jì)思路進(jìn)行了解耦,并從模型、可靠性、可伸縮性、性能等方面對(duì)各個(gè)模塊進(jìn)行了重新的設(shè)計(jì).可以發(fā)現(xiàn):現(xiàn)階段主流的大數(shù)據(jù)管理系統(tǒng)具有了明顯的分層結(jié)構(gòu),自底向上分別為大數(shù)據(jù)存儲(chǔ)系統(tǒng)、NoSQL系統(tǒng)、大數(shù)據(jù)計(jì)算系統(tǒng)、大數(shù)據(jù)查詢處理引擎.各類系統(tǒng)獨(dú)立發(fā)展,并根據(jù)大數(shù)據(jù)應(yīng)用的實(shí)際需要,通過(guò)采用松耦合的方式進(jìn)行組裝,構(gòu)建為完整的大數(shù)據(jù)管理系統(tǒng),支撐各類大數(shù)據(jù)查詢、分析與類人智能應(yīng)用.這實(shí)際上就是one-size-fits-a-bunch的設(shè)計(jì)理念.正如周傲英教授指出的:“如果說(shuō)在數(shù)據(jù)庫(kù)時(shí)期,解決數(shù)據(jù)管理問(wèn)題需要‘削足適履’來(lái)使用數(shù)據(jù)庫(kù)系統(tǒng),那么到了大數(shù)據(jù)時(shí)代,人們開(kāi)始根據(jù)每個(gè)不同的應(yīng)用度身定制自己的系統(tǒng),也就是‘量足制鞋’”[13].

2.1 存儲(chǔ)系統(tǒng)

在大數(shù)據(jù)存儲(chǔ)方面,以HDFS等為代表的開(kāi)源系統(tǒng)目前已成為大數(shù)據(jù)存儲(chǔ)領(lǐng)域的標(biāo)準(zhǔn)之一.HDFS面向大文件(GB級(jí)別及以上)的存儲(chǔ)管理,因此在設(shè)計(jì)上,HDFS的存取單元數(shù)據(jù)塊(block)比一般單機(jī)文件系統(tǒng)的數(shù)據(jù)存取單元要大得多.較低版本的HDFS的數(shù)據(jù)塊默認(rèn)為128MB,2.0版本后的數(shù)據(jù)塊默認(rèn)大小為256MB.HDFS可以運(yùn)行在數(shù)萬(wàn)個(gè)基于普通 X86架構(gòu)的商用機(jī)集群上,適合一次性寫入、多次讀取的應(yīng)用場(chǎng)景.為了應(yīng)對(duì)節(jié)點(diǎn)故障,HDFS引入多個(gè)數(shù)據(jù)備份和容錯(cuò)機(jī)制,保證存儲(chǔ)系統(tǒng)的高可用性.一些大數(shù)據(jù)應(yīng)用,例如淘寶、Facebook、微信等,需要管理海量的小文件(如圖片、用戶上傳文件等),這類應(yīng)用如果使用HDFS的大數(shù)據(jù)存儲(chǔ)系統(tǒng)進(jìn)行數(shù)據(jù)管理會(huì)產(chǎn)生大量的塊內(nèi)空間浪費(fèi),同時(shí)產(chǎn)生大量文件到存儲(chǔ)節(jié)點(diǎn)映射等元數(shù)據(jù),負(fù)責(zé)管理元數(shù)據(jù)的 Namenode會(huì)成為文件系統(tǒng)存取的性能瓶頸.淘寶的 TFS[14]就是為了管理海量小文件應(yīng)運(yùn)而生的分布式文件系統(tǒng).其他常見(jiàn)的分布式文件系統(tǒng)還包括Ceph[15]、Amazon S3[16,17]、FastDFS[18]、GridFS[19]、MogileFS[20],這些系統(tǒng)可作為HDFS的重要補(bǔ)充.

HDFS是基于磁盤的分布式文件系統(tǒng),數(shù)據(jù)的訪問(wèn)需要頻繁的 I/O調(diào)用,這會(huì)對(duì)系統(tǒng)性能造成影響.大數(shù)據(jù)系統(tǒng)強(qiáng)調(diào)存儲(chǔ)和計(jì)算分離,不同的計(jì)算系統(tǒng)可以使用同一份存儲(chǔ)在底層 HDFS中的數(shù)據(jù),同一計(jì)算系統(tǒng)也可使用不同的分布式文件系統(tǒng).通過(guò)引入分布式緩沖區(qū)管理系統(tǒng),可以屏蔽底層的分布式文件系統(tǒng),將來(lái)自不同文件系統(tǒng)的熱點(diǎn)數(shù)據(jù)盡可能地維護(hù)在緩沖區(qū)中,減少上層計(jì)算訪問(wèn)數(shù)據(jù)帶來(lái)的 I/O開(kāi)銷.典型的分布式緩沖區(qū)管理系統(tǒng)包括Alluxio[21,22]、Redis[23]、Memcache[24].例如,Alluxio是開(kāi)源的分布式內(nèi)存文件系統(tǒng),提供了與基于磁盤文件系統(tǒng)相同的訪問(wèn)接口,并屏蔽了底層不同的文件系統(tǒng).通過(guò)引入分層存儲(chǔ)特性,在高速內(nèi)存與低速磁盤之間部署高性能SSD存儲(chǔ)設(shè)備,構(gòu)建磁盤、SSD、內(nèi)存三級(jí)數(shù)據(jù)存儲(chǔ)架構(gòu),并結(jié)合數(shù)據(jù)的新鮮度和訪問(wèn)熱度,優(yōu)化數(shù)據(jù)塊在內(nèi)存、SSD、磁盤上的存儲(chǔ)策略,使得頻繁使用的數(shù)據(jù)優(yōu)先緩存在高性能存儲(chǔ)介質(zhì)中,從而減少磁盤訪問(wèn)帶來(lái)的開(kāi)銷.

2.2 面向不同數(shù)據(jù)模型的NoSQL系統(tǒng)

數(shù)據(jù)模型是數(shù)據(jù)管理系統(tǒng)的核心.大數(shù)據(jù)應(yīng)用可以是結(jié)構(gòu)化的關(guān)系數(shù)據(jù)、圖數(shù)據(jù),也可以是半結(jié)構(gòu)化的XML或JSON數(shù)據(jù),還可以是非結(jié)構(gòu)化的多媒體、網(wǎng)頁(yè)等數(shù)據(jù).遵循one-size-does-not-fit-all的理念,NoSQL數(shù)據(jù)庫(kù)基于鍵值對(duì)、文檔、圖等不同數(shù)據(jù)模型,為管理不同類型的數(shù)據(jù)提供了有效的數(shù)據(jù)存儲(chǔ)服務(wù).從歷史發(fā)展的角度看,Google BigTable[3]是較早提出的鍵值對(duì)模型,該模型使得對(duì)多列歷史數(shù)據(jù)的有序存取較為高效.數(shù)據(jù)進(jìn)行層次范圍劃分后分布到多臺(tái)分片服務(wù)器上,采用嚴(yán)格一致性進(jìn)行數(shù)據(jù)更新.Amazon Dynamo[25]采用另一種不同的鍵值對(duì)存儲(chǔ)方法,將鍵映射到某個(gè)特定的值,采用最終一致性方法進(jìn)行數(shù)據(jù)更新.另一些流行的 NoSQL系統(tǒng)部分借鑒了這幾個(gè)系統(tǒng)的特征.如HBase的設(shè)計(jì)與BigTable非常類似,Voldemort[26]則復(fù)制了Dynamo的很多特征,Cassandra[27]則在數(shù)據(jù)模型方面借鑒了 BigTable,而在數(shù)據(jù)劃分和一致性方面借鑒了 Dynamo.由于鍵值對(duì)模型概念簡(jiǎn)單且具有較高的存取效率和可擴(kuò)展性,還有很多其他的系統(tǒng),如Redis、RAMCloud[28]等,均以鍵值對(duì)為基礎(chǔ)進(jìn)行模型的設(shè)計(jì)和實(shí)現(xiàn).文檔是另一種數(shù)據(jù)類型,文檔數(shù)據(jù)庫(kù)主要用于存儲(chǔ)、檢索和管理面向文檔的信息.在NoSQL框架內(nèi),文檔可以看作是鍵值存儲(chǔ)的一個(gè)子類.不同之處在于數(shù)據(jù)處理的方式:在鍵值存儲(chǔ)中,數(shù)據(jù)對(duì)數(shù)據(jù)庫(kù)本身是不透明的,而面向文檔的系統(tǒng)則依賴于文檔中的內(nèi)部結(jié)構(gòu).文檔數(shù)據(jù)庫(kù)與傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)也有很大不同.關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)存儲(chǔ)在表中,單個(gè)對(duì)象可能分布在多個(gè)表中,而文檔數(shù)據(jù)庫(kù)則將給定對(duì)象的所有信息存儲(chǔ)在數(shù)據(jù)庫(kù)的單個(gè)對(duì)象中,并且每個(gè)數(shù)據(jù)庫(kù)對(duì)象內(nèi)部結(jié)構(gòu)可以各不相同.該方式簡(jiǎn)化了外部對(duì)象到數(shù)據(jù)庫(kù)對(duì)象的映射,一定程度上方便了Web應(yīng)用的開(kāi)發(fā)和部署.圖數(shù)據(jù)管理技術(shù)起源于20世紀(jì)70年代,在這一階段,關(guān)系數(shù)據(jù)庫(kù)由于具備嚴(yán)格的關(guān)系理論輔助數(shù)據(jù)建模,操作接口簡(jiǎn)單,數(shù)據(jù)獨(dú)立性高,查詢優(yōu)化技術(shù)實(shí)現(xiàn)突破,逐漸成為數(shù)據(jù)管理中的主流技術(shù);相反地,圖數(shù)據(jù)管理技術(shù)在數(shù)據(jù)建模、查詢表達(dá)等方面復(fù)雜度高,這一階段的圖數(shù)據(jù)管理技術(shù)發(fā)展緩慢.進(jìn)入 21世紀(jì),隨著語(yǔ)義網(wǎng)技術(shù)的發(fā)展以及社交網(wǎng)絡(luò)等真實(shí)大圖數(shù)據(jù)的迅猛增長(zhǎng),應(yīng)用需求的驅(qū)動(dòng),使得圖數(shù)據(jù)管理的相關(guān)研究工作重新成為熱點(diǎn).值得探討的是:與成熟的關(guān)系數(shù)據(jù)管理技術(shù)相比,圖數(shù)據(jù)管理仍然缺乏統(tǒng)一的數(shù)據(jù)模型和查詢語(yǔ)言,目前主流的圖數(shù)據(jù)庫(kù)包括 Neo4J[29]、OrientDB[30]、微軟的 Azure Cosmos DB[31,32]等,圖模型的常用數(shù)據(jù)結(jié)構(gòu)為標(biāo)簽圖(例如語(yǔ)義網(wǎng)中 RDF、部分知識(shí)圖譜)和屬性圖,圖的基本操作包括圖匹配、圖導(dǎo)航、圖與關(guān)系的復(fù)合操作等,常用的查詢語(yǔ)言為 SPARQL[33]、Cypher[34]和Gremlin[35]等,這些語(yǔ)言的語(yǔ)法都與關(guān)系結(jié)構(gòu)化查詢語(yǔ)言 SQL相近.基于其他數(shù)據(jù)模型的開(kāi)源系統(tǒng)可參見(jiàn)文獻(xiàn)[36].

2.3 計(jì)算系統(tǒng)

大數(shù)據(jù)計(jì)算系統(tǒng)可以采用不同的計(jì)算模型,常見(jiàn)的計(jì)算模型包括批計(jì)算、流計(jì)算、迭代計(jì)算、交互式計(jì)算等.每一類計(jì)算系統(tǒng)可以抽象出基本訪問(wèn)接口,例如:批計(jì)算系統(tǒng)MapReduce提供了Map和Reduce接口,流計(jì)算系統(tǒng)Storm[37]提供了Spout和Bolt接口以分別接收和處理數(shù)據(jù),迭代計(jì)算系統(tǒng)Giraph提供了面向圖中頂點(diǎn)計(jì)算的compute接口,交互式計(jì)算系統(tǒng)Presto提供了SQL的訪問(wèn)接口.開(kāi)發(fā)者只需實(shí)現(xiàn)相應(yīng)的接口函數(shù),就可以調(diào)用平臺(tái)的分布式、可擴(kuò)展、容錯(cuò)的計(jì)算能力,完成復(fù)雜的分析、查詢?nèi)蝿?wù).批計(jì)算面向批量、靜態(tài)數(shù)據(jù)集上的計(jì)算,特別適合海量數(shù)據(jù)的計(jì)算,其對(duì)查詢的響應(yīng)延時(shí)沒(méi)有過(guò)高的要求.典型的批處理系統(tǒng)包括Hadoop、Spark等.流計(jì)算系統(tǒng)面向的是實(shí)時(shí)流入的數(shù)據(jù),并對(duì)每個(gè)單獨(dú)數(shù)據(jù)項(xiàng)流入系統(tǒng)時(shí)作出實(shí)時(shí)的處理,流計(jì)算對(duì)查詢響應(yīng)的實(shí)時(shí)性要求高.典型的流計(jì)算系統(tǒng)有 Spark Streaming[38]、Storm、Flink[39]、Yahoo的S4[40]、阿里的JStorm[41]和 Blink[42]、Facebook的 Puma[43]、IBM 的 StreamBase[44].迭代計(jì)算面向的是需要多輪計(jì)算的應(yīng)用場(chǎng)景,其中,上一輪計(jì)算的輸出可作為下一輪計(jì)算的輸入,直至滿足一定條件時(shí)系統(tǒng)終止計(jì)算.典型的應(yīng)用包括具有明顯迭代特征的數(shù)據(jù)挖掘算法,例如K-means、K-medoids、Semi-clustering等,迭代的圖計(jì)算,例如PageRank、最短路徑等.迭代計(jì)算的系統(tǒng)包括GraphX[45,46]、Giraph[47]、GraphLab[48]、Haloop[49]等.交互式計(jì)算類似于傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù),為了達(dá)到實(shí)時(shí)的交互式響應(yīng),很多交互式系統(tǒng)會(huì)把數(shù)據(jù)完全維護(hù)在內(nèi)存中,如Presto[50],典型的交互式計(jì)算系統(tǒng)包括 Impala[51]、Presto、Drill[52]等.

2.4 查詢處理引擎

大數(shù)據(jù)的查詢處理引擎基于大數(shù)據(jù)計(jì)算系統(tǒng),通過(guò)計(jì)算系統(tǒng)提供的通用接口,借助分布式查詢優(yōu)化技術(shù),實(shí)現(xiàn)數(shù)據(jù)的高性能查詢與分析.大數(shù)據(jù)的查詢處理引擎為用戶和開(kāi)發(fā)者提供類SQL(有些甚至可以兼容SQL)的查詢語(yǔ)言,通過(guò)語(yǔ)法解析器,把查詢語(yǔ)句轉(zhuǎn)換成對(duì)計(jì)算層的作業(yè)調(diào)度,最后由計(jì)算層把結(jié)果返回給用戶.根據(jù)調(diào)用計(jì)算系統(tǒng)的不同,這些引擎可分為:(1) 基于 MapReduce的查詢分析引擎;(2) 基于內(nèi)存式批計(jì)算系統(tǒng)的查詢分析引擎;(3) 基于 MPP的查詢分析引擎.早期的大數(shù)據(jù)查詢分析引擎基于 MapReduce,又稱為 SQL-on-Hadoop.Hive[53,54]是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,提供類SQL的查詢語(yǔ)言HiveQL,通過(guò)把用戶提交的HiveQL語(yǔ)句轉(zhuǎn)化為MapReduce作業(yè)并提交到Hadoop集群中運(yùn)行.MapReduce作業(yè)串行執(zhí)行,Hadoop監(jiān)控作業(yè)執(zhí)行過(guò)程,所有作業(yè)完成后返回結(jié)果給用戶.其中,分布式查詢優(yōu)化體現(xiàn)在從 HiveQL到轉(zhuǎn)化為 MapReduce的作業(yè)以及MapRedue的多作業(yè)調(diào)度.Hive適合面向大數(shù)據(jù)集的批處理作業(yè),例如搜索引擎的日志分析.因?yàn)镠ive基于高延時(shí)的MapReduce批計(jì)算模型,所以不適合那些需要低延遲的應(yīng)用.Spark SQL[55]是基于內(nèi)存的批計(jì)算系統(tǒng)Spark的查詢引擎,其原理與Hive類似.Presto是基于MPP的查詢分析引擎,具有較低的響應(yīng)延時(shí),可用作交互式查詢引擎.與Hive把HiveQL轉(zhuǎn)化成多個(gè)MapRedue作業(yè)不同,Presto使用了一個(gè)定制的操作符和查詢執(zhí)行引擎來(lái)支持 SQL.除了改進(jìn)的調(diào)度算法之外,所有的數(shù)據(jù)處理都是在內(nèi)存中進(jìn)行的,操作之間采用流水線處理方式,避免了不必要的磁盤讀寫和額外的延遲.

2.5 小 結(jié)

進(jìn)入大數(shù)據(jù)時(shí)代,大數(shù)據(jù)從業(yè)者已不像數(shù)據(jù)庫(kù)時(shí)代那樣追求使用關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)解決所有數(shù)據(jù)管理的問(wèn)題,而是探索從數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)組織、通用計(jì)算、查詢處理等維度對(duì)數(shù)據(jù)管理系統(tǒng)進(jìn)行解藕,解藕后的系統(tǒng)各模塊彼此相對(duì)獨(dú)立而又各自發(fā)展.根據(jù)大數(shù)據(jù)應(yīng)用的實(shí)際需要,各模塊可通過(guò)采用松耦合的方式進(jìn)行組裝,構(gòu)建完整的大數(shù)據(jù)管理系統(tǒng).

3 大數(shù)據(jù)管理系統(tǒng)的特征

認(rèn)識(shí)新生事物可行的辦法就是“瞎子摸象”,也就是試圖從多個(gè)不同的視角去刻畫,綜合起來(lái)就可以獲得立體豐滿的圖景了.為此,本節(jié)將從數(shù)據(jù)特征、系統(tǒng)特征以及應(yīng)用特征這 3個(gè)角度認(rèn)識(shí)大數(shù)據(jù)管理系統(tǒng).數(shù)據(jù)特征描述系統(tǒng)管理對(duì)象的特點(diǎn),系統(tǒng)特征描述系統(tǒng)應(yīng)具備的功能,而應(yīng)用特征描述如何在大數(shù)據(jù)管理系統(tǒng)中進(jìn)行應(yīng)用的開(kāi)發(fā).

3.1 大數(shù)據(jù)管理系統(tǒng)的數(shù)據(jù)特征

大數(shù)據(jù)的數(shù)據(jù)特征可以用 4V 來(lái)刻畫,就是大容量(volume)、多類型(variety)、快變化(volocity)和低質(zhì)量(veracity).這既是對(duì)大數(shù)據(jù)特征的刻畫,也是對(duì)大數(shù)據(jù)管理系統(tǒng)提出的新的要求.

(1) 大容量.多大的數(shù)據(jù)量可以稱為“大”?這沒(méi)有一個(gè)確定的標(biāo)準(zhǔn),是與當(dāng)時(shí)的技術(shù)水平和應(yīng)用水平相關(guān)的,因此,大容量的挑戰(zhàn)是“與時(shí)俱進(jìn)”的.1975年,著名的超大規(guī)模數(shù)據(jù)庫(kù)會(huì)議(VLDB)召開(kāi)第1屆年會(huì)的時(shí)候,面臨的挑戰(zhàn)是管理100萬(wàn)條記錄的商業(yè)數(shù)據(jù).這在今天看來(lái)是很小的數(shù)據(jù)集了.在21世紀(jì)初,所謂數(shù)據(jù)密集型應(yīng)用,數(shù)據(jù)量大約在1T左右,而今天所說(shuō)的大數(shù)據(jù),容量基本上在數(shù)百TB甚至PB級(jí)別,才會(huì)對(duì)現(xiàn)有的數(shù)據(jù)庫(kù)技術(shù)產(chǎn)生真正意義上的挑戰(zhàn).1998年,圖靈獎(jiǎng)獲得者Jim Gray曾提出數(shù)據(jù)量的增長(zhǎng)符合“摩爾定律”,也就是說(shuō),每 18個(gè)月,新增的存儲(chǔ)量等于有史以來(lái)存儲(chǔ)量之和.以 BAT為例,百度的數(shù)據(jù)量已經(jīng)超過(guò)1 000P,無(wú)疑是互聯(lián)網(wǎng)大數(shù)據(jù)的執(zhí)牛耳者;

(2) 多類型.多類型是大數(shù)據(jù)顯著的特點(diǎn),關(guān)系數(shù)據(jù)庫(kù)只能處理關(guān)系型數(shù)據(jù),這是它的主要限制.現(xiàn)實(shí)世界中形形色色的應(yīng)用并不能保證只有關(guān)系型數(shù)據(jù),事實(shí)上,大數(shù)據(jù)就是要匯聚多個(gè)來(lái)源的數(shù)據(jù),因此,數(shù)據(jù)種類既有結(jié)構(gòu)化數(shù)據(jù),也有各種非結(jié)構(gòu)化數(shù)據(jù).如何在一個(gè)系統(tǒng)平臺(tái)中處理多種類型的數(shù)據(jù),是大數(shù)據(jù)的核心挑戰(zhàn)之一;

(3) 變化快.變化快的特征指的是產(chǎn)生、收集、分析大量數(shù)據(jù)的速度快,變化快的特點(diǎn)要求系統(tǒng)在數(shù)據(jù)產(chǎn)生的過(guò)程中分析數(shù)據(jù),而不必將數(shù)據(jù)預(yù)先存入數(shù)據(jù)庫(kù)中.關(guān)于變化快這一點(diǎn),我們感受得可能不夠深刻.舉一個(gè)例子,“雙十一”是淘寶搞的網(wǎng)上促銷活動(dòng),據(jù)公開(kāi)數(shù)據(jù)顯示,2017年,支付峰值在11日凌晨5分鐘22秒時(shí)為25.6萬(wàn)筆/秒,是2016年的2.1倍,這些交易給底層數(shù)據(jù)庫(kù)處理帶來(lái)的峰值是4 200萬(wàn)次/秒.這還不是最高的要求,據(jù)說(shuō),某些網(wǎng)絡(luò)監(jiān)控系統(tǒng)需要實(shí)現(xiàn)的數(shù)據(jù)入庫(kù)的要求超過(guò)100GB條記錄/秒.這就要求系統(tǒng)具有很高的吞吐量才行;

(4) 低質(zhì)量.這是指大數(shù)據(jù)通常都是自動(dòng)采集的,天然地具有噪音,如何在有噪音的情況下還能被有效地運(yùn)用?這不是傳統(tǒng)的查詢操作所能做到的,需要發(fā)展更復(fù)雜的數(shù)據(jù)治理、數(shù)據(jù)分析和機(jī)器學(xué)習(xí)技術(shù).

3.2 大數(shù)據(jù)管理系統(tǒng)的系統(tǒng)特征

目前,大數(shù)據(jù)管理技術(shù)還在快速進(jìn)化之中,還遠(yuǎn)沒(méi)有成型.管理好4V的數(shù)據(jù),從大數(shù)據(jù)管理的功能定位出發(fā),我們可以歸納出如下5個(gè)大數(shù)據(jù)管理的系統(tǒng)特征.

· 第一,大數(shù)據(jù)管理系統(tǒng)是一個(gè)開(kāi)放的系統(tǒng).大數(shù)據(jù)環(huán)境下,數(shù)據(jù)類型是開(kāi)放的,系統(tǒng)面向的不能僅僅是事先定義好的數(shù)據(jù)類型,也需要支持各種非結(jié)構(gòu)化的數(shù)據(jù)類型.其次,數(shù)據(jù)操作是開(kāi)放的,系統(tǒng)面向的不能僅僅是確定的操作算子,需要支持用戶定義的操作的實(shí)施.因此,大數(shù)據(jù)管理系統(tǒng)不能僅僅是單一的處理引擎,需要有一個(gè)框架可以容納和支持多個(gè)不同類型數(shù)據(jù)處理引擎并存.需要說(shuō)明的是:傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)遵循封閉世界假設(shè),即不在數(shù)據(jù)表中的記錄均為假.基于此假設(shè),關(guān)系數(shù)據(jù)庫(kù)的查詢優(yōu)化技術(shù),包括查詢等價(jià)變換、查詢包含、物化視圖更新等操作,也均基于封閉世界假設(shè).而大數(shù)據(jù)的開(kāi)放性特征使得傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)的封閉世界假設(shè)不再適用.在此背景下,大數(shù)據(jù)系統(tǒng)中的查詢表達(dá)和查詢優(yōu)化將是一個(gè)難點(diǎn),特別是面對(duì)用戶定義的操作以及跨引擎的查詢等如何進(jìn)行優(yōu)化,是一個(gè)巨大的挑戰(zhàn);

· 第二,大數(shù)據(jù)管理系統(tǒng)是一個(gè)多模型并存的系統(tǒng).大數(shù)據(jù)的多類型特征,使得單一的關(guān)系模型無(wú)法為多樣化的大數(shù)據(jù)進(jìn)行有效建模.在關(guān)系模型中,關(guān)系模式要求至少滿足第一范式.為了減少數(shù)據(jù)冗余和數(shù)據(jù)異常,往往要求關(guān)系模式滿足盡可能高的范式要求;在管理數(shù)據(jù)時(shí),需要事先定義關(guān)系模式,由于模式的修改代價(jià)非常昂貴,往往在進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),要求數(shù)據(jù)庫(kù)模式(關(guān)系模式等的集合)相對(duì)穩(wěn)定.上述這幾個(gè)特性在大數(shù)據(jù)應(yīng)用背景下均無(wú)法得到有效滿足.首先,大數(shù)據(jù)的應(yīng)用主要面向分析型,數(shù)據(jù)以追加操作為主,數(shù)據(jù)冗余和數(shù)據(jù)異常不是主要矛盾.事實(shí)上,在實(shí)際的大數(shù)據(jù)應(yīng)用中,性能往往是需要優(yōu)先考慮的因素.為了提高分析性能,在數(shù)據(jù)建模時(shí),往往通過(guò)引入數(shù)據(jù)冗余,降低關(guān)系模式滿足的范式要求(甚至都可以不滿足第一范式),減少甚至避免昂貴的連接操作.這種做法在寬表、面向社交網(wǎng)絡(luò)數(shù)據(jù)管理的文檔模型中得到了廣泛應(yīng)用.從這一點(diǎn)上看,大數(shù)據(jù)應(yīng)用的數(shù)據(jù)建模與傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理念是相違背的.其次,大數(shù)據(jù)應(yīng)用中,特別是面向非結(jié)構(gòu)化數(shù)據(jù)管理的互聯(lián)網(wǎng)應(yīng)用,關(guān)系模式往往無(wú)法事先就完整地定義下來(lái),并且隨著應(yīng)用的深入開(kāi)展,關(guān)系模式也是不斷變化的,這與關(guān)系數(shù)據(jù)庫(kù)建模中要求數(shù)據(jù)庫(kù)模式相對(duì)穩(wěn)定的假設(shè)是相違背的.在同一個(gè)系統(tǒng)中,支持多數(shù)據(jù)模型混合并存并提供一種通用的數(shù)據(jù)建模方法,目前還沒(méi)有一個(gè)成熟的技術(shù)方案;

· 第三,大數(shù)據(jù)管理系統(tǒng)將是一個(gè)強(qiáng)調(diào)高可用性和分布式可擴(kuò)展性的系統(tǒng).大數(shù)據(jù)應(yīng)用的多樣性特征弱化了傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)中事務(wù)的 ACID特性,強(qiáng)調(diào)數(shù)據(jù)的高可用和分布式可擴(kuò)展,容許數(shù)據(jù)有最終一致性甚至弱一致性.傳統(tǒng)的數(shù)據(jù)庫(kù)面向的是涉及到人、財(cái)、物等需要精細(xì)管理的應(yīng)用,特別是面向轉(zhuǎn)賬、記賬、訂票等核心業(yè)務(wù)的應(yīng)用,事務(wù)在其中起著決定性的作用.而大數(shù)據(jù)應(yīng)用的驅(qū)動(dòng),包括域名服務(wù)(DNS)、搜索、電子郵件等,已經(jīng)不同于傳統(tǒng)的涉及到人、財(cái)、物等需要精細(xì)管理的應(yīng)用,它不要求嚴(yán)格的數(shù)據(jù)一致性,甚至可以容許數(shù)據(jù)的部分不一致,強(qiáng)調(diào)的是服務(wù)的高可用性和分布式可擴(kuò)展性;

· 第四,大數(shù)據(jù)管理系統(tǒng)將是一個(gè)量質(zhì)融合的系統(tǒng),不僅需要管理大容量的數(shù)據(jù),還要管理帶噪音的數(shù)據(jù).傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)通過(guò)數(shù)據(jù)完整性約束的檢查與維護(hù)機(jī)制,在破壞數(shù)據(jù)庫(kù)完整性的操作發(fā)生時(shí),通過(guò)拒絕等行為保護(hù)數(shù)據(jù)庫(kù)不受侵害.因此,傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)可以認(rèn)為不關(guān)心數(shù)據(jù)質(zhì)量問(wèn)題.但是對(duì)于大數(shù)據(jù)管理系統(tǒng),缺失數(shù)據(jù)、矛盾數(shù)據(jù)、不完整數(shù)據(jù)的存在是常態(tài),因此,對(duì)數(shù)據(jù)的查詢要用對(duì)結(jié)果的排序來(lái)取代,對(duì)數(shù)據(jù)的統(tǒng)計(jì)建模要用機(jī)器學(xué)習(xí)模型來(lái)取代;

· 第五,大數(shù)據(jù)管理系統(tǒng)的中心將是知識(shí)管理.大數(shù)據(jù)的價(jià)值在于知識(shí),如何支持從大數(shù)據(jù)中發(fā)現(xiàn)知識(shí),是大數(shù)據(jù)管理系統(tǒng)不可或缺的功能.有兩種基本的方法:一種是知識(shí)圖譜,還有一種是深度學(xué)習(xí).這都是目前大數(shù)據(jù)知識(shí)發(fā)現(xiàn)中最重要的方法.

大數(shù)據(jù)管理系統(tǒng)還沒(méi)有像關(guān)系數(shù)據(jù)庫(kù)那樣成型,我國(guó)在大數(shù)據(jù)與云計(jì)算重點(diǎn)研發(fā)計(jì)劃中,已經(jīng)設(shè)立了面向領(lǐng)域的大數(shù)據(jù)管理系統(tǒng)的兩個(gè)項(xiàng)目:一個(gè)是支持工業(yè)大數(shù)據(jù)領(lǐng)域,一個(gè)是支持科學(xué)大數(shù)據(jù)領(lǐng)域.目標(biāo)是結(jié)合領(lǐng)域應(yīng)用的特點(diǎn),探索大數(shù)據(jù)管理系統(tǒng)的基礎(chǔ)架構(gòu)、核心功能和示范應(yīng)用.

3.3 大數(shù)據(jù)管理系統(tǒng)的應(yīng)用特征

大數(shù)據(jù)管理系統(tǒng)的應(yīng)用到底長(zhǎng)什么樣?如何進(jìn)行開(kāi)發(fā)?目前也許還看不清楚.但是,我們認(rèn)為以下幾點(diǎn)值得關(guān)注.

(1) 以對(duì)象為中心進(jìn)行數(shù)據(jù)組織,實(shí)現(xiàn)數(shù)據(jù)匯聚.不同于傳統(tǒng)的信息系統(tǒng),傳統(tǒng)的信息系統(tǒng)是以業(yè)務(wù)為中心的,數(shù)據(jù)需求來(lái)自于業(yè)務(wù)系統(tǒng),數(shù)據(jù)組織是為了業(yè)務(wù)處理的高效率;大數(shù)據(jù)則不同,大數(shù)據(jù)管理系統(tǒng)是以服務(wù)對(duì)象為核心,匯聚來(lái)自不同的業(yè)務(wù)系統(tǒng)的數(shù)據(jù),包括不同種類、不同頻度的數(shù)據(jù)等,構(gòu)成大數(shù)據(jù)以進(jìn)行處理;

(2) 以第四范式為解決問(wèn)題的新模式.第四范式的另一種叫法是基于數(shù)據(jù)的科學(xué)發(fā)現(xiàn)方法,是相對(duì)于其他3種范式而言的,即實(shí)驗(yàn)觀察、理論推導(dǎo)和計(jì)算機(jī)模擬.實(shí)驗(yàn)觀察是最古老的解決問(wèn)題的方法,例如,通過(guò)實(shí)驗(yàn)獲得經(jīng)驗(yàn),總結(jié)規(guī)律,形成新知識(shí);理論推導(dǎo)是以數(shù)學(xué)為工具的方法;計(jì)算機(jī)模擬可以用于研究核爆炸、天氣演化等.不同于上述3種模式,大數(shù)據(jù)方法是通過(guò)積累大數(shù)據(jù),并開(kāi)發(fā)大數(shù)據(jù)上的數(shù)據(jù)挖掘方法來(lái)發(fā)掘規(guī)律;

(3) 以機(jī)器學(xué)習(xí)為主要應(yīng)用類型.也許,一種稱為OLML(online machine learning)的應(yīng)用將大量出現(xiàn),即在

同一個(gè)大數(shù)據(jù)集上,多個(gè)用戶都在訓(xùn)練自己的機(jī)器學(xué)習(xí)模型,并進(jìn)行預(yù)測(cè).如果我們將機(jī)器模型訓(xùn)練看成是大數(shù)據(jù)不同數(shù)據(jù)子集上的計(jì)算的話,一個(gè)OLML就類似于一次SQL查詢處理.

3.4 小 結(jié)

作為大數(shù)據(jù)管理的核心,大數(shù)據(jù)管理系統(tǒng)是一套面向大容量、多類型、快變化、低質(zhì)量數(shù)據(jù)管理的系統(tǒng)軟件,該系統(tǒng)以量質(zhì)融合的知識(shí)管理為中心,支持結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化等多類型數(shù)據(jù)的組織、存儲(chǔ)和管理,具備高可用和分布式可擴(kuò)展的系統(tǒng)架構(gòu)特征和不同級(jí)別的事務(wù)特征,提供類SQL的數(shù)據(jù)查詢語(yǔ)言定義、操縱、控制、可視化數(shù)據(jù),支持快速的應(yīng)用開(kāi)發(fā)和系統(tǒng)運(yùn)維.AsterixDB[56]是由學(xué)術(shù)界和工業(yè)界聯(lián)合開(kāi)發(fā)的、探索面向大數(shù)據(jù)管理的一套開(kāi)源系統(tǒng).與NoSQL數(shù)據(jù)庫(kù)相比,AsterixDB提供了一套較為完整的類SQL語(yǔ)言來(lái)定義和操縱數(shù)據(jù).但該系統(tǒng)目前只支持單記錄的事務(wù),無(wú)法提供不同級(jí)別的事務(wù)一致性;系統(tǒng)的設(shè)計(jì)也不是面向知識(shí)管理的,因此,該系統(tǒng)距理想中的大數(shù)據(jù)管理系統(tǒng)還有很長(zhǎng)的一段路要走.

4 大數(shù)據(jù)管理系統(tǒng)未來(lái)發(fā)展展望

結(jié)合大數(shù)據(jù)管理系統(tǒng)正在經(jīng)歷以軟件為中心到以數(shù)據(jù)為中心的計(jì)算平臺(tái)的變遷以及軟件基礎(chǔ)設(shè)施化的大數(shù)據(jù)時(shí)代特征,本節(jié)從數(shù)據(jù)模型、計(jì)算模式、系統(tǒng)架構(gòu)、新硬件、自適應(yīng)優(yōu)化這5個(gè)方面展望大數(shù)據(jù)管理系統(tǒng)的未來(lái)發(fā)展.

4.1 多數(shù)據(jù)模型并存

大數(shù)據(jù)應(yīng)用的鮮明特征之一就是數(shù)據(jù)的多樣性,既有結(jié)構(gòu)化的關(guān)系數(shù)據(jù)、圖數(shù)據(jù)、軌跡數(shù)據(jù),也有非結(jié)構(gòu)化的文本數(shù)據(jù)、圖片數(shù)據(jù),甚至是視頻數(shù)據(jù)等.淘寶的“雙十一”就是這類典型的大數(shù)據(jù)應(yīng)用.大數(shù)據(jù)管理系統(tǒng)的一個(gè)基本要求就是能夠支持結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化等多種數(shù)據(jù)類型的組織、存儲(chǔ)和管理,形成以量質(zhì)相融合的知識(shí)管理為中心、并以此提供面向知識(shí)服務(wù)的快速應(yīng)用開(kāi)發(fā)接口.縱觀現(xiàn)有的大數(shù)據(jù)系統(tǒng),特別是以NoSQL數(shù)據(jù)庫(kù)為主的大數(shù)據(jù)系統(tǒng),走的仍然是一條一種數(shù)據(jù)模型解決一類數(shù)據(jù)的傳統(tǒng)道路.雖然也符合one-size-fits-a- bunch的設(shè)計(jì)理念,但應(yīng)用的要求仍然希望這里的“bunch”盡可能地接近“all”.具體來(lái)說(shuō),圖數(shù)據(jù)庫(kù)支撐的是類似于社交網(wǎng)絡(luò)、知識(shí)圖譜、語(yǔ)義網(wǎng)等強(qiáng)關(guān)聯(lián)數(shù)據(jù)的管理;關(guān)系數(shù)據(jù)庫(kù)支撐的是人、財(cái)、物等需要精細(xì)數(shù)據(jù)管理的應(yīng)用;鍵值對(duì)數(shù)據(jù)庫(kù)適合非結(jié)構(gòu)化或?qū)挶磉@類無(wú)需定義數(shù)據(jù)模式或模式高度變化的數(shù)據(jù)管理.在新型大數(shù)據(jù)應(yīng)用背景下,把多種類型的數(shù)據(jù)用同一個(gè)大數(shù)據(jù)管理系統(tǒng)組織、存儲(chǔ)和管理起來(lái),并提供統(tǒng)一的訪問(wèn)接口,這是大數(shù)據(jù)管理系統(tǒng)的一條必經(jīng)之路.多數(shù)據(jù)模型并存下的數(shù)據(jù)管理會(huì)存在很多的技術(shù)挑戰(zhàn),具體包括:

(1) 數(shù)據(jù)如何建模?關(guān)系數(shù)據(jù)庫(kù)具有嚴(yán)格的關(guān)系數(shù)據(jù)理論,并從降低數(shù)據(jù)冗余度和數(shù)據(jù)異常兩個(gè)維度輔助數(shù)據(jù)建模.而在新的數(shù)據(jù)模型下,甚至是多數(shù)據(jù)模型下,如何進(jìn)行數(shù)據(jù)建模是一個(gè)值得探索的課題;

(2) 數(shù)據(jù)的訪問(wèn)提供統(tǒng)一的用戶接口.多模型之間的數(shù)據(jù)如何交互和協(xié)同以及提供與存儲(chǔ)層和計(jì)算層的統(tǒng)一交互接口;

(3) 對(duì)多數(shù)據(jù)模型混合的數(shù)據(jù)處理提供執(zhí)行優(yōu)化,通過(guò)統(tǒng)一的資源管理優(yōu)化任務(wù)調(diào)度,通過(guò)性能預(yù)估優(yōu)化計(jì)算和通信等.

4.2 多計(jì)算模式互相融合

未來(lái)的大數(shù)據(jù)管理系統(tǒng)具有多計(jì)算模式并存的特點(diǎn).目前,Hadoop、Spark[57]及 Flink等主流大數(shù)據(jù)系統(tǒng)具有不同的計(jì)算模式,系統(tǒng)通常會(huì)偏重于批任務(wù)模式或流任務(wù)模式中的一種,這些系統(tǒng)提供的用戶接口也不統(tǒng)一.然而在實(shí)際應(yīng)用中,經(jīng)常存在同時(shí)需要批任務(wù)、流任務(wù)處理的需求,例如淘寶的“雙十一”就是批流融合的典型應(yīng)用.因此,未來(lái)的大數(shù)據(jù)管理系統(tǒng)需要對(duì)批、流計(jì)算模式進(jìn)行統(tǒng)一設(shè)計(jì),實(shí)現(xiàn)統(tǒng)一的能夠進(jìn)行批流融合的計(jì)算引擎.同時(shí),需要設(shè)計(jì)能夠屏蔽底層不同計(jì)算模式差異的用戶接口,方便使用.

機(jī)器學(xué)習(xí)是大數(shù)據(jù)管理中另一類重要的計(jì)算模式.目前,學(xué)術(shù)界、工業(yè)界廣泛使用 TensorFlow[58]、Spark MLlib[59]、Caffe[60]等系統(tǒng)處理相應(yīng)機(jī)器學(xué)習(xí)任務(wù).TensorFlow能夠以數(shù)據(jù)流圖作為表示形式,在參數(shù)服務(wù)器開(kāi)發(fā)、執(zhí)行機(jī)器學(xué)習(xí)任務(wù);Spark MLib基于MapReduce模型接口完成對(duì)大量數(shù)據(jù)的訓(xùn)練.這些系統(tǒng)僅關(guān)注機(jī)器學(xué)習(xí)中的算法訓(xùn)練,而實(shí)際應(yīng)用中存在多種計(jì)算模式混合的情況,且參數(shù)模型可達(dá)百億維度,現(xiàn)有系統(tǒng)均無(wú)法解決.因此,能夠兼容高維機(jī)器學(xué)習(xí)計(jì)算模式,也是未來(lái)大數(shù)據(jù)管理系統(tǒng)的重要內(nèi)容.

大數(shù)據(jù)管理系統(tǒng)也應(yīng)兼容交互式計(jì)算模式,滿足日益增長(zhǎng)的對(duì)交互式大數(shù)據(jù)分析應(yīng)用的需求.現(xiàn)今,Hive等主流分析工具在易用性方面有較大的提升空間,目前主要由專業(yè)人員使用,普通分析人員較難掌握.同時(shí),這些交互式系統(tǒng)在與操作人員交互的過(guò)程中還存在操作延遲長(zhǎng)等問(wèn)題,更高效的智能交互計(jì)算模式也是未來(lái)大數(shù)據(jù)管理系統(tǒng)需要考慮的方向之一.

總之,大數(shù)據(jù)存在對(duì)批計(jì)算、流計(jì)算、機(jī)器學(xué)習(xí)、交互式計(jì)算等多種計(jì)算模式的需求.同時(shí),數(shù)據(jù)存儲(chǔ)量大,無(wú)法對(duì)任一計(jì)算模式均保留一份數(shù)據(jù),未來(lái)的大數(shù)據(jù)系統(tǒng)需要在同樣存儲(chǔ)數(shù)據(jù)的基礎(chǔ)上支持多種計(jì)算模式.目前主流的大數(shù)據(jù)系統(tǒng)均基于開(kāi)源軟件,各層開(kāi)源軟件可相互兼容.未來(lái)的大數(shù)據(jù)管理系統(tǒng)需要兼容這些主流的大數(shù)據(jù)系統(tǒng),同時(shí),將存儲(chǔ)、通用計(jì)算、專用計(jì)算分層,明確各層的接口,并在各層設(shè)計(jì)、實(shí)現(xiàn)兼容多種計(jì)算模式,降低系統(tǒng)耦合性.

4.3 可伸縮調(diào)整

在軟件基礎(chǔ)設(shè)施化的大數(shù)據(jù)時(shí)代特征背景下,未來(lái)的大數(shù)據(jù)管理系統(tǒng)應(yīng)以云計(jì)算為平臺(tái),具有更好的分布可擴(kuò)展、可伸縮調(diào)整特點(diǎn),能夠?qū)崿F(xiàn)跨域的無(wú)縫融合.未來(lái)的大數(shù)據(jù)管理系統(tǒng)通過(guò)高速網(wǎng)絡(luò)將不同的硬件資源連接構(gòu)成一個(gè)計(jì)算系統(tǒng)整體,互相配合,為終端用戶服務(wù).云平臺(tái)上可以運(yùn)行多類應(yīng)用,不同的應(yīng)用需要不同的服務(wù)資源,因此系統(tǒng)配有多種存儲(chǔ)與數(shù)據(jù)組織模塊,可滿足不同上層任務(wù)負(fù)載和計(jì)算模式的需求.系統(tǒng)面向多類終端用戶,用戶可以根據(jù)需求選擇、配置合適的存儲(chǔ)架構(gòu)和數(shù)據(jù)組織方式,針對(duì)特定應(yīng)用,選擇、組裝對(duì)應(yīng)的功能模塊,并可根據(jù)任務(wù)負(fù)載的強(qiáng)弱實(shí)時(shí)調(diào)整系統(tǒng)的規(guī)模和負(fù)載的分配策略.同時(shí),針對(duì)不同用戶的需求,對(duì)應(yīng)用進(jìn)行深入理解,提取特征進(jìn)行模型構(gòu)建,實(shí)現(xiàn)彈性可伸縮調(diào)整是未來(lái)大數(shù)據(jù)管理系統(tǒng)的核心技術(shù)之一.

目前的大數(shù)據(jù)管理系統(tǒng)通常使用分布式文件系統(tǒng)(例如HDFS和Ceph)或者直通式鍵值系統(tǒng)管理數(shù)據(jù)的存儲(chǔ),并在此基礎(chǔ)上對(duì)鍵值、文檔、圖等進(jìn)行組織,構(gòu)成NoSQL系統(tǒng),為用戶提供服務(wù).NoSQL系統(tǒng)提供了更靈活的數(shù)據(jù)模型,但相對(duì)于傳統(tǒng)SQL技術(shù)不具有強(qiáng)一致性,且通常只用于執(zhí)行簡(jiǎn)單的分析任務(wù).而未來(lái)的大數(shù)據(jù)管理系統(tǒng)應(yīng)具有NewSQL[61]特性,可實(shí)現(xiàn)傳統(tǒng)SQL和NoSQL間的平衡,具體包括:(1) 具有傳統(tǒng)關(guān)系數(shù)據(jù)模型和傳統(tǒng)數(shù)據(jù)庫(kù)的事務(wù) ACID一致性,用戶可以使用 SQL語(yǔ)句對(duì)系統(tǒng)進(jìn)行操作;(2) 具有 NoSQL可擴(kuò)展等靈活特性,能夠利用高速網(wǎng)絡(luò)和內(nèi)存計(jì)算,實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的存儲(chǔ)管理和分析等功能,系統(tǒng)可伸縮調(diào)整.

4.4 新硬件驅(qū)動(dòng)

大數(shù)據(jù)管理系統(tǒng)由硬件和軟件兩方面構(gòu)成,軟件技術(shù)可受益于硬件技術(shù)發(fā)展,同時(shí)也受硬件技術(shù)體系結(jié)構(gòu)特征和局限性的約束.通過(guò)對(duì)不同硬件設(shè)計(jì)合適的數(shù)據(jù)結(jié)構(gòu)和算法可提升硬件效率.目前,硬件體系結(jié)構(gòu)正在經(jīng)歷巨大變革,在向?qū)S糜布姆较虬l(fā)展.同時(shí),各類新型存儲(chǔ)、高速互聯(lián)設(shè)備的出現(xiàn)也在改變以往大數(shù)據(jù)管理系統(tǒng)中的設(shè)計(jì)與底層支持.

近些年,以GPU為代表的加速器件得到了迅猛發(fā)展[62],也有越來(lái)越多的大數(shù)據(jù)系統(tǒng)使用GPU、Xeon Phi[63]、FPGA[64]等新硬件加速大數(shù)據(jù)管理任務(wù).相對(duì)于傳統(tǒng)管理系統(tǒng),新硬件驅(qū)動(dòng)的大數(shù)據(jù)管理系統(tǒng)可提供更快的負(fù)載處理速度和更好的實(shí)時(shí)可視化及處理效果.雖然新硬件驅(qū)動(dòng)為大數(shù)據(jù)管理系統(tǒng)提供了新思路,但也帶來(lái)了一系列需要解決的挑戰(zhàn).

(1) 新硬件分配任務(wù).不同種類的加速設(shè)備具有完全不同的體系結(jié)構(gòu)特征,它們適合處理的任務(wù)特征不同,因此在未來(lái)的大數(shù)據(jù)管理系統(tǒng)中,需要盡可能地使各加速設(shè)備處理合適的負(fù)載;

(2) 數(shù)據(jù)傳輸.由于各設(shè)備可能獨(dú)立接入系統(tǒng),處理負(fù)載時(shí)需從主存復(fù)制數(shù)據(jù)到設(shè)備.因此,在進(jìn)行任務(wù)分配時(shí),應(yīng)充分考慮數(shù)據(jù)傳輸時(shí)間;

(3) 新硬件下的數(shù)據(jù)結(jié)構(gòu)和算法.傳統(tǒng)系統(tǒng)中適合 x86架構(gòu)處理器的數(shù)據(jù)結(jié)構(gòu)可能不適合 GPU、FPGA等新硬件,需要考慮新硬件的執(zhí)行特點(diǎn)有針對(duì)性地設(shè)計(jì)新的數(shù)據(jù)結(jié)構(gòu)和算法.

在存儲(chǔ)和數(shù)據(jù)傳輸方面,新硬件也可發(fā)揮新的作用.以非易失存儲(chǔ)器(non-volatile memory)[65]為代表的新介質(zhì)可進(jìn)一步加速數(shù)據(jù)處理過(guò)程,如,在故障恢復(fù)時(shí)減少恢復(fù)時(shí)間等.在大數(shù)據(jù)管理系統(tǒng)的存儲(chǔ)層級(jí),有可能會(huì)有多種存儲(chǔ)類型,如何設(shè)計(jì)合適的數(shù)據(jù)存儲(chǔ)也是新硬件驅(qū)動(dòng)下系統(tǒng)設(shè)計(jì)重要的考慮因素.在分布式系統(tǒng)中,網(wǎng)絡(luò)傳輸可能是性能瓶頸,更快速的數(shù)據(jù)傳輸速度和新的網(wǎng)絡(luò)技術(shù),如RDMA[66]、Infiniband[67]等,可以緩解以往分布式系統(tǒng)中的數(shù)據(jù)傳輸瓶頸,如何利用這些新技術(shù)也是未來(lái)大數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)的重要內(nèi)容.

4.5 自適應(yīng)調(diào)優(yōu)

目前,大數(shù)據(jù)管理系統(tǒng)通常采用分布式文件系統(tǒng)和直通式鍵值存儲(chǔ)等開(kāi)源存儲(chǔ)系統(tǒng),并在這些開(kāi)源系統(tǒng)的基礎(chǔ)上構(gòu)建以鍵值對(duì)、文檔等為主要數(shù)據(jù)組織的NoSQL系統(tǒng).雖然目前的系統(tǒng)能夠?yàn)榇髷?shù)據(jù)提供存儲(chǔ)服務(wù),且能夠進(jìn)行系統(tǒng)擴(kuò)展,但系統(tǒng)功能相對(duì)單一,面向復(fù)雜的計(jì)算模型和負(fù)載任務(wù)通常顯得自適應(yīng)能力不足,缺少必要的可伸縮調(diào)整.開(kāi)發(fā)新型的能夠自適應(yīng)多種計(jì)算模型和任務(wù)的可伸縮調(diào)優(yōu)技術(shù),是未來(lái)大數(shù)據(jù)管理系統(tǒng)的發(fā)展方向.未來(lái)大數(shù)據(jù)管理系統(tǒng)的存儲(chǔ)需要支持具有不同訪問(wèn)特征的計(jì)算模型和任務(wù),如何針對(duì)不同模型自適應(yīng)地調(diào)整內(nèi)部模塊、選擇合適的存儲(chǔ)以及如何對(duì)于不同任務(wù)按需分配不同的存儲(chǔ)資源進(jìn)行自適應(yīng)的彈性調(diào)優(yōu)(例如,通過(guò)分析系統(tǒng)日志來(lái)優(yōu)化軟件系統(tǒng)配置的方法[68]),是未來(lái)大數(shù)據(jù)管理系統(tǒng)在數(shù)據(jù)存儲(chǔ)方面需要重點(diǎn)考慮的內(nèi)容.

未來(lái)的大數(shù)據(jù)管理系統(tǒng)應(yīng)能夠基于不同的存儲(chǔ)介質(zhì)和存儲(chǔ)架構(gòu)有效地對(duì)數(shù)據(jù)進(jìn)行組織,并根據(jù)上層計(jì)算模型的訪問(wèn)模式自適應(yīng)地選擇合適的模塊,同時(shí)能夠做到根據(jù)不同任務(wù)需求分配資源.具體可包括:(1) 支持多種類型存儲(chǔ),如具有高并發(fā)、低延遲的直通式鍵值存儲(chǔ)和分布式存儲(chǔ)等;(2) 支持主流數(shù)據(jù)模型,能夠?qū)?shù)據(jù)進(jìn)行高效組織,如對(duì)關(guān)系模型和圖模型的數(shù)據(jù)提供統(tǒng)一訪問(wèn)接口,同時(shí)采用合適的數(shù)據(jù)劃分策略,通過(guò)預(yù)估減少系統(tǒng)在存儲(chǔ)層和計(jì)算層間的數(shù)據(jù)傳輸量;(3) 支持多種計(jì)算模式和混合任務(wù)的自適應(yīng)調(diào)優(yōu),通過(guò)對(duì)不同存儲(chǔ)類型和數(shù)據(jù)類型進(jìn)行組織,對(duì)混合計(jì)算模型和任務(wù)構(gòu)建性能模型,自動(dòng)選擇合適的存儲(chǔ)模塊并進(jìn)行調(diào)優(yōu);(4) 支持大數(shù)據(jù)存儲(chǔ)的可伸縮調(diào)整和容錯(cuò),能夠根據(jù)數(shù)據(jù)和任務(wù)類型提升不同類型存儲(chǔ)的效率,并能面向不同任務(wù)準(zhǔn)確地分配合適的資源.

5 總 結(jié)

本文回顧了數(shù)據(jù)管理的發(fā)展歷史,指出了大數(shù)據(jù)的開(kāi)放性特征使得傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)中的三大核心技術(shù)——關(guān)系模型、查詢優(yōu)化、事務(wù)處理技術(shù)均無(wú)法滿足大數(shù)據(jù)的管理要求.大數(shù)據(jù)時(shí)代背景下,數(shù)據(jù)管理技術(shù)的設(shè)計(jì)理念從原來(lái)關(guān)系數(shù)據(jù)庫(kù)的one-size-fits-all轉(zhuǎn)變到one-size-does-not-fit-all,人們開(kāi)始嘗試研發(fā)適合自己應(yīng)用的大數(shù)據(jù)系統(tǒng).現(xiàn)階段,主流的大數(shù)據(jù)管理系統(tǒng)生態(tài)具有明顯的分層結(jié)構(gòu),各類子系統(tǒng)獨(dú)立發(fā)展,通過(guò)采用松耦合的方式進(jìn)行組裝,構(gòu)建為完整的大數(shù)據(jù)管理系統(tǒng).通過(guò)對(duì)大數(shù)據(jù)管理系統(tǒng)應(yīng)具備的數(shù)據(jù)特征、系統(tǒng)特征和應(yīng)用特征的分析,指出大數(shù)據(jù)管理系統(tǒng)技術(shù)還在快速進(jìn)化之中,并給出了大數(shù)據(jù)管理系統(tǒng)的概念說(shuō)明.最后,本文從數(shù)據(jù)模型、計(jì)算模式、系統(tǒng)架構(gòu)、新硬件、自適應(yīng)優(yōu)化這5個(gè)方面對(duì)大數(shù)據(jù)管理系統(tǒng)的未來(lái)發(fā)展趨勢(shì)作了預(yù)測(cè).

猜你喜歡
關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)管理管理系統(tǒng)
關(guān)系數(shù)據(jù)庫(kù)在高爐數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
山東冶金(2022年2期)2022-08-08 01:51:30
企業(yè)級(jí)BOM數(shù)據(jù)管理概要
基于James的院內(nèi)郵件管理系統(tǒng)的實(shí)現(xiàn)
定制化汽車制造的數(shù)據(jù)管理分析
海洋環(huán)境數(shù)據(jù)管理優(yōu)化與實(shí)踐
CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
基于LED聯(lián)動(dòng)顯示的違停管理系統(tǒng)
海盾壓載水管理系統(tǒng)
基于索引結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵詞檢索
基于RFID的倉(cāng)儲(chǔ)管理系統(tǒng)實(shí)現(xiàn)
新民市| 大竹县| 山阴县| 扎赉特旗| 彰化县| 达孜县| 包头市| 洛隆县| 磐安县| 类乌齐县| 东港市| 宜阳县| 双牌县| 施甸县| 景宁| 连云港市| 红安县| 曲阜市| 正阳县| 遂平县| 龙口市| 怀远县| 长子县| 昌吉市| 康定县| 无为县| 兰州市| 会昌县| 玉门市| 罗山县| 略阳县| 定南县| 舟曲县| 延吉市| 宣威市| 徐水县| 永嘉县| 吕梁市| 桑日县| 衡山县| 慈溪市|