999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種面向工業(yè)互聯(lián)網(wǎng)的云存儲(chǔ)方法

2019-01-30 01:34:04孟祥曦張凌郭皓明郭黎敏夏乾臣呂江花馬世龍

孟祥曦, 張凌, 郭皓明, 郭黎敏, 夏乾臣, 呂江花, 馬世龍

(1. 北京航空航天大學(xué) 計(jì)算機(jī)學(xué)院, 北京 100083; 2. 中國(guó)地震應(yīng)急搜救中心, 北京 100049;3. 中國(guó)科學(xué)院軟件研究所, 北京 100190)

信息化是工業(yè)發(fā)展的重要階段,信息化的出現(xiàn)不但大大增強(qiáng)了工業(yè)生產(chǎn)活動(dòng)中數(shù)據(jù)與信息的處理能力。同時(shí),還深刻地影響了生產(chǎn)的管理與組織模式。隨著工業(yè)信息化發(fā)展不斷深入,信息系統(tǒng)與數(shù)據(jù)資源逐漸成為重要的生產(chǎn)要素,在管理、組織、決策等活動(dòng)中發(fā)揮越來越重要的作用。在工業(yè)信息化發(fā)展的初期,信息化的目的在于解決生產(chǎn)、生活活動(dòng)中的確定性問題(例如:質(zhì)量控制、過程管理、數(shù)據(jù)采集和狀態(tài)監(jiān)控等)。因此,信息系統(tǒng)構(gòu)建的數(shù)據(jù)模型具有確定性的結(jié)構(gòu)定義與語(yǔ)義表達(dá)。在這一階段,以關(guān)系數(shù)據(jù)庫(kù)為代表的數(shù)據(jù)管理系統(tǒng)發(fā)揮重要作用。

隨著信息技術(shù)與制造業(yè)的不斷融合,工業(yè)互聯(lián)網(wǎng)[1-4]成為最受關(guān)注的發(fā)展熱點(diǎn)之一。工業(yè)互聯(lián)網(wǎng)將感知設(shè)備、計(jì)算機(jī)網(wǎng)絡(luò)和云平臺(tái)等現(xiàn)有的物聯(lián)網(wǎng)技術(shù)融入進(jìn)工業(yè)生產(chǎn)的各個(gè)環(huán)節(jié),用以解決工業(yè)生產(chǎn)流程參數(shù)獲取問題,從而實(shí)現(xiàn)對(duì)工業(yè)生產(chǎn)的數(shù)字化、精細(xì)化與智能化管理[5-8]。

與傳統(tǒng)的工業(yè)信息化系統(tǒng)相比,工業(yè)互聯(lián)網(wǎng)進(jìn)一步強(qiáng)調(diào)解決非確定性問題的能力(例如:對(duì)象狀態(tài)評(píng)估、風(fēng)險(xiǎn)預(yù)測(cè)、價(jià)值判斷等)。工業(yè)互聯(lián)網(wǎng)應(yīng)用場(chǎng)景具有以下特點(diǎn):

1) 云端服務(wù)化。互聯(lián)網(wǎng)的成熟改變了工業(yè)軟件的傳統(tǒng)架構(gòu)。云端服務(wù)成為工業(yè)軟件的主要架構(gòu)模式。在這一模式中,工業(yè)軟件脫離原有的局域環(huán)境部署的方式,將終端的功能弱化,形成較為單一數(shù)據(jù)采集與結(jié)果呈現(xiàn)工具。在云端,實(shí)現(xiàn)終端數(shù)據(jù)的處理、存儲(chǔ)、查詢與分析等功能。通過網(wǎng)絡(luò)實(shí)現(xiàn)云端-終端之間的數(shù)據(jù)交換。由于業(yè)務(wù)承載量的膨脹,云端需要具有高效的數(shù)據(jù)讀寫機(jī)制。一方面保證平臺(tái)并發(fā)性能。另一方面,避免云端的數(shù)據(jù)處理負(fù)擔(dān),簡(jiǎn)化數(shù)據(jù)的各種格式清洗與預(yù)處理等操作。

2) 數(shù)據(jù)泛化。結(jié)合大數(shù)據(jù),工業(yè)互聯(lián)網(wǎng)的發(fā)展改變了生產(chǎn)活動(dòng)的商業(yè)與服務(wù)模式。這一趨勢(shì)導(dǎo)致傳統(tǒng)的數(shù)據(jù)生產(chǎn)-消費(fèi)關(guān)系發(fā)生顛覆性的變化。云平臺(tái)結(jié)合大數(shù)據(jù)手段,在對(duì)象全壽命周期的基礎(chǔ)上,從多個(gè)維度開展知識(shí)挖掘圍繞對(duì)象行為導(dǎo)向、價(jià)值判斷、決策支撐等開展分析與支撐。這就需數(shù)據(jù)管理系統(tǒng)能夠支撐上層復(fù)雜挖掘分析的多值查詢、布爾查詢等復(fù)雜操作。

從數(shù)據(jù)的角度出發(fā),工業(yè)互聯(lián)網(wǎng)中數(shù)據(jù)具有一定的實(shí)時(shí)性。同時(shí),與傳統(tǒng)的信息系統(tǒng)中數(shù)據(jù)相比,其具有以下特點(diǎn):

1) 數(shù)據(jù)價(jià)值具有時(shí)效性。在云平臺(tái)日常數(shù)據(jù)增量過程中,為了支撐對(duì)象分析、知識(shí)提取以及事件回溯等需要實(shí)現(xiàn)全壽命周期的數(shù)據(jù)存儲(chǔ)管理。另一方面,在大多數(shù)應(yīng)用場(chǎng)景中,數(shù)據(jù)自身的信息承載價(jià)值隨著時(shí)間變化。整體而言,在數(shù)據(jù)產(chǎn)生的初期,其信息承載價(jià)值較高,隨著時(shí)間的變化,這一價(jià)值逐漸降低。從數(shù)據(jù)存儲(chǔ)管理的角度出發(fā),應(yīng)圍繞時(shí)間-價(jià)值的關(guān)系建立數(shù)據(jù)組織機(jī)制,保證數(shù)據(jù)整體有效存儲(chǔ)管理,避免大量?jī)r(jià)值不均數(shù)據(jù)無差別管理導(dǎo)致的效率降低。

2) 數(shù)據(jù)不是強(qiáng)事務(wù)性。在云平臺(tái)形成生態(tài)圈中,所產(chǎn)生的大量數(shù)據(jù)用于記錄對(duì)象的操作行為、客觀事物的監(jiān)測(cè)記錄、對(duì)象狀態(tài)變更等。這一類數(shù)據(jù)以時(shí)間序列的方式增量,在數(shù)據(jù)生產(chǎn)-消費(fèi)過程中,不存在復(fù)雜、頻繁的變更。同時(shí),也不具備回滾等強(qiáng)事務(wù)性處理的需求。因此,在數(shù)據(jù)存儲(chǔ)管理過程中,數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部存儲(chǔ)管理模型較為簡(jiǎn)單,無需復(fù)雜的鎖等控制機(jī)制。

