馬雁波
(中國鐵路濟(jì)南局集團(tuán)有限公司,山東濟(jì)南 250000)
近年來,人們生活水平不斷提升,出門旅行日益頻繁,隨著城市化進(jìn)程的加快,公共交通工具成為人們生活中密不可分的角色,各大城市鐵路交通樞紐的建設(shè)愈發(fā)重要。鐵路通信系統(tǒng)是鐵路整體運(yùn)作系統(tǒng)之間的通信橋梁,其對于整個城市交通體系的發(fā)展具有重要作用。鐵路通信系統(tǒng)中的查詢系統(tǒng)可以滿足用戶的乘坐需求,根據(jù)列車的出行時間利用通信廣播等功能為用戶提供查詢服務(wù),因此鐵路通信數(shù)據(jù)查詢系統(tǒng)的設(shè)計是至關(guān)重要的。
針對鐵路通信數(shù)據(jù)查詢這一問題,相關(guān)領(lǐng)域?qū)W者進(jìn)行了較為深入的研究。文獻(xiàn)[1]針對電力物聯(lián)網(wǎng)提出一種分布式云數(shù)據(jù)中心優(yōu)化選址方法,選取云數(shù)據(jù)中心作為計算架構(gòu),同時篩選核心節(jié)點(diǎn),實(shí)現(xiàn)數(shù)據(jù)查詢,但是云數(shù)據(jù)查詢對聯(lián)網(wǎng)要求較高,使用過程存在一定的局限性。文獻(xiàn)[2]利用物聯(lián)網(wǎng)研究一種分布式通信數(shù)據(jù)高效壓縮方法,確定物聯(lián)網(wǎng)分布式結(jié)構(gòu),通過數(shù)據(jù)轉(zhuǎn)化得到高頻系數(shù),根據(jù)數(shù)據(jù)變換結(jié)果進(jìn)行數(shù)據(jù)查詢,但是在查詢過程中需要進(jìn)行多次遞歸處理,計算量大,計算過程相對復(fù)雜。
HBase 本質(zhì)為一種非關(guān)系型分布式數(shù)據(jù)庫,采用Java 編程語言,可在HDFS 查詢系統(tǒng)中運(yùn)行。為了彌補(bǔ)傳統(tǒng)方法中存在的問題,該文基于HBase 設(shè)計了一種新的鐵路通信數(shù)據(jù)分布式查詢系統(tǒng)。
該文設(shè)計并搭建一個具有三節(jié)點(diǎn)的HBase 分布式系統(tǒng),通過運(yùn)行鐵路通信數(shù)據(jù)儲存模塊、數(shù)據(jù)查詢模塊,對鐵路通信數(shù)據(jù)進(jìn)行分析,使鐵路通信數(shù)據(jù)分布式查詢系統(tǒng)達(dá)到高效運(yùn)行的目的[3-4]。
系統(tǒng)硬件部分配置三臺服務(wù)器,其中一臺主機(jī)作為HBase 的儲存節(jié)點(diǎn),另外兩臺主機(jī)作為HBase的交換節(jié)點(diǎn),根據(jù)需求靈活配置三臺主機(jī),組成分布式系統(tǒng)[5-6]。分布式部署模式如圖1 所示。
圖1 分布式部署模式
系統(tǒng)的軟件設(shè)計主要分為數(shù)據(jù)儲存模塊和數(shù)據(jù)查詢模塊,不同模塊負(fù)責(zé)的功能如下:
利用數(shù)據(jù)存儲模塊得到不同數(shù)據(jù)源的數(shù)據(jù),引入存儲模塊的同步功能在HBase 集群數(shù)據(jù)庫中記載信息。
分析HBase 生態(tài)系統(tǒng)組件的兼容性與集成性,根據(jù)分析結(jié)果選取該文系統(tǒng)平臺組件,以此搭建系統(tǒng)平臺。通過Linux 組件構(gòu)建操作模塊,利用Java 語言選取JDK 組件,同時引入Had 組件使系統(tǒng)擁有集群服務(wù),利用組件建立語言服務(wù)[7-8]。
通過HBase 生態(tài)模塊建立集群。集群采用完全分布式,系統(tǒng)內(nèi)部文件使用HDFS 目錄統(tǒng)計,指定HBase 系統(tǒng)的默認(rèn)路徑,配置目標(biāo)文獻(xiàn)的使用權(quán)限,對HDFS 文件進(jìn)行格式化后,完成HBase 集群的創(chuàng)建[9-10]。
數(shù)據(jù)存儲模塊結(jié)構(gòu)如圖2 所示。
圖2 數(shù)據(jù)存儲模塊結(jié)構(gòu)
前端輸入:主要負(fù)責(zé)處理用戶發(fā)起的通信查詢信息,由于用戶發(fā)送的信息種類很多,因此利用不同的設(shè)備采集信息,傳遞到下一單元[11-12]。
數(shù)據(jù)預(yù)處理:數(shù)據(jù)預(yù)處理模塊主要負(fù)責(zé)將采集到的信息數(shù)據(jù)進(jìn)行識別分類,分析其內(nèi)容、時間、類型等信息,提取主要特征并標(biāo)記關(guān)鍵詞存入數(shù)據(jù)庫中,以實(shí)現(xiàn)根據(jù)關(guān)鍵詞對信息進(jìn)行快速抓取的個性化檢索服務(wù)。預(yù)處理模塊對于數(shù)據(jù)通信十分重要,將數(shù)據(jù)按預(yù)設(shè)規(guī)則分類;其次進(jìn)行殘值處理,分析數(shù)據(jù)是否正常,如果得到的通信數(shù)據(jù)為異常數(shù)據(jù),則需要檢測數(shù)據(jù)為缺失數(shù)據(jù)還是重復(fù)數(shù)據(jù)。如果確定數(shù)據(jù)為缺失數(shù)據(jù),則需要尋找缺失的通信信息,如果缺失十分嚴(yán)重,則需要廢棄,并反饋給全系統(tǒng);若為重復(fù)數(shù)據(jù),直接刪除。利用預(yù)處理將信息傳輸?shù)骄彌_區(qū),其過程由式(1)表示:
其中,K表示預(yù)處理后數(shù)據(jù)值;r表示默認(rèn)值;m表示缺失數(shù)據(jù);n表示重復(fù)數(shù)據(jù),i表示數(shù)據(jù)量;M表示臟值處理系數(shù)。
數(shù)據(jù)緩沖區(qū):接收所有的緩存數(shù)據(jù),建立數(shù)據(jù)緩沖隊(duì)列,對隊(duì)列中數(shù)據(jù)進(jìn)行實(shí)時監(jiān)控,并將數(shù)據(jù)分流與緩存,完成數(shù)據(jù)歸類[13-14]。
數(shù)據(jù)寫入單元:設(shè)定閾值,將緩存對立的通信數(shù)據(jù)與設(shè)置的閾值進(jìn)行比較,如果數(shù)值已經(jīng)達(dá)到閾值,則需據(jù)啟動寫入單元,進(jìn)行相應(yīng)的寫入操作,并生成寫入指令。
數(shù)據(jù)庫集群:通過提供支持來確保得到的鐵路通信數(shù)據(jù)能夠被長期存儲,且所有數(shù)據(jù)都能存儲在HBase 集群中。當(dāng)收到外部請求時,數(shù)據(jù)庫會啟動相應(yīng)的查詢功能,實(shí)時查詢信息。
基于HBase 設(shè)計了新的鐵路通信數(shù)據(jù)查詢模塊,其結(jié)構(gòu)如圖3 所示。
圖3 數(shù)據(jù)查詢模塊結(jié)構(gòu)
前端輸入:在前端輸入數(shù)據(jù)查詢關(guān)鍵詞,設(shè)置查詢語言,統(tǒng)一化處理SQL查詢語言,并利用Hbase檢測相應(yīng)的查詢指令,將查詢結(jié)果傳輸給檢驗(yàn)單元。
校驗(yàn)單元:利用校驗(yàn)單元判定指標(biāo)的規(guī)范程度,如果達(dá)不到規(guī)定的輸入或者讀寫方式,則需要取消相應(yīng)的信息,取消過程如式(2)所示:
其中,R表示語句標(biāo)準(zhǔn)參考值。
鐵路信息查詢單元:鐵路信息查詢單元主要負(fù)責(zé)信息的交互,能夠分解信息得到更加準(zhǔn)確的指令,從而進(jìn)行指令處理。
緩存服務(wù)器:分析訪問頻率,根據(jù)得到的訪問結(jié)果進(jìn)行篩選,將訪問頻率較高的信息緩存。
存儲服務(wù)器:利用分布式分析方法對數(shù)據(jù)進(jìn)行存儲,并保留所有鐵路通信信息的存儲數(shù)據(jù),方便日后鐵路通信數(shù)據(jù)分析[15]。
建立HBase 存儲模型,提升檢索效率,解決冗余帶來的性能問題,提升數(shù)據(jù)的存儲性能。HBase 存儲模型通過HBase 存儲算法定義主鍵的檢索范圍以及主鍵值的單條記錄查詢數(shù)量,HBase 存儲函數(shù)如式(3)所示:
其中,f表示HBase 存儲算法;d表示主鍵檢索范圍;hi表示單條記錄查詢數(shù)量。
根據(jù)HBase 數(shù)據(jù)檢索策略,將數(shù)據(jù)拆分到不同的緩沖隊(duì)列中,通過并行查詢提高鐵路通信數(shù)據(jù)信息的處理策略,利用存儲模型進(jìn)行信息保存,數(shù)據(jù)存儲模型如式(4)所示:
其中,q表示存儲模型;a表示緩沖隊(duì)列數(shù)量。
數(shù)據(jù)在管理過程中,負(fù)載可能存在問題,通過分布式分析進(jìn)行負(fù)載控制,確保查詢過程分布查詢系統(tǒng)的運(yùn)行效率。
分析通信數(shù)據(jù)的運(yùn)行邏輯,建立邏輯片段,如式(5)所示:
對于每個邏輯片段SN,均滿足:
①完整性:得到的單個邏輯都具有映射性,如式(6)所示:
②可重構(gòu)性:存在邏輯片段Sa可以被看作全局關(guān)系P進(jìn)行再次分布,如式(7)所示:
③不可相交性:通信數(shù)據(jù)邏輯記錄t與鐵路通信數(shù)據(jù)邏輯片段Sa為映射關(guān)系,具有偽異性[16]。
為了驗(yàn)證該文設(shè)計的基于HBase 的鐵路通信數(shù)據(jù)分布式查詢系統(tǒng)的實(shí)際應(yīng)用效果,設(shè)計實(shí)驗(yàn),同時選用傳統(tǒng)的電力物聯(lián)網(wǎng)分布式查詢系統(tǒng)和數(shù)據(jù)壓縮查詢系統(tǒng)進(jìn)行實(shí)驗(yàn)對比。
實(shí)驗(yàn)選取的數(shù)據(jù)來源于兩個MySQL 數(shù)據(jù)庫,設(shè)定集群在寫入過程中產(chǎn)生的單條記錄查詢數(shù)量逐步增加,設(shè)置為200 條、400 條、600 條……2 000 條,設(shè)定緩沖隊(duì)列數(shù)量為200 個,建立緩沖區(qū)域,得到的閾值為8 MB,隨著數(shù)據(jù)發(fā)送響應(yīng)延遲時間的逐漸增加,數(shù)據(jù)寫入性能響應(yīng)延遲時間和緩沖性能寫入延遲時間,也在不斷增加。根據(jù)上述實(shí)驗(yàn)環(huán)境,進(jìn)行數(shù)據(jù)調(diào)度,將二進(jìn)制字符數(shù)據(jù)通過計算映射成固定長度的值,基于線性哈希算法的存儲調(diào)度過程如式(8)所示:
其中,b表示哈希值;A表示線性哈希算法函數(shù);N表示全部等待隊(duì)列的個數(shù)。
同時使用傳統(tǒng)系統(tǒng)和該文系統(tǒng)分析不同環(huán)節(jié)的數(shù)據(jù)響應(yīng)時間,設(shè)定最大通信數(shù)據(jù)量為600 GB,得到的數(shù)據(jù)寫入性能響應(yīng)延遲時間實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 數(shù)據(jù)寫入性能響應(yīng)延遲時間
數(shù)據(jù)寫入性能對于整體通信效果有極強(qiáng)的影響,根據(jù)圖4 可知,隨著通信數(shù)據(jù)量的增加,系統(tǒng)的響應(yīng)延遲時間也在不斷增加,鐵路通信效果越來越差,但是該文提出的分布式查詢系統(tǒng)的延遲時間最短,當(dāng)達(dá)到最大通信數(shù)據(jù)量600 GB 時,系統(tǒng)的響應(yīng)延遲時間仍然低于0.2 ms,具有實(shí)時通信能力,能夠滿足用戶的通信要求,而傳統(tǒng)的數(shù)據(jù)壓縮查詢系統(tǒng)在通信數(shù)據(jù)量達(dá)到600 GB 時,響應(yīng)延遲時間已經(jīng)達(dá)到1.38 ms,物聯(lián)網(wǎng)查詢系統(tǒng)響應(yīng)延遲時間達(dá)到1.7 ms,響應(yīng)時間過長,通信質(zhì)量嚴(yán)重下降,無法滿足用戶的整體通信要求。
緩沖性能寫入延遲時間如圖5 所示。
圖5 緩沖性能響應(yīng)延遲時間
根據(jù)圖5 可知,在緩沖性能方面,該文提出的基于HBase 的鐵路通信數(shù)據(jù)分布式查詢系統(tǒng)的延遲時間與傳統(tǒng)系統(tǒng)有極大的差異,隨著通信數(shù)據(jù)量的增加,傳統(tǒng)系統(tǒng)顯現(xiàn)出極大的局限性,物聯(lián)網(wǎng)查詢系統(tǒng)響應(yīng)時間達(dá)到1.8 s,壓縮查詢系統(tǒng)響應(yīng)時間達(dá)到1.2 s,無法達(dá)到正常通過要求,而該文提出的查詢系統(tǒng)響應(yīng)時間為0.1 s,在響應(yīng)方面上具有極大的操作空間,確保通信結(jié)果的實(shí)時性。
綜上所述,在數(shù)據(jù)寫入性能和緩沖寫入性能方面,傳統(tǒng)的分布式查詢系統(tǒng)的查詢能力相對較差,響應(yīng)時間過長,該文提出的系統(tǒng)能夠在短時間內(nèi)實(shí)現(xiàn)響應(yīng),具有極強(qiáng)的實(shí)時性。
該文基于HBase 設(shè)計了鐵路通信數(shù)據(jù)分布式查詢系統(tǒng),硬件部分通過組合系統(tǒng)組件以及建立HBase集群構(gòu)建分布式系統(tǒng)平臺,軟件部分由數(shù)據(jù)查詢模塊以及數(shù)據(jù)儲存模塊組成的數(shù)據(jù)系統(tǒng)架構(gòu)和三種查詢技術(shù)組成。經(jīng)實(shí)驗(yàn)表明,該文設(shè)計的分布式查詢系統(tǒng)查詢速度快,查詢準(zhǔn)確率高,適用于如今的鐵路通信中。但該文在設(shè)計系統(tǒng)時未考慮系統(tǒng)在長時間高速運(yùn)行時的可持續(xù)時間,后續(xù)將圍繞此方面進(jìn)行研究。