李正武,馮靜,張登云,楊小霞
(1.寧夏公路管理中心,寧夏 銀川 750000;2.重慶交通大學(xué) 信息科學(xué)與工程學(xué)院,重慶 400074)
當(dāng)前,以保障橋梁安全運(yùn)營(yíng)為目標(biāo)的橋梁健康監(jiān)測(cè)系統(tǒng)已經(jīng)得到了廣泛的運(yùn)用。但橋梁監(jiān)測(cè)數(shù)據(jù)每月數(shù)以TB量級(jí)的增長(zhǎng),帶來(lái)了新的數(shù)據(jù)存儲(chǔ)問(wèn)題。在現(xiàn)有的橋梁監(jiān)測(cè)數(shù)據(jù)管理系統(tǒng)中,還未形成一套完備的數(shù)據(jù)存儲(chǔ)體系,目前的關(guān)注點(diǎn)大多集中在監(jiān)測(cè)數(shù)據(jù)的預(yù)處理,橋梁的養(yǎng)護(hù)加固以及安全預(yù)警等方面,對(duì)監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)少有研究。
監(jiān)測(cè)數(shù)據(jù)的有效存儲(chǔ)是后續(xù)研究工作的基本保障,因此對(duì)采集到的原始數(shù)據(jù)進(jìn)行合理高效的存儲(chǔ)顯得至關(guān)重要。目前,我國(guó)大部分地區(qū)的橋梁監(jiān)測(cè)系統(tǒng)都是采用“一橋一系統(tǒng)”的專屬模式,數(shù)據(jù)之間缺乏聯(lián)系,融合困難。如何打破信息孤島,對(duì)同一區(qū)域不同橋梁的監(jiān)測(cè)數(shù)據(jù)進(jìn)行區(qū)域化存儲(chǔ),得到橋梁的整體健康狀況,成為亟待解決的難題?;诖藛?wèn)題,本文提出了一種基于HBase的區(qū)域化橋梁健康監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)方法,解決了區(qū)域化橋梁健康監(jiān)測(cè)數(shù)據(jù)的存儲(chǔ)和管理問(wèn)題。
一個(gè)完整的橋梁結(jié)構(gòu)健康監(jiān)測(cè)系統(tǒng)分為硬件部分和軟件部分。硬件部分主要是各種傳感器,負(fù)責(zé)采集關(guān)鍵部位的數(shù)據(jù);軟件部分包括數(shù)據(jù)采集與傳輸、數(shù)據(jù)處理與分析、數(shù)據(jù)庫(kù)的管理三個(gè)模塊。在信息收集傳輸和分析處理階段都涉及到數(shù)據(jù)的有效存儲(chǔ)問(wèn)題,結(jié)合分布式存儲(chǔ)技術(shù)低成本、高容錯(cuò)、可移植的特點(diǎn),選取分布式數(shù)據(jù)庫(kù)軟件作為區(qū)域化橋梁健康監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)及共享平臺(tái)更為合適。
HBase是Hadoop分布式平臺(tái)上一個(gè)重要的數(shù)據(jù)存儲(chǔ)工具,具有高可靠、高性能、面向列、可伸縮的存儲(chǔ)特性,適合存儲(chǔ)非結(jié)構(gòu)化和非關(guān)系型數(shù)據(jù)。
HBase表是非結(jié)構(gòu)化的非關(guān)系表,類似于一個(gè)巨大的稀疏矩陣,表中數(shù)據(jù)值都是一個(gè)個(gè)字符串,沒(méi)有特定數(shù)據(jù)類型。HBase表由行和列組成,行由行鍵進(jìn)行標(biāo)識(shí),列劃分為若干個(gè)列族,列族中的數(shù)據(jù)通過(guò)列的限定符來(lái)定位,HBase表中的每個(gè)值都有一個(gè)時(shí)間戳來(lái)區(qū)分值的版本。采用行鍵、列族、列限定符、值和時(shí)間戳作為索引對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。
HBase搭建在Hadoop云平臺(tái)之上,通過(guò)客戶端(Client)、協(xié)調(diào)工具(Zookeeper)、管理端(Master)、服務(wù)器(Region server)等部件的協(xié)調(diào)完成數(shù)據(jù)庫(kù)的存儲(chǔ)工作,其系統(tǒng)構(gòu)架如圖1所示:
圖1.HBase系統(tǒng)構(gòu)架
橋梁健康監(jiān)測(cè)的數(shù)據(jù)采集工作依賴于各種傳感器設(shè)備,傳感器主要對(duì)橋梁結(jié)構(gòu)的特征參數(shù)進(jìn)行監(jiān)測(cè),橋梁的結(jié)構(gòu)參數(shù)包括位移、加速度、風(fēng)力風(fēng)向、溫度、荷載、撓度、應(yīng)變、索力等。將監(jiān)測(cè)到的相關(guān)數(shù)據(jù)進(jìn)行合理高效存儲(chǔ)是本文要解決的問(wèn)題。
傳感器會(huì)產(chǎn)生大量的監(jiān)測(cè)數(shù)據(jù),這些數(shù)據(jù)是實(shí)時(shí)更新和變化的,這就要求傳感器連續(xù)工作,實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)存儲(chǔ)。一座橋每天產(chǎn)生的監(jiān)測(cè)數(shù)據(jù)是GB級(jí)的,一個(gè)區(qū)域內(nèi)所有橋梁的數(shù)據(jù)總量是TB級(jí)的,而每座橋梁的監(jiān)測(cè)系統(tǒng)相互獨(dú)立,如果對(duì)TB級(jí)別的海量數(shù)據(jù)進(jìn)行單獨(dú)存儲(chǔ),則會(huì)導(dǎo)致數(shù)據(jù)之間缺乏聯(lián)系,難以融合,對(duì)后續(xù)處理分析數(shù)據(jù)帶來(lái)麻煩。如果同時(shí)將這些數(shù)據(jù)上傳到服務(wù)器進(jìn)行統(tǒng)一存儲(chǔ)和管理,則會(huì)導(dǎo)致傳輸困難,并嚴(yán)重超出了傳統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)的承受能力。若能對(duì)數(shù)據(jù)進(jìn)行分布式存儲(chǔ),集中化管理,則在提高存儲(chǔ)效率的同時(shí)打破了數(shù)據(jù)孤島。
本文主要以HBase數(shù)據(jù)庫(kù)技術(shù)作為存儲(chǔ)海量橋梁健康監(jiān)測(cè)數(shù)據(jù)的方法。將每一座橋的監(jiān)測(cè)系統(tǒng)作為一個(gè)Region server數(shù)據(jù)節(jié)點(diǎn),將采集到的數(shù)據(jù)存儲(chǔ)在各自的Region server中,在一個(gè)區(qū)域范圍內(nèi)設(shè)置一個(gè)Master管理節(jié)點(diǎn),對(duì)該區(qū)域內(nèi)所有橋梁監(jiān)測(cè)數(shù)據(jù)的存儲(chǔ)工作進(jìn)行統(tǒng)一化管理。整個(gè)區(qū)域內(nèi)的所有橋梁健康監(jiān)測(cè)系統(tǒng)相當(dāng)于一個(gè)監(jiān)測(cè)集群,對(duì)監(jiān)測(cè)到的數(shù)據(jù)進(jìn)行集群化存儲(chǔ)和管理。該存儲(chǔ)方法實(shí)現(xiàn)了該區(qū)域內(nèi)所有橋梁監(jiān)測(cè)數(shù)據(jù)的分布式存儲(chǔ)和統(tǒng)一化管理,節(jié)省了存儲(chǔ)空間,提高了存儲(chǔ)效率,打破了信息孤島。區(qū)域化橋梁健康監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)系統(tǒng)如圖2所示:
圖2. 區(qū)域化橋梁健康監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)系統(tǒng)
為驗(yàn)證該存儲(chǔ)方法的可行性,搭建了一個(gè)Hadoop集群進(jìn)行數(shù)據(jù)存儲(chǔ)測(cè)試。選取了一臺(tái)臺(tái)式機(jī)作為Master管理節(jié)點(diǎn),存儲(chǔ)配置信息,進(jìn)行管理類操作,三臺(tái)PC機(jī)作為Region server數(shù)據(jù)節(jié)點(diǎn),存儲(chǔ)數(shù)據(jù),進(jìn)行數(shù)據(jù)類操作,一臺(tái)PC機(jī)用于Zookeeper進(jìn)行協(xié)調(diào)服務(wù),協(xié)助Master與Region server的通信。使用180個(gè)傳感器節(jié)點(diǎn),比較單機(jī)和配置3個(gè)節(jié)點(diǎn)的集群的數(shù)據(jù)存取時(shí)間,實(shí)驗(yàn)結(jié)果為單機(jī)的響應(yīng)時(shí)間為800ms,Hadoop集群的響應(yīng)時(shí)間為300ms。由此可見(jiàn),分布式存儲(chǔ)集群的時(shí)間明顯低于單機(jī)。
本文圍繞區(qū)域化橋梁健康監(jiān)測(cè)數(shù)據(jù)的存儲(chǔ)問(wèn)題,結(jié)合分布式存儲(chǔ)技術(shù)低成本、高容錯(cuò)、可移植的特點(diǎn),提出了一種基于HBase的區(qū)域化橋梁健康監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)方法。該存儲(chǔ)方法采用HBase作為數(shù)據(jù)庫(kù),充分發(fā)揮了HBase非關(guān)系化、非結(jié)構(gòu)化、動(dòng)態(tài)存儲(chǔ)、節(jié)約內(nèi)存等優(yōu)勢(shì)。將同一區(qū)域的橋梁監(jiān)測(cè)系統(tǒng)搭建為一個(gè)Hadoop集群,將每一座橋梁的監(jiān)測(cè)系統(tǒng)作為一個(gè)節(jié)點(diǎn),又將每個(gè)節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行分布式存儲(chǔ),采用區(qū)域化的存儲(chǔ)管理方式,既打破了橋梁監(jiān)測(cè)系統(tǒng)間的數(shù)據(jù)孤島,又節(jié)約了成本和存儲(chǔ)空間。通過(guò)實(shí)驗(yàn)驗(yàn)證,該方法很好地解決了區(qū)域化橋梁健康監(jiān)測(cè)數(shù)據(jù)的存儲(chǔ)問(wèn)題,融合了同一區(qū)域內(nèi)的橋梁監(jiān)測(cè)信息,節(jié)省了存儲(chǔ)空間,提高了存儲(chǔ)效率,在理論上和實(shí)踐上都是可行的。