在工業(yè)互聯(lián)網(wǎng)環(huán)境中,信息系統(tǒng)的架構(gòu)、組織與應(yīng)用模式發(fā)生巨大變化。這一變化導(dǎo)致云平臺(tái)在非結(jié)構(gòu)化數(shù)據(jù)統(tǒng)一存儲(chǔ)管理、高性能檢索查詢等方面提出較高要求。同時(shí),與傳統(tǒng)的應(yīng)用系統(tǒng)相比,數(shù)據(jù)在價(jià)值分布、一致性、事務(wù)性等方面管理需求不同。這些因素疊加導(dǎo)致傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)面臨一定的局限性。工業(yè)互聯(lián)網(wǎng)需要解決以下幾個(gè)核心問題:

1) 在工業(yè)互聯(lián)網(wǎng)環(huán)境中,對(duì)于各種不同的工業(yè)傳感器采集的數(shù)據(jù),如何實(shí)現(xiàn)異構(gòu)數(shù)據(jù)的統(tǒng)一存儲(chǔ)管理?

2) 在問題1)的場(chǎng)景中,如何圍繞非結(jié)構(gòu)化數(shù)據(jù)建立有效的基本讀寫控制機(jī)制,保證存儲(chǔ)空間的利用效率?

3) 在問題1)和2)的場(chǎng)景中,如何圍繞數(shù)據(jù)建立有效的索引機(jī)制,滿足海量數(shù)據(jù)中多值查詢、布爾查詢等復(fù)雜查詢操作的效率?

針對(duì)上述問題,本文提出了一種面向工業(yè)互聯(lián)網(wǎng)的云存儲(chǔ)方法——StoreCDB。StoreCDB采用并行架構(gòu),在多點(diǎn)協(xié)同的基礎(chǔ)上實(shí)現(xiàn)多源、異構(gòu)的JSON(JavaScript Object Notation)數(shù)據(jù)統(tǒng)一存儲(chǔ)管理。在這一架構(gòu)中,首先根據(jù)業(yè)務(wù)建立統(tǒng)一表達(dá)模型,來自不同數(shù)據(jù)源的異構(gòu)JSON數(shù)據(jù)與該模型進(jìn)行結(jié)構(gòu)映射,形成統(tǒng)一表達(dá)映射索引,利用索引實(shí)現(xiàn)異構(gòu)數(shù)據(jù)的統(tǒng)一檢索。該索引具有查詢執(zhí)行效率受數(shù)據(jù)集規(guī)模影響較小的特點(diǎn),且支持多維與布爾查詢。原始數(shù)據(jù)記錄以SN(Share-Nothing)的原則分布存儲(chǔ)在底層節(jié)點(diǎn)的分頁(yè)中,避免大量格式清洗以及后處理的負(fù)載,滿足工業(yè)互聯(lián)網(wǎng)的要求。

本文首先對(duì)數(shù)據(jù)管理方面的相關(guān)工作進(jìn)行了調(diào)研;其次闡述了StoreCDB的系統(tǒng)架構(gòu),并分別介紹了StoreCDB的數(shù)據(jù)存儲(chǔ)模型和數(shù)據(jù)寫入操作方法及如何利用這一架構(gòu)實(shí)現(xiàn)海量、異構(gòu)數(shù)據(jù)的多值查詢與布爾查詢;最后討論了系統(tǒng)的實(shí)現(xiàn)與實(shí)驗(yàn)結(jié)果。

1 相關(guān)工作

在海量異構(gòu)數(shù)據(jù)存儲(chǔ)與查詢處理方面,目前主要有2種方法:典型的數(shù)據(jù)集中式管理方法和采用云數(shù)據(jù)管理及其相關(guān)技術(shù)的大數(shù)據(jù)管理。

1.1 數(shù)據(jù)集中式管理方法

在集中式數(shù)據(jù)管理系統(tǒng)中,由數(shù)據(jù)中心對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一的存儲(chǔ)管理。感知層接收采樣數(shù)據(jù),首先將其按照一定的規(guī)則轉(zhuǎn)換成為標(biāo)準(zhǔn)格式并上傳至數(shù)據(jù)中心,然后再利用數(shù)據(jù)中心強(qiáng)大的存儲(chǔ)與計(jì)算能力直接完成查詢處理。

典型的數(shù)據(jù)集中式管理方法有關(guān)系數(shù)據(jù)庫(kù)、并行數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)集群。并行數(shù)據(jù)庫(kù)通過將多個(gè)關(guān)系數(shù)據(jù)庫(kù)組織成數(shù)據(jù)庫(kù)集群來支持海量結(jié)構(gòu)化數(shù)據(jù)的處理,但這種方法在處理關(guān)鍵字查詢時(shí)的性能要遠(yuǎn)低于“鍵-值”(K-V)數(shù)據(jù)庫(kù),無法快速地檢索到所需要的數(shù)據(jù)。而且由于采用了嚴(yán)格的分布式事務(wù)處理機(jī)制[9],在采樣數(shù)據(jù)頻繁上傳和更新的情況下,數(shù)據(jù)處理的效率十分低下[10]。所以傳統(tǒng)的并行數(shù)據(jù)庫(kù)技術(shù)主要針對(duì)通用的數(shù)據(jù)類型,尚不能有效地支持海量異構(gòu)數(shù)據(jù)的并行存儲(chǔ)與查詢處理。

另一方面,由于關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的出發(fā)點(diǎn)是追求高度的數(shù)據(jù)一致性和容錯(cuò)性,根據(jù)CAP(Consistency, Availability, tolerance to network Partitions)理論[11-13],在分布式系統(tǒng)中,一致性、可用性和分區(qū)容錯(cuò)性三者不可兼得,因而并行關(guān)系數(shù)據(jù)庫(kù)無法獲得較強(qiáng)的擴(kuò)展性和良好的系統(tǒng)可用性。

1.2 云數(shù)據(jù)管理及其相關(guān)技術(shù)

云計(jì)算是最近幾年新興的一個(gè)技術(shù)領(lǐng)域,其核心特點(diǎn)是通過一種協(xié)同機(jī)制,動(dòng)態(tài)管理幾萬(wàn)臺(tái)、幾十萬(wàn)臺(tái)甚至上百萬(wàn)臺(tái)計(jì)算機(jī)資源所具有的總處理能力,并按需分配給全球用戶,使它們可以在此之上構(gòu)建穩(wěn)定而快速的存儲(chǔ)以及其他IT服務(wù)[14],因此云計(jì)算為海量數(shù)據(jù)處理提供了一種可能。大數(shù)據(jù)存儲(chǔ)的形式包括分布式的文件系統(tǒng)、分布式的K-V對(duì)存儲(chǔ)以及分布式數(shù)據(jù)庫(kù)存儲(chǔ)。當(dāng)前的研究也集中在這3個(gè)方面,并依據(jù)應(yīng)用的需求進(jìn)行相關(guān)的優(yōu)化。

