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