唐桂文,韓嘉福,李洪省
(1.北京市西城經(jīng)濟(jì)科學(xué)大學(xué),北京 100035;2.中國科學(xué)院 地理科學(xué)與資源研究所,北京 100101)
現(xiàn)代社會(huì)已經(jīng)進(jìn)入了產(chǎn)生和使用空間大數(shù)據(jù)的時(shí)代??臻g大數(shù)據(jù)具有數(shù)據(jù)量大、多源異構(gòu)性、多時(shí)空尺度、多維度等特點(diǎn)[1],在總量上日益膨脹,使得空間大數(shù)據(jù)的存儲(chǔ)逐漸成為一個(gè)更獨(dú)立的技術(shù)問題。面對(duì)不斷增長的空間數(shù)據(jù)利用與共享的需求,如何將這些空間大數(shù)據(jù)進(jìn)行有效地存儲(chǔ)和管理,以更好地進(jìn)行數(shù)據(jù)共享,成為了一個(gè)急需解決的問題。
針對(duì)大數(shù)據(jù)存儲(chǔ),目前主要技術(shù)手段有基于Hadoop云計(jì)算、基于NoSQL數(shù)據(jù)庫、基于分布式等。
Hadoop以其高可靠性、高擴(kuò)展性、高效性和高容錯(cuò)性,特別是在海量的非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)上的分析處理優(yōu)勢(shì)[2],為大數(shù)據(jù)的處理提供了一種思路。但是Hadoop使用的MapReduce模型更適合簡單的統(tǒng)計(jì),無法支持更多復(fù)雜的數(shù)據(jù)分析及可視化展示。
近年來以BigTable、HBase、MongoDB為代表的NoSQL數(shù)據(jù)庫發(fā)展迅速,它采用key-value的數(shù)據(jù)存儲(chǔ)模式[3-5],很好地彌補(bǔ)了關(guān)系型數(shù)據(jù)庫在海量數(shù)據(jù)存儲(chǔ)中存在的不足,且部署過程簡易。此類數(shù)據(jù)存儲(chǔ)方式不用事先為數(shù)據(jù)建立字段,隨時(shí)可以自由添加字段,但會(huì)增加數(shù)據(jù)結(jié)構(gòu)解析難度且會(huì)產(chǎn)生數(shù)據(jù)冗余。
基于分布式系統(tǒng)的存儲(chǔ)方式主要有分布式數(shù)據(jù)庫和分布式文件系統(tǒng)兩大塊。分布式數(shù)據(jù)庫是數(shù)據(jù)庫技術(shù)與計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)結(jié)合的產(chǎn)物,利用現(xiàn)有成熟的關(guān)系數(shù)據(jù)庫技術(shù),將數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫中,數(shù)據(jù)可以分布在多個(gè)節(jié)點(diǎn)上[6],分布式數(shù)據(jù)庫適用于結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ);分布式文件系統(tǒng)是指網(wǎng)絡(luò)中普通分散的存儲(chǔ)節(jié)點(diǎn)組成一個(gè)邏輯集中的存儲(chǔ)設(shè)備,存儲(chǔ)節(jié)點(diǎn)之間通過網(wǎng)絡(luò)相互通信與控制的文件系統(tǒng)[7-9],分布式文件系統(tǒng)適用于非結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)?;谏鲜龃髷?shù)據(jù)的研究,文中提出一種結(jié)合分布式數(shù)據(jù)庫和分布式文件系統(tǒng)來存儲(chǔ)空間大數(shù)據(jù)的解決方案。
提出了一種基于iSCSI(Internet small computer system interface,網(wǎng)絡(luò)小型計(jì)算機(jī)系統(tǒng)接口)技術(shù)構(gòu)建分布式數(shù)據(jù)庫和分布式文件系統(tǒng)的策略。利用計(jì)算資源、網(wǎng)絡(luò)資源、存儲(chǔ)資源等構(gòu)建數(shù)據(jù)庫服務(wù)器集群和文件服務(wù)器集群,提供空間大數(shù)據(jù)的分布式存儲(chǔ)環(huán)境,并分別結(jié)合iSCSI網(wǎng)絡(luò)存儲(chǔ)技術(shù),構(gòu)建分布式數(shù)據(jù)庫和分布式文件系統(tǒng),將不同類型數(shù)據(jù)以不同的數(shù)據(jù)庫表或文件形式進(jìn)行管理,實(shí)現(xiàn)對(duì)空間大數(shù)據(jù)的分布式存儲(chǔ)。能夠滿足結(jié)構(gòu)化數(shù)據(jù)與非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ),并且具備可擴(kuò)展性,能滿足動(dòng)態(tài)無限增長數(shù)據(jù)的存儲(chǔ)、查詢及分析等需求。
iSCSI是工作在TCP/IP之上的SCSI傳輸協(xié)議,SCSI是塊數(shù)據(jù)傳輸協(xié)議,在存儲(chǔ)行業(yè)應(yīng)用廣泛,是存儲(chǔ)設(shè)備最基本的標(biāo)準(zhǔn)協(xié)議[10]。iSCSI將現(xiàn)有的SCSI接口與以太網(wǎng)技術(shù)相結(jié)合,使同一個(gè)網(wǎng)絡(luò)上的多種操作系統(tǒng)平臺(tái)的服務(wù)器可以與使用TCP/IP網(wǎng)絡(luò)的存儲(chǔ)設(shè)備互相交換存儲(chǔ)資料[11]。iSCSI的體系結(jié)構(gòu)是基于發(fā)起端/目標(biāo)端模式,發(fā)起端將SCSI命令和數(shù)據(jù)封裝到TCP/IP包中,再通過網(wǎng)絡(luò)轉(zhuǎn)發(fā),目標(biāo)端接收到TCP/IP包之后,將其還原為SCSI命令和數(shù)據(jù)并執(zhí)行,完成之后將返回的SCSI命令和數(shù)據(jù)再封裝到TCP/IP包中,再傳送回發(fā)起端。其體系結(jié)構(gòu)如圖1所示。
圖1 iSCSI體系結(jié)構(gòu)
分布式文件系統(tǒng)管理的物理存儲(chǔ)資源是通過計(jì)算機(jī)網(wǎng)絡(luò)與計(jì)算節(jié)點(diǎn)相連,每個(gè)計(jì)算節(jié)點(diǎn)可以分布在不同的地點(diǎn),通過網(wǎng)絡(luò)進(jìn)行節(jié)點(diǎn)間的通信和數(shù)據(jù)傳輸。存儲(chǔ)節(jié)點(diǎn)也可以分布在不同的地點(diǎn),其中的存儲(chǔ)資源可以是本地硬盤或通過虛擬技術(shù)提供的網(wǎng)絡(luò)塊存儲(chǔ)設(shè)備。其架構(gòu)如圖2所示。
圖2 分布式文件系統(tǒng)架構(gòu)
采用分布式數(shù)據(jù)庫存儲(chǔ)矢量數(shù)據(jù)、影像和其他數(shù)據(jù)索引,分布式文件系統(tǒng)存儲(chǔ)影像及其他數(shù)據(jù),實(shí)現(xiàn)對(duì)空間大數(shù)據(jù)的分布式存儲(chǔ)。
矢量數(shù)據(jù)的傳統(tǒng)存儲(chǔ)方式有文件、文件與數(shù)據(jù)庫混合、數(shù)據(jù)庫等集中式模式[12]。隨著矢量數(shù)據(jù)規(guī)模的不斷增大,單節(jié)點(diǎn)的處理能力會(huì)逐漸成為瓶頸,單點(diǎn)故障的問題也逐漸變得嚴(yán)重。Oracle RAC作為Oracle提供的一個(gè)并行集群系統(tǒng)[13],具有兩個(gè)或兩個(gè)以上的數(shù)據(jù)庫節(jié)點(diǎn)協(xié)調(diào)運(yùn)作能力,可提供強(qiáng)大的數(shù)據(jù)庫處理能力。該集群系統(tǒng)中所有數(shù)據(jù)庫服務(wù)器采用共享磁盤的方式共享事務(wù)與數(shù)據(jù),其實(shí)現(xiàn)方式有多種,其中最常用的是磁盤陣列,但磁盤陣列價(jià)格昂貴,對(duì)存儲(chǔ)設(shè)備的性能要求較高。文中采用iSCSI技術(shù)構(gòu)建分布式Oracle RAC,可將分散的普通服務(wù)器的存儲(chǔ)設(shè)備集中起來,創(chuàng)建數(shù)據(jù)庫共享磁盤,實(shí)現(xiàn)分布式數(shù)據(jù)庫,完成對(duì)空間大數(shù)據(jù)中矢量數(shù)據(jù)、影像和其他數(shù)據(jù)索引的存儲(chǔ)。
在存儲(chǔ)節(jié)點(diǎn)的服務(wù)器上使用iSCSI技術(shù)將存儲(chǔ)資源通過網(wǎng)絡(luò)輸送到Oracle RAC計(jì)算節(jié)點(diǎn),再利用Oracle RAC將存儲(chǔ)資源創(chuàng)建成共享磁盤并進(jìn)行管理,集群內(nèi)部自動(dòng)實(shí)現(xiàn)分布式存儲(chǔ)設(shè)備的維護(hù)。通過配置共享存儲(chǔ)管理空間大數(shù)據(jù),在計(jì)算節(jié)點(diǎn)上分別創(chuàng)建數(shù)據(jù)庫實(shí)例,節(jié)點(diǎn)之間通過網(wǎng)絡(luò)通訊,相互監(jiān)控其他節(jié)點(diǎn)狀態(tài),所有節(jié)點(diǎn)都可以讀取數(shù)據(jù)。其架構(gòu)如圖3所示。
影像及其他數(shù)據(jù)作為空間大數(shù)據(jù)的組成之一,具有單個(gè)文件大,且整體數(shù)據(jù)量大的特點(diǎn),對(duì)設(shè)備的容量有較大需求,其存儲(chǔ)方式由傳統(tǒng)的集中式發(fā)展到目前的分布式文件系統(tǒng)。常見的分布式文件系統(tǒng)包括NFS、AFS、CODA、GFS等[14],這些分布式文件系統(tǒng)一般需要在Linux操作系統(tǒng)下搭建,而大多數(shù)的空間數(shù)據(jù)應(yīng)用都在Windows平臺(tái)下。文中利用iSCSI技術(shù)構(gòu)建分布式文件系統(tǒng)來存儲(chǔ)影像及其他數(shù)據(jù),能夠充分利用零散的存儲(chǔ)空間,實(shí)現(xiàn)跨平臺(tái)的分布式文件系統(tǒng)。
圖3 基于iSCSI技術(shù)的分布式數(shù)據(jù)庫架構(gòu)
在分布式文件系統(tǒng)的主服務(wù)器節(jié)點(diǎn)上通過掛載分布式集群,使用文件共享服務(wù)軟件為選定的目錄建立網(wǎng)絡(luò)共享,將存儲(chǔ)空間提供出來,以供網(wǎng)絡(luò)內(nèi)的其他服務(wù)器進(jìn)行共享訪問,就像訪問本地文件一樣訪問數(shù)據(jù)。在分布式文件系統(tǒng)架構(gòu)中影像及其他數(shù)據(jù)存儲(chǔ)在各個(gè)節(jié)點(diǎn)上,數(shù)據(jù)能根據(jù)相應(yīng)的規(guī)則進(jìn)行分布。影像及其他數(shù)據(jù)的索引數(shù)據(jù)存儲(chǔ)在分布式數(shù)據(jù)庫中,與存儲(chǔ)在分布式文件系統(tǒng)中的數(shù)據(jù)本身建立聯(lián)系。
基于上述空間大數(shù)據(jù)分布式存儲(chǔ)的策略,設(shè)計(jì)了一套空間大數(shù)據(jù)管理系統(tǒng)。該系統(tǒng)按照四層架構(gòu)設(shè)計(jì),分為基礎(chǔ)設(shè)施層、數(shù)據(jù)資源層、組件服務(wù)層和系統(tǒng)應(yīng)用層。總體架構(gòu)如圖4所示。
圖4 空間大數(shù)據(jù)管理系統(tǒng)總體架構(gòu)
(1)基礎(chǔ)設(shè)施層:是支撐整個(gè)系統(tǒng)的基礎(chǔ)設(shè)施,主要包含計(jì)算資源、存儲(chǔ)資源、網(wǎng)絡(luò)資源以及安全設(shè)備等基礎(chǔ)設(shè)施資源。
(2)數(shù)據(jù)資源層:是整個(gè)系統(tǒng)的數(shù)據(jù)資源層,提供數(shù)據(jù)的存儲(chǔ)和管理能力。數(shù)據(jù)資源層基于數(shù)據(jù)庫服務(wù)集群,實(shí)現(xiàn)空間大數(shù)據(jù)的快速存取與高效計(jì)算,滿足空間時(shí)空信息瀏覽、高效分析處理與應(yīng)用的需求。
(3)組件服務(wù)層:是系統(tǒng)基本服務(wù)能力的體現(xiàn),通過功能組件和服務(wù)接口向上能支撐應(yīng)用層的應(yīng)用構(gòu)建,向下通過統(tǒng)一數(shù)據(jù)訪問接口能操作數(shù)據(jù)層的數(shù)據(jù)資源。
(4)系統(tǒng)應(yīng)用層:基于組件服務(wù)層提供的功能組件和服務(wù)接口,面向桌面端、Web端,面向不同接入模式進(jìn)行應(yīng)用構(gòu)建。其中桌面應(yīng)用主要包括數(shù)據(jù)更新維護(hù)、系統(tǒng)安全管理等,Web應(yīng)用主要包括二三維數(shù)據(jù)瀏覽、信息查詢檢索、成果數(shù)據(jù)展示等。
選用某地區(qū)的空間數(shù)據(jù)作為試驗(yàn)數(shù)據(jù),包括高低空遙感獲取的影像數(shù)據(jù)、導(dǎo)航定位數(shù)據(jù)、外業(yè)實(shí)測(cè)數(shù)據(jù)、社會(huì)經(jīng)濟(jì)專題數(shù)據(jù)、從基礎(chǔ)測(cè)繪成果提取與整合的數(shù)據(jù)等,涉及測(cè)繪、國土、交通、水文、林業(yè)、電力、醫(yī)療等多種行業(yè)。該試驗(yàn)數(shù)據(jù)體現(xiàn)了數(shù)據(jù)量大、多源異構(gòu)性、多時(shí)空尺度、多維度等特點(diǎn)。數(shù)據(jù)總量約35.0 TB,矢量數(shù)據(jù)約117 GB,共48個(gè)圖層,表1列出了其中8個(gè)要素多、結(jié)構(gòu)復(fù)雜的圖層;影像及其他數(shù)據(jù)約34.9 TB,包括351 GB的DEM、33.8 TB的DOM,769 GB的圖片、文檔、表格等其他數(shù)據(jù)。
表1 要素多、結(jié)構(gòu)復(fù)雜的8個(gè)矢量圖層
采用兩臺(tái)服務(wù)器構(gòu)建分布式數(shù)據(jù)庫系統(tǒng);一臺(tái)服務(wù)器作為分布式文件系統(tǒng)的主節(jié)點(diǎn),十臺(tái)服務(wù)器作為分布式文件系統(tǒng)的子節(jié)點(diǎn),構(gòu)建分布式文件系統(tǒng);一臺(tái)計(jì)算機(jī)作為系統(tǒng)運(yùn)行的客戶端。
基于上述試驗(yàn)數(shù)據(jù)和分布式環(huán)境,開發(fā)了一套空間大數(shù)據(jù)管理系統(tǒng)。該系統(tǒng)能夠有效完成矢量、影像數(shù)據(jù)的入庫,瀏覽展示,數(shù)據(jù)投影變換、格式轉(zhuǎn)換等處理,空間數(shù)據(jù)提取及制圖等操作。
基于該管理系統(tǒng),分別在單節(jié)點(diǎn)和集群環(huán)境下進(jìn)行了矢量數(shù)據(jù)入庫、影像數(shù)據(jù)入庫、矢量數(shù)據(jù)瀏覽展示的耗時(shí)試驗(yàn),結(jié)果如表2所示。
表2 耗時(shí)試驗(yàn)結(jié)果
試驗(yàn)結(jié)果表明,分布式環(huán)境下的數(shù)據(jù)入庫與瀏覽效率遠(yuǎn)高于單節(jié)點(diǎn)環(huán)境;并且通過連接更多的計(jì)算節(jié)點(diǎn),能夠有效提升數(shù)據(jù)的入庫效率,性能得到了明顯提升,有助于提高空間數(shù)據(jù)的分析能力,解決復(fù)雜計(jì)算的性能瓶頸。
綜上所述,該策略能通過網(wǎng)絡(luò)分布式連接多臺(tái)普通計(jì)算機(jī)設(shè)備,利用已有的分散的普通計(jì)算資源,完成對(duì)空間大數(shù)據(jù)的有效存儲(chǔ)。通過這種方式使管理系統(tǒng)具備靈活的分布式體系結(jié)構(gòu),支持存儲(chǔ)資源的動(dòng)態(tài)無縫擴(kuò)展,能夠滿足日益增長的數(shù)據(jù)存儲(chǔ)需求、數(shù)據(jù)二維和三維可視化及復(fù)雜空間分析,并且降低了硬件成本。
從空間大數(shù)據(jù)的存儲(chǔ)、應(yīng)用方面出發(fā),基于iSCSI技術(shù)實(shí)現(xiàn)了成本低、技術(shù)成熟、高穩(wěn)定性的分布式數(shù)據(jù)庫和分布式文件系統(tǒng)。今后的工作中需要從空間大數(shù)據(jù)大規(guī)模并發(fā)訪問、并行空間計(jì)算、空間大數(shù)據(jù)的數(shù)據(jù)挖掘、時(shí)空數(shù)據(jù)管理等角度出發(fā),研究一種更加適用于空間大數(shù)據(jù)的存儲(chǔ)管理機(jī)制。