在分布式文件系統(tǒng)研究方面,傳統(tǒng)的分布式文件系統(tǒng)——NFS應(yīng)用最為廣泛[15]。為了應(yīng)對(duì)搜索引擎數(shù)據(jù),谷歌公布了其能夠用于存儲(chǔ)網(wǎng)頁(yè)數(shù)據(jù)的分布式文件系統(tǒng)技術(shù)——GFS[16]。開源社區(qū)據(jù)此開發(fā)了適合部署在廉價(jià)機(jī)器上的Hadoop分布式文件系統(tǒng)——HDFS[17]。微軟開發(fā)的Cosmos[18]支撐著其搜索、廣告等業(yè)務(wù)。Facebook推出了專門針對(duì)海量小文件的文件系統(tǒng)Haystack[19],以降低對(duì)磁盤尋道速度的要求。K-V對(duì)存儲(chǔ)也是一大類重要的存儲(chǔ)系統(tǒng)。亞馬遜提出的Dynamo以K-V為模式,是一個(gè)真正意義上的去中心化的完全分布式存儲(chǔ)系統(tǒng),具有高可靠性、高可用性且具有良好的容錯(cuò)機(jī)制[20]。由于模型的簡(jiǎn)單性,K-V對(duì)存儲(chǔ)在應(yīng)用模型不是很復(fù)雜的情況下能夠獲得更好的性能。Bigtable是谷歌開發(fā)的基于GFS和Chubby的非關(guān)系數(shù)據(jù)庫(kù),是一個(gè)稀疏的、分布式的、持久化存儲(chǔ)的多維度排序映射表[21]。為克服其缺乏一致性支持的缺點(diǎn),谷歌將其改進(jìn)為Megastore系統(tǒng)[22],但是改進(jìn)后的系統(tǒng)性能不是很高。隨后谷歌進(jìn)一步開發(fā)了Spanner系統(tǒng),能夠進(jìn)一步加強(qiáng)一致性,將數(shù)據(jù)分布到了全球的規(guī)模,性能有了一定提高[23]。Spanner是第1個(gè)可以實(shí)現(xiàn)全球規(guī)模擴(kuò)展并且支持外部一致事務(wù)的數(shù)據(jù)庫(kù)。

然而,目前的絕大多數(shù)云數(shù)據(jù)存儲(chǔ)系統(tǒng)及Map/Reduce主要面向關(guān)鍵詞處理及靜態(tài)的海量數(shù)據(jù),在面向數(shù)據(jù)的多維邏輯、數(shù)值邏輯時(shí),受到諸多的局限與制約,并不適用于復(fù)雜的大規(guī)模異構(gòu)數(shù)據(jù)的存儲(chǔ)與分析處理。例如MongoDB雖然廣泛應(yīng)用于云計(jì)算數(shù)據(jù)存儲(chǔ)管理中,但是其索引采用B+樹機(jī)制,面對(duì)多維度數(shù)據(jù)查詢時(shí),索引規(guī)模快速擴(kuò)張,進(jìn)而影響海量數(shù)據(jù)查詢效率。

通過上述分析可以看出,工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)的存儲(chǔ)技術(shù)目前還相當(dāng)?shù)牟怀墒臁榱私鉀Q上述問題,本文針對(duì)工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ)管理的核心問題進(jìn)行研究,提出了面向工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)管理的存儲(chǔ)管理方法及系統(tǒng)框架。

2 StoreCDB系統(tǒng)架構(gòu)

本節(jié)將描述StoreCDB的系統(tǒng)架構(gòu)與工作機(jī)理,StoreCDB的系統(tǒng)結(jié)構(gòu)如圖1所示。

如圖1所示,StoreCDB是以并行架構(gòu)為基礎(chǔ)組成的數(shù)據(jù)存儲(chǔ)管理系統(tǒng),由一個(gè)Master節(jié)點(diǎn)和一組Worker節(jié)點(diǎn)構(gòu)成。Master節(jié)點(diǎn)主要負(fù)責(zé)統(tǒng)一表達(dá)建模與異構(gòu)數(shù)據(jù)映射、數(shù)據(jù)分發(fā)以及全局分頁(yè)存儲(chǔ)映射管理等;Worker節(jié)點(diǎn)實(shí)現(xiàn)原始數(shù)據(jù)記錄在本地存儲(chǔ)、索引維護(hù)以及查詢執(zhí)行等。整個(gè)架構(gòu)由資源協(xié)同層、網(wǎng)絡(luò)連接層和節(jié)點(diǎn)存儲(chǔ)層構(gòu)成的。

資源協(xié)同層利用抽象表達(dá)模型對(duì)采樣數(shù)據(jù)進(jìn)行統(tǒng)一的表達(dá)。通過模型實(shí)現(xiàn)數(shù)據(jù)的結(jié)構(gòu)語(yǔ)義映射與互操作,并對(duì)多源異構(gòu)大數(shù)據(jù)存儲(chǔ)與管理過程進(jìn)行統(tǒng)一表達(dá),其中數(shù)據(jù)模型和映射關(guān)系的定義將在數(shù)據(jù)模型中詳細(xì)介紹。在這一基礎(chǔ)上,根據(jù)統(tǒng)一表達(dá)模型定義的主鍵取值實(shí)現(xiàn)定向分發(fā),同時(shí)維護(hù)全局的分頁(yè)存儲(chǔ)映射信息。

網(wǎng)絡(luò)連接層在Master與Worker節(jié)點(diǎn)之間建立網(wǎng)絡(luò)連接。同時(shí),在這一網(wǎng)絡(luò)連接內(nèi)部建立通道資源,為不同任務(wù)分配通信資源并維護(hù)會(huì)話狀態(tài)。

圖1 StoreCDB的系統(tǒng)結(jié)構(gòu)Fig.1 System structure of StoreCDB

節(jié)點(diǎn)存儲(chǔ)層由Worker節(jié)點(diǎn)構(gòu)成。Worker節(jié)點(diǎn)在分頁(yè)的基礎(chǔ)上,實(shí)現(xiàn)原始數(shù)據(jù)的本地存儲(chǔ)。同時(shí),在統(tǒng)一表達(dá)模型的基礎(chǔ)上對(duì)原始JSON數(shù)據(jù)記錄的結(jié)構(gòu)進(jìn)行映射并提取屬性取值,維護(hù)本地索引。通過本地的SQL(Structured Query Language)引擎提供檢索支持。

StoreCDB在上述存儲(chǔ)管理的基礎(chǔ)上,發(fā)揮并行架構(gòu)優(yōu)勢(shì),面向工業(yè)互聯(lián)網(wǎng)中的上層應(yīng)用提供高性能K-V、多值以及布爾查詢操作支撐。

3 StoreCDB數(shù)據(jù)存儲(chǔ)模型

本節(jié)將討論數(shù)據(jù)存儲(chǔ)模型,并重點(diǎn)從數(shù)據(jù)模型和存儲(chǔ)結(jié)構(gòu)2 個(gè)方面對(duì)StoreCDB的存儲(chǔ)模型進(jìn)行描述。

3.1 StoreCDB數(shù)據(jù)模型

在StoreCDB中,異構(gòu)采樣數(shù)據(jù)需要進(jìn)行統(tǒng)一的數(shù)據(jù)模型表示。下面將從原始采樣數(shù)據(jù)以及屬性映射關(guān)系對(duì)StoreCDB的數(shù)據(jù)模型進(jìn)行描述。

定義1數(shù)據(jù)記錄sensorData是由數(shù)據(jù)標(biāo)簽和數(shù)據(jù)內(nèi)容構(gòu)成,可表示為

sensorData=(sName,sTagName,sData,sTime)

其中:sName表示傳感器名稱;sTagName表示傳感器采樣數(shù)據(jù)的類型標(biāo)簽;sData表示該標(biāo)簽的采樣值;sTime表示采樣時(shí)間。

表1給出了在高速列車監(jiān)控系統(tǒng)中各種傳感器采樣值的示例。

定義2采樣數(shù)據(jù)序列srcData是由同一監(jiān)控對(duì)象的所有傳感器的采樣值按照時(shí)間序列組織而成的,可表示為

其中:sTimej表示第j個(gè)采樣時(shí)間;sensorDataij表示第j個(gè)采樣時(shí)間下第i個(gè)傳感器采樣值。

以表1為例,與其對(duì)應(yīng)的采樣數(shù)據(jù)序列為srcData = (((s08, 運(yùn)行速度, 215,t1), (s401, 轉(zhuǎn)向架軸溫, 83,t1)),t1), (((s10, 行駛速度, 216,t2), (s401, 轉(zhuǎn)向架軸溫, 85,t2)),t2)。

在原始采樣數(shù)據(jù)中,由于數(shù)據(jù)的多源異構(gòu)性,同一種傳感器類型的表述可能千差萬(wàn)別。例如在表1中,傳感器類型同樣是行駛速度,但s08的描述是運(yùn)行速度,而s10的描述是行駛速度。為了統(tǒng)一管理,在StoreCDB中有一個(gè)屬性映射表,即

表1 傳感器采樣值的示例Table 1 Examples of sensor sample values

f: sTagName → tagName

其中:sTagName表示原始采樣數(shù)據(jù)中傳感器類型標(biāo)簽;tagName是StoreCDB中與sTagName對(duì)應(yīng)的統(tǒng)一表示的屬性名稱。一個(gè)tagName可以對(duì)應(yīng)多個(gè)sTagName,通過屬性映射表,StoreCDB可以為不同標(biāo)準(zhǔn)的采樣數(shù)據(jù)類型提供統(tǒng)一的表示。

在StoreCDB中,為了對(duì)異構(gòu)數(shù)據(jù)進(jìn)行統(tǒng)一表示,在主節(jié)點(diǎn)接收采樣數(shù)據(jù)之前,需要將采樣數(shù)據(jù)序列轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)格式。為了更好地描述數(shù)據(jù)轉(zhuǎn)換格式,本文先給出了如下定義:

data=(content,sTime)

定義4給定原始數(shù)據(jù)的數(shù)據(jù)內(nèi)容content,其中的采樣屬性集合propertySet可表示為

其中:tagNamei表示從content中提取的第i個(gè)傳感器類型;posi表示該類型在content中對(duì)應(yīng)的位置。

通過上述定義,在StoreCDB中可以將采樣數(shù)據(jù)轉(zhuǎn)換成為統(tǒng)一的數(shù)據(jù)格式,如定義5所示。

定義5統(tǒng)一數(shù)據(jù)格式D由三元組構(gòu)成,可表示為

D=(data,propertySet,timeStamp)

其中:timeStamp表示數(shù)據(jù)接收時(shí)間。

以表1為例,假設(shè)ts1時(shí)刻接收到t1時(shí)刻的采樣數(shù)據(jù),統(tǒng)一數(shù)據(jù)格式D1= ((((運(yùn)行速度, 215), (轉(zhuǎn)向架軸溫, 83)),t1),((速度, 1), (軸溫, 2)),ts1),其中data項(xiàng)直接保存了原始采樣數(shù)據(jù)內(nèi)容,propertySet中的“速度”則是data中的“運(yùn)行速度”在StoreCDB中的屬性映射,同樣“軸溫”是“轉(zhuǎn)向架軸溫”的屬性映射,ts1則是數(shù)據(jù)接收時(shí)間。

3.2 StoreCDB數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)

在StoreCDB中,存儲(chǔ)管理層采用主從結(jié)構(gòu)進(jìn)行分布式管理,由一個(gè)主節(jié)點(diǎn)(Master)和多個(gè)從節(jié)點(diǎn)(Worker)構(gòu)成,其中主節(jié)點(diǎn)在統(tǒng)一表達(dá)模型的基礎(chǔ)上負(fù)責(zé)增量數(shù)據(jù)分發(fā)、全局存儲(chǔ)分頁(yè)映射維護(hù)、高性能數(shù)據(jù)查詢?nèi)蝿?wù)調(diào)度,從節(jié)點(diǎn)存儲(chǔ)實(shí)際的采樣數(shù)據(jù)、維護(hù)本地索引、執(zhí)行查詢?nèi)蝿?wù)。StoreCDB的存儲(chǔ)管理結(jié)構(gòu)如圖2所示。

圖2 StoreCDB的存儲(chǔ)管理結(jié)構(gòu)Fig.2 Storage management structure of StoreCDB

如3.1節(jié)所述,多源異構(gòu)采樣數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)格式之后封裝為數(shù)據(jù)D,主節(jié)點(diǎn)接收到數(shù)據(jù)D之后,首先根據(jù)D中的定義為主鍵的屬性取值,映射到對(duì)應(yīng)的分頁(yè)存儲(chǔ)空間,再根據(jù)數(shù)據(jù)劃分方式找到對(duì)應(yīng)的存儲(chǔ)頁(yè),最后主節(jié)點(diǎn)將數(shù)據(jù)D發(fā)送給相應(yīng)的從節(jié)點(diǎn)。

從節(jié)點(diǎn)接收到數(shù)據(jù)之后,首先將數(shù)據(jù)添加到對(duì)應(yīng)的存儲(chǔ)頁(yè),然后更新相應(yīng)的頁(yè)索引,再依據(jù)屬性集propertySet中的屬性值更新屬性索引。

頁(yè)索引記錄了數(shù)據(jù)與存儲(chǔ)位置之間的映射關(guān)系,實(shí)現(xiàn)了快速檢索數(shù)據(jù)的一級(jí)索引,定義如下:

定義6頁(yè)索引mapIdx可表示為

其中:rowIdi表示第i個(gè)數(shù)據(jù)的行號(hào);idxi表示第i個(gè)數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)位置指針。

屬性索引記錄了屬性集propertySet中各屬性值與頁(yè)索引mapIdx之間的映射關(guān)系,實(shí)現(xiàn)了快速檢索數(shù)據(jù)的二級(jí)索引,定義見定義7。

定義7屬性索引comIdx可表示為

其中:pTagMapi為第i個(gè)屬性的值域分布的映射向量集合,形式如下:

其中:tagName表示屬性的標(biāo)識(shí);valueArrayi表示該屬性第i個(gè)屬性值的索引映射集合,可表示為

其中:pValue表示一個(gè)屬性值。rowIdi為第i個(gè)包含該屬性值的數(shù)據(jù)行號(hào),與頁(yè)索引中的行號(hào)對(duì)應(yīng)。

依據(jù)不同的劃分方式,采樣數(shù)據(jù)存放在一系列存儲(chǔ)頁(yè)中,記為dataPage。每個(gè)存儲(chǔ)頁(yè)對(duì)應(yīng)一個(gè)從節(jié)點(diǎn),而一個(gè)從節(jié)點(diǎn)可以包含多個(gè)存儲(chǔ)頁(yè),定義如下:

定義8存儲(chǔ)頁(yè)dataPage表示為

為了支持多源異構(gòu)數(shù)據(jù),StoreCDB依據(jù)不同的應(yīng)用場(chǎng)景分為若干個(gè)不同的源數(shù)據(jù)集,并為每一類源數(shù)據(jù)集定義了一個(gè)存儲(chǔ)倉(cāng)庫(kù),記為dataStore,如定義9所示。

定義9分頁(yè)存儲(chǔ)空間dataStore可表示為

其中:storeID表示分頁(yè)的編號(hào);dataPagei表示劃分的第i個(gè)存儲(chǔ)頁(yè)。

3.3 StoreCDB 中的索引結(jié)構(gòu)

StoreCDB的Worker節(jié)點(diǎn)采用兩級(jí)索引結(jié)構(gòu):頁(yè)索引和屬性索引。其結(jié)構(gòu)如圖3所示。

頁(yè)索引采用行號(hào)(rowId)和存儲(chǔ)位置指針(idx)的方式記錄了每一條原始數(shù)據(jù)在分頁(yè)中的存儲(chǔ)位置,即通過數(shù)據(jù)所在行號(hào)便可直接定位到物理存儲(chǔ)位置。在頁(yè)索引中,行號(hào)并不是基于順序查找,而是通過散列完成,索引中的行號(hào)即為該散列的主鍵,而其指針指向數(shù)據(jù)存儲(chǔ)的物理位置,即對(duì)應(yīng)的從節(jié)點(diǎn)及其上的存儲(chǔ)頁(yè)。頁(yè)索引具體結(jié)構(gòu)如圖4所示。

屬性索引用于記錄一條數(shù)據(jù)記錄在不同屬性上取值與該數(shù)據(jù)記錄頁(yè)索引的映射關(guān)系。屬性索引將屬性集propertySet中的各屬性分別進(jìn)行單維投影,按照屬性分類,將屬性值與對(duì)應(yīng)的頁(yè)索引關(guān)聯(lián)起來,實(shí)現(xiàn)多值與布爾查詢。屬性索引具體結(jié)構(gòu)如圖5所示。

圖3 StoreCDB的索引結(jié)構(gòu)Fig.3 Index structure of StoreCDB

圖4 StoreCDB的頁(yè)索引結(jié)構(gòu)Fig.4 mapIdx structure of StoreCDB

圖5 StoreCDB的屬性索引結(jié)構(gòu)Fig.5 comIdx structure of StoreCDB

本文結(jié)合實(shí)例來討論屬性索引的結(jié)構(gòu),在圖5中,對(duì)應(yīng)于StoreCDB中的屬性映射表,屬性集propertySet=(“velocity”,“temperature”,“operation”),屬性索引對(duì)其中各屬性進(jìn)行單維投影,投影結(jié)果如表2所示,其中數(shù)據(jù)行號(hào)對(duì)應(yīng)于頁(yè)索引中的行號(hào),通過頁(yè)索引mapIdx和行號(hào)rowId即可獲得數(shù)據(jù)的存儲(chǔ)位置,從而實(shí)現(xiàn)快速檢索。

當(dāng)要查找滿足“運(yùn)行速度135 km/h,轉(zhuǎn)向架溫度83℃并且操作記錄為c”的數(shù)據(jù)時(shí),首先根據(jù)屬性值(velocity=135 km/h,temperature=83℃和operation=c)找出對(duì)應(yīng)的行號(hào),如表3所示。由于行

表2 屬性索引的單維投影范例Table 2 Example of a one-dimensional projection of comIdx

表3 屬性索引的查詢實(shí)例Table 3 Query instance of comIdx

號(hào)390是所有屬性值共同的取值,可以得出“運(yùn)行速度135 km/h,轉(zhuǎn)向架溫度83℃并且操作記錄為c”的數(shù)據(jù)存放在390行,從頁(yè)索引中找出390行的存儲(chǔ)位置,便可以獲得查詢結(jié)果。

4 StoreCDB中數(shù)據(jù)寫入操作

4.1 數(shù)據(jù)寫入操作過程

在StoreCDB中,主節(jié)點(diǎn)在接收到數(shù)據(jù)寫入請(qǐng)求后,需要根據(jù)寫入數(shù)據(jù)D的主鍵(primeKey)確定分發(fā)的dataPage和對(duì)應(yīng)的從節(jié)點(diǎn)。從節(jié)點(diǎn)接受到數(shù)據(jù)D之后,寫入對(duì)應(yīng)的分頁(yè)中。然后根據(jù)返回的rowId和D的propertySet維護(hù)本地頁(yè)索引和屬性索引。算法1給出了數(shù)據(jù)寫入操作過程。

算法1數(shù)據(jù)寫入算法。

輸入:數(shù)據(jù)D、頁(yè)索引mapIdx、屬性索引comIdx。

輸出:寫入完成標(biāo)記R。

1 /*主節(jié)點(diǎn)接到寫入數(shù)據(jù)請(qǐng)求*/

2 primeKey←getPrimeKey(D);

3 propertySet←getPropertySet(D);

4 dataPage←hashPage(primeKey);

5 Worker←hashNode(dataPage);

6 /*數(shù)據(jù)D被分發(fā)到從節(jié)點(diǎn)*/

7 將數(shù)據(jù)D寫入對(duì)應(yīng)的dataPage;

8 mapIdx←updataMapIdx(D,mapIdx);

9 comIdx←updataComIdx(D,dataPage,comIdx);

10R←createR(dataPage,primeKey,propertySet);

11 return(R)

算法中,getPrimeKey(D)函數(shù)返回?cái)?shù)據(jù)D中的主鍵primeKey;getPropertySet(D)函數(shù)返回?cái)?shù)據(jù)D中的屬性集合;hashPage(primeKey)函數(shù)返回與primeKey對(duì)應(yīng)的dataPage;hashNode(dataPage)函數(shù)返回與dataPage對(duì)應(yīng)的從節(jié)點(diǎn);updataMapIdx(D,mapIdx)函數(shù)返回寫入數(shù)據(jù)D之后更新的頁(yè)索引mapIdx;updataComIdx(D,dataPage,comIdx)返回更新后的屬性索引comIdx;create-R(dataPage,primeKey,propertySet)函數(shù)返回的是數(shù)據(jù)寫入成功返回值R。

4.2 頁(yè)索引更新操作

在Worker節(jié)點(diǎn)本地?cái)?shù)據(jù)寫入過程中,完成原始數(shù)據(jù)記錄在分頁(yè)存儲(chǔ)后,需要更新頁(yè)索引中行號(hào)順序增加并記錄映射地址。通過這一頁(yè)索引可以行號(hào)從分頁(yè)中提取原始數(shù)據(jù)記錄。算法2給出了頁(yè)索引的更新過程。

算法2頁(yè)索引的更新算法。

輸入:數(shù)據(jù)D、頁(yè)索引mapIdx。

輸出:更新結(jié)果mapIdx。

1 rowId←getRowId(D);

2 idx←hash(rowId);

3 dataPage←getDataPage(idx);

4 鎖定數(shù)據(jù)頁(yè)dataPage的寫操作;

5 將D寫入dataPage的尾部;

6 mapIdx←updataIdx(rowId, idx);

7 解鎖數(shù)據(jù)頁(yè)dataPage的寫操作;

8 return(mapIdx)

算法2中,getRowId(D)函數(shù)返回?cái)?shù)據(jù)D中的數(shù)據(jù)行號(hào);hash(rowId)函數(shù)返回rowId對(duì)應(yīng)的哈希地址,即數(shù)據(jù)D應(yīng)該存儲(chǔ)的從節(jié)點(diǎn)及其上的存儲(chǔ)頁(yè);getDataPage(idx)函數(shù)獲取idx指向的從節(jié)點(diǎn)中的存儲(chǔ)頁(yè)dataPage;然后鎖定dataPage的寫操作;將D存入指定位置后,通過函數(shù)updataIdx(rowId, idx)更新mapIdx,然后解鎖dataPage的寫操作。

4.3 屬性索引更新操作

從節(jié)點(diǎn)接收到數(shù)據(jù)后,首先獲取數(shù)據(jù)D的屬性集合、行號(hào),并從dataPage中取出屬性索引comIdx,若comIdx不存在則創(chuàng)建新的屬性索引,否則對(duì)于每個(gè)屬性的每個(gè)屬性值,更新其對(duì)應(yīng)的索引映射集合valueArray,并將其寫入comIdx進(jìn)行更新。算法3給出了屬性索引的更新過程。

算法3屬性索引的更新算法。

輸入:數(shù)據(jù)D、數(shù)據(jù)所需存儲(chǔ)頁(yè)dataPage、屬性索引comIdx。

輸出:更新結(jié)果R。

1 propertySet←getPropertySet(D);

2 rowId←getrowId(dataPage);

3 comIdx←getComIdx(dataPage);

4 if comIdx不存在then

5 創(chuàng)建屬性索引comIdx;

6 for each tagName∈propertySet do

7 for each pValue∈tagName do

8 valueArray←addArray(pValue,rowId);

9 將valueArray存入tagName對(duì)應(yīng)的pTagMap;

10 comIdx←upcomIdx(pTagMap);

11 return(comIdx)

算法3中,getPropertySet(D)函數(shù)返回?cái)?shù)據(jù)D中的屬性集合;getrowId(dataPage)函數(shù)獲取存儲(chǔ)頁(yè)中的行號(hào);getComIdx(dataPage)函數(shù)從dataPage中獲取屬性索引comIdx;addArray(pValue, rowId)函數(shù)更新索引映射集合valueArray;upcomIdx(pTagMap)函數(shù)更新comIdx。

5 StoreCDB中數(shù)據(jù)查詢操作

在上述索引技術(shù)的基礎(chǔ)上,StoreCDB系統(tǒng)通過查詢引擎實(shí)現(xiàn)全局范圍內(nèi)的數(shù)據(jù)查詢。這一過程由2個(gè)步驟完成:

1) 查詢分解。主節(jié)點(diǎn)接收到查詢后,將其分解為二叉任務(wù)樹,其中葉節(jié)點(diǎn)為單值查詢?nèi)蝿?wù),中間節(jié)點(diǎn)為操作連接符,連接2個(gè)單值查詢?nèi)蝿?wù)。

2) 查詢處理。主節(jié)點(diǎn)將二叉任務(wù)樹分發(fā)至相應(yīng)的從節(jié)點(diǎn)進(jìn)行查詢,從節(jié)點(diǎn)對(duì)操作連接符兩邊的單值查詢進(jìn)行交叉過濾,形成局部查詢結(jié)果,全部任務(wù)完成后形成最終的查詢結(jié)果返回主節(jié)點(diǎn)。

定義10查詢query可以表示為

其中:tagNamei表示第i個(gè)屬性;pValuei表示第i個(gè)屬性值;f(tagNamei,pValuei)表示該屬性與屬性值之間的關(guān)系;opi表示操作連接符,取值為AND,OR,NOT,?,?表示沒有操作連接符。

以表3中的查詢?yōu)槔斑\(yùn)行速度135 km/h,轉(zhuǎn)向架溫度83℃并且操作記錄為c”的查詢可以表示為query=(velocity=135 km/h)∧(temperature=83℃)∧(operation=c)。當(dāng)主節(jié)點(diǎn)接收到查詢?nèi)蝿?wù)query后,將其分解為多個(gè)單值查詢?nèi)蝿?wù),并通過操作連接符將其轉(zhuǎn)換為一棵二叉任務(wù)樹,二叉任務(wù)樹結(jié)構(gòu)如圖6所示。

主節(jié)點(diǎn)將二叉任務(wù)樹分發(fā)給相應(yīng)的從節(jié)點(diǎn)后,等待所有從節(jié)點(diǎn)完成查詢?nèi)蝿?wù)后,匯集全部查詢結(jié)果。從節(jié)點(diǎn)接收到二叉任務(wù)樹后,通過遍歷二叉任務(wù)樹對(duì)本地存儲(chǔ)頁(yè)進(jìn)行匹配和篩選,首先從當(dāng)前二叉任務(wù)樹的最左葉節(jié)點(diǎn)開始,提取該左葉節(jié)點(diǎn)與右節(jié)點(diǎn)對(duì)應(yīng)的屬性取值映射索引pTagMap,經(jīng)過篩選得到局部結(jié)果集合。將該結(jié)果作為當(dāng)前子樹的查詢結(jié)果與上一級(jí)的右葉節(jié)點(diǎn)繼續(xù)篩選,直到完成全部葉節(jié)點(diǎn)的屬性取值映射索引的篩選。算法4給出了從節(jié)點(diǎn)的查詢處理過程。

圖6 二叉任務(wù)樹的實(shí)例Fig.6 Instance of task binary tree

算法4從節(jié)點(diǎn)查詢處理算法。

輸入:二叉任務(wù)樹qtree、頁(yè)索引mapIdx、屬性索引comIdx。

輸出:查詢結(jié)構(gòu)R。

1 while true do

2 lNode←getLNode(qtree);

3 if lNode = op then /*左節(jié)點(diǎn)是操作符*/

4 rNode ← getRNode(qtree);

5 /*獲取左右節(jié)點(diǎn)的屬性及取值和操作符*/

6fR← getQuery(rNode);

7 (fL, op) ← getFOp(rNode);

8 query ←(fL, op,fR);

9 else then

10 op←getFOp(lNode);

11 /*獲取父節(jié)點(diǎn)的操作符*/

12 rNode←getRNode(qtree);

13fL←getQuery(lNode);

14fR←getQuery(rNode);

15 query←(fL, op,fR);

16 /*通過頁(yè)索引和屬性索引執(zhí)行查詢*/

17R←exeQuery(query, mapIdx, comIdx);

18 /*裁剪qtree的左右子節(jié)點(diǎn),將結(jié)果存放當(dāng)前op中*/

19 qtree←remove(lNode, rNode,R);

20 if qtree全部裁剪 then

21 return (R)

在算法4中,getLNode(qtree)(getRNode(qtr-ee))函數(shù)返回qtree的左節(jié)點(diǎn)(右節(jié)點(diǎn));getQuery(node)函數(shù)獲取節(jié)點(diǎn)的屬性及取值;fL與fR分別表示當(dāng)前查詢中左側(cè)節(jié)點(diǎn)和右側(cè)節(jié)點(diǎn)的屬性與取值;getFOp(rNode)函數(shù)獲取父節(jié)點(diǎn)的操作符;exeQuery(query, mapIdx, comIdx) 利用頁(yè)索引mapIdx和屬性索引comIdx執(zhí)行查詢query;remove(lNode, rNode,R)裁剪當(dāng)前任務(wù)樹的左右子節(jié)點(diǎn),并將結(jié)果集存放在當(dāng)前op節(jié)點(diǎn)中。

6 系統(tǒng)實(shí)現(xiàn)及性能分析

本節(jié)在模擬數(shù)據(jù)集的基礎(chǔ)上,采用StoreCDB實(shí)驗(yàn)系統(tǒng),旨在對(duì)StoreCDB的查詢效率以及可擴(kuò)展性進(jìn)行了一系列實(shí)驗(yàn)驗(yàn)證。其中StoreCDB實(shí)驗(yàn)系統(tǒng)是在分布式集群上進(jìn)行部署,形成一個(gè)協(xié)同工作的StoreCDB系統(tǒng)。

本實(shí)驗(yàn)中,主節(jié)點(diǎn)的處理器為Intel(R) Xeon(R) CPU E5-2620,主頻2.0 GHz,內(nèi)存大小為2 GB;從節(jié)點(diǎn)的處理器為Intel(R) Xeon(R) CPU E5-2620,主頻2.0 GHz,內(nèi)存大小為3 GB。

實(shí)驗(yàn)所用的數(shù)據(jù)為基于實(shí)車采集數(shù)據(jù)的模擬數(shù)據(jù)集,其由數(shù)據(jù)格式為不同的CRH3和CRH5動(dòng)車組軸溫采樣模擬數(shù)據(jù)(Src1)和CRH3和CRH5動(dòng)車組運(yùn)行狀態(tài)數(shù)據(jù)(Src2)組成。表4列出了實(shí)驗(yàn)中的主要參數(shù)。

在實(shí)驗(yàn)中,本文將StoreCDB與MySQL Cluster和HBase數(shù)據(jù)庫(kù)進(jìn)行對(duì)比測(cè)試。重點(diǎn)針對(duì)StoreCDB的查詢響應(yīng)時(shí)間及加速比進(jìn)行了分析。

為了全面評(píng)估StoreCDB對(duì)K-V查詢以及數(shù)據(jù)關(guān)系庫(kù)(RDB)查詢的支持,實(shí)驗(yàn)的測(cè)試用例采用了如下2種查詢:

1) K-V查詢

Select * From table Where date=“2017-05-01”。其中:table表示不同的數(shù)據(jù)源,分別為Src1或Src2;date表示關(guān)鍵字,查找所有與“2017-05-01”相關(guān)的數(shù)據(jù)。

2) RDB查詢

Select * From table Where velocity=135 AND temperature=83 AND (operation=‘c’ OR operation=‘rw’)。

圖7給出了StoreCDB、MySQL Cluster和HBase處理K-V和RDB查詢的響應(yīng)時(shí)間。圖7(a)展示了K-V查詢時(shí)間與數(shù)據(jù)集規(guī)模的關(guān)系,圖7(b)是RDB查詢時(shí)間與數(shù)據(jù)集規(guī)模的關(guān)系。隨著數(shù)據(jù)集的增加,K-V查詢和RDB查詢的時(shí)間都逐漸增加。StoreCDB在海量數(shù)據(jù)情況下,K-V查詢效率高于MySQL Cluster,低于HBase。由于HBase不支持多條件查詢,故圖7(b)中僅有MySQL Cluster和StoreCDB的實(shí)驗(yàn)結(jié)果。

隨著數(shù)據(jù)集的增加,3種數(shù)據(jù)庫(kù)的K-V查詢時(shí)間都逐漸增加,HBase在進(jìn)行列查詢時(shí),響應(yīng)時(shí)間始終小于StoreCDB和MySQL Cluster。在數(shù)據(jù)集規(guī)模較小的情況下,StoreCDB與MySQL Cluster響應(yīng)時(shí)間基本相同,隨著數(shù)據(jù)集規(guī)模增大,StoreCDB響應(yīng)時(shí)間增速逐漸小于MySQL Cluster。

表4 實(shí)驗(yàn)參數(shù)Table 4 Parameters of experiment

圖7 查詢效率實(shí)驗(yàn)Fig.7 Query efficiency experiment

在進(jìn)行RDB查詢時(shí),MySQL Cluster和StoreCDB響應(yīng)時(shí)間均高于K-V查詢,這是因?yàn)镵-V查詢只涉及頁(yè)索引,而RDB查詢同時(shí)需要頁(yè)索引和屬性索引的檢索。盡管如此,兩種查詢的效率相差并不大,且變化趨勢(shì)也較一致。可以看出,在數(shù)據(jù)量快速增長(zhǎng)的情況下,StoreCDB依然能快速響應(yīng)查詢,性能保持良好。

圖8給出了StoreCDB的可擴(kuò)展性,為RDB的查詢響應(yīng)時(shí)間與從節(jié)點(diǎn)個(gè)數(shù)的關(guān)系。

從圖8可以看出,隨著從節(jié)點(diǎn)個(gè)數(shù)的增加,StoreCDB查詢的性能明顯提升,RDB查詢與K-V查詢性能提升效果變化趨勢(shì)相似。StoreCDB具有良好的可伸縮性,并且保證在從節(jié)點(diǎn)增加的情況下有明顯的性能提升。

為了進(jìn)一步分析StoreCDB中從節(jié)點(diǎn)規(guī)模對(duì)查詢的影響。本文在表5中分別給出StoreCDB在處理2×1010行和7×106行數(shù)據(jù)源中RDB查詢的加速比實(shí)驗(yàn)結(jié)果。加速比Speedup定義為

(1)

圖8 可擴(kuò)展性實(shí)驗(yàn)Fig.8 Expandability experiment

NworkerNodes加速比Nsrc=2×1010行Nsrc=7×106行21.621.3341.791.4982.061.63162.642.10324.953.32

式中:ξSingle和ξStoreCDB分別為單數(shù)據(jù)庫(kù)節(jié)點(diǎn)和StoreCDB的查詢響應(yīng)時(shí)間。

從表5可以看出,StoreCDB在處理查詢?nèi)蝿?wù)時(shí),相比于單點(diǎn)數(shù)據(jù)庫(kù),加速比隨著從節(jié)點(diǎn)數(shù)量的增加而上升,并且數(shù)據(jù)集規(guī)模越大,加速性能越明顯。

為了評(píng)估存儲(chǔ)空間的利用效率,本實(shí)驗(yàn)采用32節(jié)點(diǎn)的StoreCDB和HBase在不同數(shù)據(jù)集規(guī)模時(shí)的空間利用率進(jìn)行對(duì)比測(cè)試。

HBase是通過文件合并(compaction)的方式對(duì)小文件和文件刪改帶來的空間碎片進(jìn)行整理以提高存儲(chǔ)空間利用效率。StoreCDB則采用虛擬行的方式,使得同一行數(shù)據(jù)可以存儲(chǔ)在不連續(xù)的位置來減少空間浪費(fèi)。

詳細(xì)對(duì)比情況如圖9所示,圖9給出了空間利用率的對(duì)比實(shí)驗(yàn)結(jié)果。

圖9 存儲(chǔ)空間利用率實(shí)驗(yàn)Fig.9 Storage space utilization experiment

從圖9可以看出,隨著存儲(chǔ)數(shù)據(jù)集規(guī)模的增加,StoreCDB的空間利用率逐漸降低,這是因?yàn)樘摂M行中的索引規(guī)模隨著數(shù)據(jù)集規(guī)模的增長(zhǎng)造成的空間利用率下降。在數(shù)據(jù)集規(guī)模較小的情況下,HBase的空間利用率略高于StoreCDB。隨著數(shù)據(jù)集規(guī)模的增長(zhǎng),StoreCDB空間利用率降低程度略優(yōu)于HBase。這是由于HBase的合并策略在提高讀寫性能時(shí)會(huì)減少參與合并的文件數(shù)量,從而導(dǎo)致空間利用率下降。

綜合上述分析,StoreCDB可以有效地支持K-V查詢和RDB查詢,提供了良好的工業(yè)互聯(lián)網(wǎng)海量異構(gòu)數(shù)據(jù)接入與查詢處理能力,為工業(yè)互聯(lián)網(wǎng)的海量異構(gòu)數(shù)據(jù)管理提供了一種可行的解決方案。

7 結(jié) 論

本文從工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)管理角度出發(fā),對(duì)工業(yè)互聯(lián)網(wǎng)在非結(jié)構(gòu)化數(shù)據(jù)統(tǒng)一存儲(chǔ)管理,高性能檢索查詢等方面所面臨的挑戰(zhàn)進(jìn)行了分析,提出了面向工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)管理的云存儲(chǔ)方法——StoreCDB。

1) 提出了一種能夠應(yīng)對(duì)海量多源異構(gòu)數(shù)據(jù)統(tǒng)一管理的數(shù)據(jù)模型,實(shí)現(xiàn)了多源異構(gòu)數(shù)據(jù)的統(tǒng)一表達(dá),解決了不同服務(wù)系統(tǒng)的數(shù)據(jù)統(tǒng)一存儲(chǔ)問題。

2) 提出了一種能夠支持“鍵-值”查詢和普通SQL查詢的索引方法,通過頁(yè)索引和屬性索引的兩級(jí)索引結(jié)構(gòu),突破了目前云數(shù)據(jù)管理技術(shù)主要針對(duì)“鍵-值”查詢以及并行數(shù)據(jù)庫(kù)技術(shù)主要針對(duì)SQL查詢的局限。

3) 提出了基于兩級(jí)索引結(jié)構(gòu)的全局查詢處理方法。

4) 采用StoreCDB實(shí)驗(yàn)系統(tǒng),對(duì)該方法的查詢效率及可擴(kuò)展性進(jìn)行了一系列實(shí)驗(yàn)驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,StoreCDB具有良好的異構(gòu)數(shù)據(jù)存儲(chǔ)和檢索性能。

主站蜘蛛池模板: 久久综合色播五月男人的天堂| 精品超清无码视频在线观看| 日日碰狠狠添天天爽| 在线观看免费黄色网址| 99久久精品免费看国产电影| 亚洲国产成人超福利久久精品| 国产欧美中文字幕| 亚洲国产成人精品一二区| 在线观看精品国产入口| 91色在线视频| 亚洲女同一区二区| 高清欧美性猛交XXXX黑人猛交| 国产剧情无码视频在线观看| 国产国语一级毛片在线视频| 亚洲综合第一区| 伊人蕉久影院| 亚洲一区精品视频在线| 国产乱子精品一区二区在线观看| 高清国产在线| 亚洲天堂.com| 四虎影院国产| 欧美五月婷婷| av一区二区三区在线观看| 欧美一级大片在线观看| 亚洲第一成年人网站| 伊人国产无码高清视频| 国产99视频精品免费观看9e| 亚洲欧美综合另类图片小说区| 亚洲第一视频网| 国内精品视频| 欧美视频免费一区二区三区| 亚洲av无码人妻| 高清无码手机在线观看| 久久www视频| 国产一区二区三区在线观看视频 | 人妻少妇久久久久久97人妻| 午夜小视频在线| 亚洲精品无码日韩国产不卡| 91精品国产福利| 日本午夜网站| 国产屁屁影院| 午夜一区二区三区| 四虎综合网| 91福利在线观看视频| 毛片网站在线看| 国产日韩精品欧美一区灰| 欧美a级完整在线观看| 欧美三级视频在线播放| 91po国产在线精品免费观看| 国产精品一区在线观看你懂的| 国产精品一区在线麻豆| 亚洲无码在线午夜电影| 成人午夜亚洲影视在线观看| 97久久精品人人做人人爽| 国产欧美日韩免费| 综合久久五月天| 小蝌蚪亚洲精品国产| 色视频久久| 亚洲综合色婷婷中文字幕| 欧美日韩专区| 国产成人高清精品免费| 国产精品视频猛进猛出| 精品伊人久久久香线蕉| 国产一区二区精品高清在线观看 | 亚洲欧美日韩中文字幕在线| 99精品热视频这里只有精品7| 久久精品视频亚洲| 99人体免费视频| 波多野结衣一区二区三区88| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲综合久久成人AV| 日本一本正道综合久久dvd| 波多野结衣第一页| 色婷婷在线影院| 国产精品太粉嫩高中在线观看| 日韩视频福利| 2020国产免费久久精品99| 国产第二十一页| 成人精品在线观看| 日韩黄色大片免费看| 被公侵犯人妻少妇一区二区三区| 国产人妖视频一区在线观看|