基礎(chǔ)信息
權(quán)利要求
說明書
PDF全文
法律信息
引證文獻(xiàn)
著錄項(xiàng)信息
專利名稱 | 一種軌道交通監(jiān)測(cè)數(shù)據(jù)的查詢方法 |
申請(qǐng)?zhí)?/td> | CN201310395393.6 | 申請(qǐng)日期 | 2013-09-03 |
法律狀態(tài) | 授權(quán) | 申報(bào)國(guó)家 | 中國(guó) |
公開/公告日 | 2014-01-08 | 公開/公告號(hào) | CN103500173A |
優(yōu)先權(quán) | 暫無 | 優(yōu)先權(quán)號(hào) | 暫無 |
主分類號(hào) | G06F17/30 | IPC分類號(hào) | G;0;6;F;1;7;/;3;0查看分類表>
|
申請(qǐng)人 | 北京泰樂德信息技術(shù)有限公司 | 申請(qǐng)人地址 | 北京市海淀區(qū)知春路51號(hào)慎昌大廈5225室
變更
專利地址、主體等相關(guān)變化,請(qǐng)及時(shí)變更,防止失效 |
權(quán)利人 | 北京泰樂德信息技術(shù)有限公司 | 當(dāng)前權(quán)利人 | 北京泰樂德信息技術(shù)有限公司 |
發(fā)明人 | 鮑俠 |
代理機(jī)構(gòu) | 北京君尚知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) | 代理人 | 余長(zhǎng)江 |
摘要
本發(fā)明公開了一種軌道交通監(jiān)測(cè)數(shù)據(jù)的查詢方法。本方法為:1)數(shù)據(jù)存儲(chǔ)系統(tǒng)實(shí)時(shí)檢查新存儲(chǔ)的監(jiān)測(cè)數(shù)據(jù)文件,并將其轉(zhuǎn)換為二進(jìn)制形式進(jìn)行存儲(chǔ);其中,數(shù)據(jù)存儲(chǔ)系統(tǒng)采用云計(jì)算平臺(tái),其包括一分布式存儲(chǔ)系統(tǒng)和一索引查詢系統(tǒng);2)數(shù)據(jù)存儲(chǔ)系統(tǒng)對(duì)所述監(jiān)測(cè)數(shù)據(jù)文件進(jìn)行并行處理,對(duì)每一檢測(cè)數(shù)據(jù)文件創(chuàng)建一索引,并將每個(gè)監(jiān)測(cè)數(shù)據(jù)文件對(duì)應(yīng)的索引數(shù)據(jù)插入到所述索引查詢系統(tǒng)中;3)所述索引查詢系統(tǒng)根據(jù)輸入的檢測(cè)查詢請(qǐng)求,查詢得到監(jiān)測(cè)數(shù)據(jù)文件列表,然后根據(jù)該檢測(cè)數(shù)據(jù)文件列表從所述分布式存儲(chǔ)系統(tǒng)的監(jiān)測(cè)數(shù)據(jù)文件中讀取監(jiān)測(cè)數(shù)據(jù)記錄。本發(fā)明大大提高了索引的創(chuàng)建速度和查詢的效率。
1.一種軌道交通監(jiān)測(cè)數(shù)據(jù)的查詢方法,其步驟為:
1)數(shù)據(jù)存儲(chǔ)系統(tǒng)實(shí)時(shí)檢查新存儲(chǔ)的數(shù)值型監(jiān)測(cè)數(shù)據(jù)文件,并將其轉(zhuǎn)換為二進(jìn)制形式進(jìn)行存儲(chǔ);其中,數(shù)據(jù)存儲(chǔ)系統(tǒng)采用云計(jì)算平臺(tái),其包括一分布式存儲(chǔ)系統(tǒng)和一索引查詢系統(tǒng);所述分布式存儲(chǔ)系統(tǒng)包括一元數(shù)據(jù)文件,所述分布式存儲(chǔ)系統(tǒng)提取監(jiān)測(cè)數(shù)據(jù)文件的元數(shù)據(jù),將其作為一條數(shù)據(jù)記錄存儲(chǔ)在該元數(shù)據(jù)文件中;所述元數(shù)據(jù)包括文件名、監(jiān)測(cè)數(shù)據(jù)文件中的字段在該監(jiān)測(cè)數(shù)據(jù)文件中的偏移量、監(jiān)測(cè)文件大??;
2)數(shù)據(jù)存儲(chǔ)系統(tǒng)對(duì)所述監(jiān)測(cè)數(shù)據(jù)文件進(jìn)行并行處理,對(duì)每一監(jiān)測(cè)數(shù)據(jù)文件創(chuàng)建一索引,并將每個(gè)監(jiān)測(cè)數(shù)據(jù)文件對(duì)應(yīng)的索引數(shù)據(jù)插入到所述索引查詢系統(tǒng)中;其中,所述對(duì)每一監(jiān)測(cè)數(shù)據(jù)文件創(chuàng)建一索引的方法為:
21)子節(jié)點(diǎn)對(duì)所分配的每一監(jiān)測(cè)數(shù)據(jù)文件索引創(chuàng)建任務(wù)新建一數(shù)據(jù)流,同時(shí)記錄下該監(jiān)測(cè)數(shù)據(jù)文件的文件名;
22)子節(jié)點(diǎn)根據(jù)該文件名從所述元數(shù)據(jù)文件中提取元數(shù)據(jù),并根據(jù)該元數(shù)據(jù)記錄對(duì)該監(jiān)測(cè)文件數(shù)據(jù)進(jìn)行解析,利用所述偏移量提取設(shè)定的索引字段將其添加到索引數(shù)據(jù)列表中;
23)子節(jié)點(diǎn)對(duì)索引數(shù)據(jù)列表中每一索引字段建立一索引表;所述索引表中的信息包括:
索引字段、數(shù)據(jù)采集時(shí)間、監(jiān)測(cè)數(shù)據(jù)記錄的存儲(chǔ)地址;
3)所述索引查詢系統(tǒng)根據(jù)輸入的監(jiān)測(cè)查詢請(qǐng)求,查詢得到監(jiān)測(cè)數(shù)據(jù)文件列表,然后根據(jù)該監(jiān)測(cè)數(shù)據(jù)文件列表從所述分布式存儲(chǔ)系統(tǒng)的監(jiān)測(cè)數(shù)據(jù)文件中讀取監(jiān)測(cè)數(shù)據(jù)記錄。
2.如權(quán)利要求1所述的方法,其特征在于所述分布式存儲(chǔ)系統(tǒng)為HDFS存儲(chǔ)系統(tǒng),所述索引查詢系統(tǒng)為Hbase索引查詢系統(tǒng)。
3.如權(quán)利要求2所述的方法,其特征在于所述云計(jì)算平臺(tái)設(shè)置有主節(jié)點(diǎn)和若干子節(jié)點(diǎn);
利用主節(jié)點(diǎn)檢查分布式HDFS存儲(chǔ)系統(tǒng)中新存儲(chǔ)的監(jiān)測(cè)數(shù)據(jù)文件,并創(chuàng)建該監(jiān)測(cè)數(shù)據(jù)文件的索引數(shù)據(jù);所述云計(jì)算平臺(tái)將所述監(jiān)測(cè)數(shù)據(jù)文件分發(fā)給不同的子節(jié)點(diǎn)進(jìn)行索引的并行創(chuàng)建。
4.如權(quán)利要求3所述的方法,其特征在于所述云計(jì)算平臺(tái)采用Zookeeper設(shè)置主節(jié)點(diǎn)和子節(jié)點(diǎn),并對(duì)所述云計(jì)算平臺(tái)進(jìn)行負(fù)載均衡。
5.如權(quán)利要求1或2或3所述的方法,其特征在于所述監(jiān)測(cè)數(shù)據(jù)文件包括采集的若干設(shè)備狀態(tài)記錄;所述設(shè)備狀態(tài)記錄包括數(shù)據(jù)采集的時(shí)間,以及該時(shí)間下所對(duì)應(yīng)的設(shè)備監(jiān)測(cè)信號(hào)的若干開關(guān)量和模擬量的值。
6.如權(quán)利要求1或2或3所述的方法,其特征在于所述監(jiān)測(cè)查詢請(qǐng)求包括監(jiān)測(cè)數(shù)據(jù)的時(shí)間范圍和監(jiān)測(cè)參數(shù)。
一種軌道交通監(jiān)測(cè)數(shù)據(jù)的查詢方法\n技術(shù)領(lǐng)域\n[0001] 本發(fā)明提供一種軌道交通監(jiān)測(cè)數(shù)據(jù)的查詢方法,屬于云計(jì)算技術(shù)領(lǐng)域。\n背景技術(shù)\n[0002] 隨著我國(guó)鐵路包括國(guó)有鐵路、企業(yè)鐵路和城市軌道交通系統(tǒng)的大規(guī)模建設(shè),鐵路設(shè)備,特別是鐵路通信信號(hào)設(shè)備的技術(shù)越來越先進(jìn),但鐵路電務(wù)維修維護(hù)技術(shù)并沒有伴隨鐵路的大規(guī)模建設(shè)而同步發(fā)展,導(dǎo)致鐵路電務(wù)維修維護(hù)技術(shù)成為鐵路領(lǐng)域的技術(shù)薄弱環(huán)節(jié)。鐵路電務(wù)的兩個(gè)市場(chǎng)主體:鐵路電務(wù)部門(鐵路總公司、鐵路局、電務(wù)段、電務(wù)車間、電務(wù)工區(qū))和鐵路通信信號(hào)設(shè)備廠商,在承擔(dān)著巨大上線壓力的同時(shí),又承擔(dān)著日益繁重的已上線設(shè)備的運(yùn)維壓力,他們對(duì)于提高鐵路電務(wù)維修維護(hù)技術(shù)水平和安全生產(chǎn)能力的信息化生產(chǎn)工具有著亟待滿足的市場(chǎng)需求。\n[0003] 目前針對(duì)鐵路通信信號(hào)設(shè)備已存在多種監(jiān)測(cè)系統(tǒng),包括高鐵信號(hào)監(jiān)測(cè)的車載計(jì)算機(jī)(ATP)、鐵路無線網(wǎng)絡(luò)(GSM-R)、無線閉塞中心(RBC)、臨時(shí)限速(TSRS)和既有信號(hào)監(jiān)測(cè)(CSM):聯(lián)鎖(CBI)、調(diào)度集中(CTC)和列控中心(TCC)以及其它基礎(chǔ)信號(hào)監(jiān)測(cè),包括道岔、軌道電路、信號(hào)機(jī)和電源屏等,除了這些設(shè)備監(jiān)測(cè)系統(tǒng)之外,在車站、電務(wù)段、城軌集中站\車輛段以及城軌線路中心也都部署了CSM系統(tǒng),用來集中管理各種設(shè)備的監(jiān)測(cè)數(shù)據(jù)和告警信息,并根據(jù)這些信息通知電務(wù)人員進(jìn)行維修維護(hù)。\n[0004] 目前,鐵路電務(wù)部門存在的主要問題是在電務(wù)生產(chǎn)過程中沿用傳統(tǒng)的計(jì)劃修和故障修的電務(wù)生產(chǎn)方式,維護(hù)著眾多先進(jìn)的通信信號(hào)設(shè)備,不可避免地照成了設(shè)備隱患的盲區(qū)、盲點(diǎn),電務(wù)生產(chǎn)領(lǐng)域普遍存在著過剩修和失修現(xiàn)象。過剩修,帶來的是人財(cái)物力的巨大浪費(fèi);而失修,則可能帶來車毀人亡的行車事故。廣大鐵路電務(wù)人員,在沉重的心理壓力和勞動(dòng)強(qiáng)度負(fù)荷下、以人力維護(hù)著通信信號(hào)設(shè)備的正常運(yùn)行,不堪重負(fù)。他們迫切需要一套能夠解放電務(wù)生產(chǎn)力的生產(chǎn)工具---綜合化、智能化的電務(wù)監(jiān)測(cè)運(yùn)維系統(tǒng),從而將當(dāng)前以故障修、計(jì)劃修為導(dǎo)向的傳統(tǒng)的電務(wù)安全生產(chǎn)運(yùn)維模式,逐步轉(zhuǎn)變?yōu)橐誀顟B(tài)修為導(dǎo)向的信息化的電務(wù)安全生產(chǎn)運(yùn)維模式,從而實(shí)現(xiàn)查隱患、治隱患,將設(shè)備隱患消除在萌芽狀態(tài)、實(shí)現(xiàn)保障行車安全的電務(wù)安全生產(chǎn)目標(biāo)。\n[0005] 鐵路通信信號(hào)設(shè)備廠商目前存在的主要問題在于,監(jiān)測(cè)信息的相對(duì)分散和孤立,使得監(jiān)測(cè)信息的利用非常不方便,利用率不高。部分監(jiān)測(cè)系統(tǒng)產(chǎn)生的監(jiān)測(cè)信息之間彼此是相對(duì)獨(dú)立的信息孤島,還沒有完全實(shí)現(xiàn)集中監(jiān)測(cè);現(xiàn)有的軌道交通監(jiān)測(cè)數(shù)據(jù)的管理方法是將所用的數(shù)據(jù)都采用關(guān)系數(shù)據(jù)庫(kù),如Oracle數(shù)據(jù)庫(kù),進(jìn)行存儲(chǔ)和管理。為了應(yīng)對(duì)海量的數(shù)據(jù),通常采用由多個(gè)數(shù)據(jù)庫(kù)服務(wù)器所組成的集群,如Oracle?RAC。在關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)是高度獨(dú)立的,隨著監(jiān)測(cè)和存儲(chǔ)數(shù)據(jù)量的逐漸增加,關(guān)系數(shù)據(jù)庫(kù)集群的數(shù)據(jù)存儲(chǔ)和管理方式具有以下的不足:\n[0006] 對(duì)于海量數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)當(dāng)前最主要的方法是使用3級(jí)存儲(chǔ)器進(jìn)行存儲(chǔ)和并行存儲(chǔ)和查詢技術(shù)。但是這些方法對(duì)于數(shù)據(jù)的存儲(chǔ)最大的不足之處在于對(duì)于硬件的開銷比較大,而且需要開發(fā)專門的數(shù)據(jù)庫(kù)系統(tǒng)對(duì)其進(jìn)行管理,而且他們最本質(zhì)的思路就是以擴(kuò)充硬件設(shè)備來獲取大的存儲(chǔ)空間,加大存儲(chǔ)容量的同時(shí)大大增加的查詢的處理時(shí)間。\n[0007] 并行數(shù)據(jù)庫(kù)技術(shù)雖然利用多個(gè)處理機(jī)獲取的高速的處理速度,但代價(jià)是增加硬件開銷,而且處理的增長(zhǎng)速度要低于硬件設(shè)備的處理速度。當(dāng)數(shù)據(jù)量很大時(shí),數(shù)據(jù)查詢和分析等操作需要花費(fèi)的時(shí)間開銷很大,無法滿足快速數(shù)據(jù)瀏覽和分析處理的需要。\n發(fā)明內(nèi)容\n[0008] 針對(duì)上述問題,本發(fā)明的目的是提供一種軌道交通監(jiān)測(cè)數(shù)據(jù)的查詢方法,通過云平臺(tái)、云存儲(chǔ)技術(shù)提高各種資源和軌道交通監(jiān)測(cè)數(shù)據(jù)的查詢效率。\n[0009] 為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:\n[0010] 一種軌道交通監(jiān)測(cè)數(shù)據(jù)的查詢方法,其步驟為:\n[0011] 1)數(shù)據(jù)存儲(chǔ)系統(tǒng)實(shí)時(shí)檢查新存儲(chǔ)的數(shù)值型監(jiān)測(cè)數(shù)據(jù)文件,并將其轉(zhuǎn)換為二進(jìn)制形式進(jìn)行存儲(chǔ);其中,數(shù)據(jù)存儲(chǔ)系統(tǒng)采用云計(jì)算平臺(tái),其包括一分布式存儲(chǔ)系統(tǒng)和一索引查詢系統(tǒng);\n[0012] 2)數(shù)據(jù)存儲(chǔ)系統(tǒng)對(duì)所述監(jiān)測(cè)數(shù)據(jù)文件進(jìn)行并行處理,對(duì)每一檢測(cè)數(shù)據(jù)文件創(chuàng)建一索引,并將每個(gè)監(jiān)測(cè)數(shù)據(jù)文件對(duì)應(yīng)的索引數(shù)據(jù)插入到所述索引查詢系統(tǒng)中;\n[0013] 3)所述索引查詢系統(tǒng)根據(jù)輸入的檢測(cè)查詢請(qǐng)求,查詢得到監(jiān)測(cè)數(shù)據(jù)文件列表,然后根據(jù)該檢測(cè)數(shù)據(jù)文件列表從所述分布式存儲(chǔ)系統(tǒng)的監(jiān)測(cè)數(shù)據(jù)文件中讀取監(jiān)測(cè)數(shù)據(jù)記錄。\n[0014] 進(jìn)一步的,所述分布式存儲(chǔ)系統(tǒng)為HDFS存儲(chǔ)系統(tǒng),所述索引查詢系統(tǒng)為Hbase索引查詢系統(tǒng)。\n[0015] 進(jìn)一步的,所述云計(jì)算平臺(tái)設(shè)置有主節(jié)點(diǎn)和若干子節(jié)點(diǎn);利用主節(jié)點(diǎn)檢查分布式HDFS存儲(chǔ)系統(tǒng)中新存儲(chǔ)的監(jiān)測(cè)數(shù)據(jù)文件,并創(chuàng)建該檢測(cè)數(shù)據(jù)文件的索引數(shù)據(jù);所述云計(jì)算平臺(tái)將所述監(jiān)測(cè)數(shù)據(jù)文件分發(fā)給不同的子節(jié)點(diǎn)進(jìn)行索引的并行創(chuàng)建。\n[0016] 進(jìn)一步的,所述分布式存儲(chǔ)系統(tǒng)包括一元數(shù)據(jù)文件,所述分布式存儲(chǔ)系統(tǒng)提取監(jiān)測(cè)數(shù)據(jù)文件的元數(shù)據(jù),將其作為一條數(shù)據(jù)記錄存儲(chǔ)在該元數(shù)據(jù)文件中。\n[0017] 進(jìn)一步的,所述元數(shù)據(jù)包括文件名、監(jiān)測(cè)數(shù)據(jù)文件中的字段在該監(jiān)測(cè)數(shù)據(jù)文件中的偏移量、監(jiān)測(cè)文件大小。\n[0018] 進(jìn)一步的,所述對(duì)每一檢測(cè)數(shù)據(jù)文件創(chuàng)建一索引的方法為:\n[0019] 1)子節(jié)點(diǎn)對(duì)所分配的每一監(jiān)測(cè)數(shù)據(jù)文件索引創(chuàng)建任務(wù)新建一數(shù)據(jù)流,同時(shí)記錄下該監(jiān)測(cè)數(shù)據(jù)文件的文件名;\n[0020] 2)子節(jié)點(diǎn)根據(jù)該文件名從所述元數(shù)據(jù)文件中提取元數(shù)據(jù),并根據(jù)該元數(shù)據(jù)記錄對(duì)該監(jiān)測(cè)文件數(shù)據(jù)進(jìn)行解析,利用所述偏移量提取設(shè)定的索引字段將其添加到索引數(shù)據(jù)列表中;\n[0021] 3)子節(jié)點(diǎn)對(duì)索引數(shù)據(jù)列表中每一索引字段建立一索引表;所述索引表中的信息包括:索引字段、數(shù)據(jù)采集時(shí)間、監(jiān)測(cè)數(shù)據(jù)記錄的存儲(chǔ)地址。\n[0022] 進(jìn)一步的,所述索引表的行鍵按照字節(jié)序順序排列。\n[0023] 進(jìn)一步的,所述云計(jì)算平臺(tái)采用Zookeeper設(shè)置主節(jié)點(diǎn)和子節(jié)點(diǎn),并對(duì)所述云計(jì)算平臺(tái)進(jìn)行負(fù)載均衡。\n[0024] 進(jìn)一步的,所述監(jiān)測(cè)數(shù)據(jù)文件包括若干采集的設(shè)備狀態(tài)記錄;所述設(shè)備狀態(tài)記錄包括數(shù)據(jù)采集的時(shí)間,以及該時(shí)間下所對(duì)應(yīng)的設(shè)備監(jiān)測(cè)信號(hào)的若干開關(guān)量和模擬量的值。\n[0025] 進(jìn)一步的,所述監(jiān)測(cè)查詢請(qǐng)求包括監(jiān)測(cè)數(shù)據(jù)的時(shí)間范圍和監(jiān)測(cè)參數(shù)。\n[0026] 軌道交通監(jiān)測(cè)數(shù)據(jù)是以設(shè)備監(jiān)測(cè)信號(hào)的開關(guān)量和模擬量的形式產(chǎn)生和保存的。然后數(shù)據(jù)采集系統(tǒng)將某一時(shí)刻的開關(guān)量和模擬量數(shù)據(jù)合并成一條設(shè)備狀態(tài)記錄,存儲(chǔ)于各電務(wù)段的集中監(jiān)測(cè)系統(tǒng)。該設(shè)備狀態(tài)記錄包括了數(shù)據(jù)采集的時(shí)間,以及該時(shí)間下所對(duì)應(yīng)的設(shè)備監(jiān)測(cè)信號(hào)的若干開關(guān)量和模擬量的值。綜合運(yùn)維平臺(tái)對(duì)各電務(wù)段的監(jiān)測(cè)數(shù)據(jù)進(jìn)行收集并集中存儲(chǔ)于數(shù)據(jù)存儲(chǔ)系統(tǒng)。本發(fā)明中的數(shù)據(jù)存儲(chǔ)系統(tǒng)采用云計(jì)算平臺(tái),利用眾多X86架構(gòu)計(jì)算機(jī),建立具有良好可靠性和可擴(kuò)展性的分布式云計(jì)算平臺(tái),能夠?qū)Ω哌_(dá)PB級(jí)的監(jiān)測(cè)數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)處理,提供監(jiān)測(cè)數(shù)據(jù)的實(shí)時(shí)查詢分析等多種業(yè)務(wù)支持,圖1所示是設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)中監(jiān)測(cè)數(shù)據(jù)采集和查詢系統(tǒng)的框架。\n[0027] 如圖1所示,監(jiān)測(cè)數(shù)據(jù)源源不斷地從設(shè)備信號(hào)采集系統(tǒng)采集出來,然后這些原始數(shù)據(jù)將經(jīng)過合成系統(tǒng)處理,以生成監(jiān)測(cè)數(shù)據(jù)記錄。合成的監(jiān)測(cè)數(shù)據(jù)記錄是以接近于文本數(shù)據(jù)的形式表示的,每個(gè)記錄中包含數(shù)十個(gè)數(shù)據(jù)字段,如軌道電路電壓、軌道電路相位角等信息。監(jiān)測(cè)數(shù)據(jù)通常以一個(gè)固定的時(shí)間(如一分鐘)為單位保持在數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)庫(kù)中。\n因此,每分鐘都會(huì)有監(jiān)測(cè)數(shù)據(jù)產(chǎn)生,而根據(jù)設(shè)備采集頻率的不同,每天的監(jiān)測(cè)數(shù)據(jù)庫(kù)中可包含很多的監(jiān)測(cè)數(shù)據(jù)記錄。集中存儲(chǔ)這些數(shù)據(jù)的存儲(chǔ)系統(tǒng)更需要維護(hù)多個(gè)電務(wù)段中存儲(chǔ)的監(jiān)測(cè)數(shù)據(jù)。\n[0028] 為了能對(duì)這些監(jiān)測(cè)數(shù)據(jù)記錄進(jìn)行查詢,需要將其轉(zhuǎn)換為二進(jìn)制形式。采用二進(jìn)制存儲(chǔ)的優(yōu)點(diǎn)是可以節(jié)省存儲(chǔ)空間,而且可以以固定字節(jié)長(zhǎng)度來存儲(chǔ)數(shù)據(jù)。由于二進(jìn)制形式的記錄之間偏移量是固定值,因此便于創(chuàng)建索引和進(jìn)行相關(guān)的查詢。表1是原始記錄結(jié)構(gòu)化存儲(chǔ)的一種具體形式,將其轉(zhuǎn)換為二進(jìn)制形式。對(duì)于這些結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和管理,本發(fā)明的解決方案是:將監(jiān)測(cè)數(shù)據(jù)以每天為單位合成一個(gè)數(shù)據(jù)文件,存儲(chǔ)在HDFS系統(tǒng)中,同時(shí)為了提供快速查詢處理能力,將針對(duì)監(jiān)測(cè)數(shù)據(jù)記錄建立查詢索引,并將這些查詢索引存放在HBase中。\n[0029] 表1為原始記錄結(jié)構(gòu)化存儲(chǔ)的具體形式\n[0030]\n編號(hào) 設(shè)備名稱 功出電壓(伏) 功出電流(毫安) 載頻(赫茲) 低頻(赫茲)\n1 3DG 114.40 358.00 2298.70 27.80\n2 7DG 114.40 415.00 2598.70 27.90\n3 9DG 78.60 173.00 1701.40 26.70\n4 13DG 76.20 202.00 2001.40 27.90\n5 17DG 111.50 355.00 2298.70 27.80\n[0031] 為此,對(duì)來自采集和合成系統(tǒng),每分鐘源源不斷產(chǎn)生的監(jiān)測(cè)數(shù)據(jù)文件,需要實(shí)時(shí)地檢查這些數(shù)據(jù)文件,并及時(shí)進(jìn)行索引創(chuàng)建處理。索引數(shù)據(jù)包括監(jiān)測(cè)數(shù)據(jù)的采集時(shí)間、監(jiān)測(cè)參數(shù)以及對(duì)應(yīng)的存儲(chǔ)地址。\n[0032] 由于監(jiān)測(cè)數(shù)據(jù)量巨大,需要使用多臺(tái)服務(wù)器進(jìn)行并行處理,這樣就需要一個(gè)管理者來掃描檢查新生成的監(jiān)測(cè)數(shù)據(jù)文件,并將不同的監(jiān)測(cè)數(shù)據(jù)文件的索引創(chuàng)建任務(wù)分配給不同節(jié)點(diǎn)去處理。因此,需要考慮在計(jì)算集群上進(jìn)行并行化任務(wù)調(diào)度和負(fù)載均衡處理,來完成以上的查詢索引處理任務(wù)。\n[0033] 在具體的設(shè)計(jì)上,整體方案可以分為兩大部分。\n[0034] 第一部分是監(jiān)測(cè)數(shù)據(jù)文件的讀取和基于HBase的查詢索引創(chuàng)建。此過程中,需要設(shè)置一個(gè)主節(jié)點(diǎn)用于檢測(cè)HDFS中新的監(jiān)測(cè)數(shù)據(jù)文件,然后,該主節(jié)點(diǎn)將把檢測(cè)到的監(jiān)測(cè)數(shù)據(jù)文件分發(fā)給不同的子節(jié)點(diǎn)完成查詢索引創(chuàng)建,并將每條監(jiān)測(cè)記錄對(duì)應(yīng)的索引數(shù)據(jù)插入到HBase中。為了防止主節(jié)點(diǎn)單節(jié)點(diǎn)失效、并處理好負(fù)載均衡,使用Zookeeper來管理整個(gè)計(jì)算集群。\n[0035] 第二部分是基于HBase的查詢索引,接收并處理用戶的監(jiān)測(cè)查詢請(qǐng)求(查詢請(qǐng)求包括監(jiān)測(cè)數(shù)據(jù)的時(shí)間范圍和監(jiān)測(cè)參數(shù)),到HBase中完成具體的查詢處理,在獲得結(jié)果監(jiān)測(cè)數(shù)據(jù)記錄查詢列表后,再到存儲(chǔ)在HDFS的監(jiān)測(cè)數(shù)據(jù)文件中讀出詳細(xì)的監(jiān)測(cè)數(shù)據(jù)記錄,并逐一返回給客戶端。\n[0036] 與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為:\n[0037] (1)采用文件數(shù)據(jù)庫(kù)系統(tǒng)來存儲(chǔ)大規(guī)模數(shù)據(jù),解決了關(guān)系數(shù)據(jù)庫(kù)集群維護(hù)和擴(kuò)展的代價(jià)。\n[0038] (2)將結(jié)構(gòu)型數(shù)據(jù)按二進(jìn)制的形式進(jìn)行存儲(chǔ),減小了占用存儲(chǔ)的空間。\n[0039] (3)采用并行方法建立數(shù)據(jù)索引,提高了索引的創(chuàng)建速度,并提高了查詢的效率。\n附圖說明\n[0040] 圖1軌道交通監(jiān)測(cè)數(shù)據(jù)管理系統(tǒng)結(jié)構(gòu)框架圖;\n[0041] 圖2展示了以上的監(jiān)測(cè)數(shù)據(jù)查詢處理流程。\n具體實(shí)施方式\n[0042] 下面通過具體實(shí)施例和附圖,對(duì)本發(fā)明做詳細(xì)的說明。\n[0043] 如圖1所示的軌道交通監(jiān)測(cè)數(shù)據(jù)管理系統(tǒng)的結(jié)構(gòu)框架包括以下主要部分:\n[0044] (1)基于HDFS的分布式文件存儲(chǔ)\n[0045] 該部分的主要作用是提供監(jiān)測(cè)數(shù)據(jù)的存儲(chǔ)平臺(tái)。分布式文件系統(tǒng)位于整個(gè)系統(tǒng)的底層,它向計(jì)算模型層、數(shù)據(jù)庫(kù)層提供統(tǒng)一的訪存接口,其它模塊通過接口的調(diào)用可以很方便地在分布式文件系統(tǒng)中存取數(shù)據(jù)。同時(shí),該層提供的副本策略、負(fù)載均衡等機(jī)制也保證了存儲(chǔ)平臺(tái)的可用性和可靠性,為整個(gè)系統(tǒng)提供穩(wěn)定的、可依賴的存儲(chǔ)空間。\n[0046] (2)基于HBase的索引管理\n[0047] 該部分的主要作用是提供數(shù)據(jù)存儲(chǔ)支持,能夠向業(yè)務(wù)層和計(jì)算層提供數(shù)據(jù)持久化功能。并通過合理的主鍵設(shè)置和索引機(jī)制,向上層提供高效的數(shù)據(jù)訪問能力。采用HBase作為數(shù)據(jù)庫(kù),能夠滿足系統(tǒng)高并發(fā)、高可擴(kuò)展性的需求。同時(shí)關(guān)于監(jiān)測(cè)設(shè)備信息的數(shù)據(jù)存儲(chǔ)也在HBase中。\n[0048] (3)基于Zookeeper的分布式調(diào)度管理\n[0049] 該部分的主要作用是對(duì)整個(gè)系統(tǒng)的服務(wù)器集群進(jìn)行管理,同時(shí)提供全局配置信息管理功能。通過調(diào)用索引生成算法,對(duì)存儲(chǔ)在分布式文件系統(tǒng)中的數(shù)據(jù)并行地生成索引。\n[0050] (4)基于MapReduce的數(shù)據(jù)分析\n[0051] 該部分的主要作用是采用數(shù)據(jù)分析算法對(duì)存儲(chǔ)在分布式文件系統(tǒng)中的數(shù)據(jù)進(jìn)行分析,并輸出分析結(jié)果。\n[0052] (5)數(shù)據(jù)存儲(chǔ)接口\n[0053] 該部分的主要作用是從數(shù)據(jù)采集系統(tǒng)接收采集的設(shè)備狀態(tài)監(jiān)測(cè)數(shù)據(jù),將數(shù)據(jù)存儲(chǔ)到分布式文件系統(tǒng)。\n[0054] (6)數(shù)據(jù)查詢接口\n[0055] 該部分的主要作用是從數(shù)據(jù)展現(xiàn)層接收數(shù)據(jù)查詢請(qǐng)求,通過數(shù)據(jù)索引從分布式文件系統(tǒng)中查詢所需的數(shù)據(jù),將數(shù)據(jù)返回?cái)?shù)據(jù)展現(xiàn)層。\n[0056] 本發(fā)明的實(shí)施步驟如下:\n[0057] (1)監(jiān)測(cè)數(shù)據(jù)的存儲(chǔ)\n[0058] 從數(shù)據(jù)采集系統(tǒng)獲得的監(jiān)測(cè)數(shù)據(jù),其存儲(chǔ)的形式如表1中所示。為了節(jié)省存儲(chǔ)的空間和提高查詢的效率,將這些結(jié)構(gòu)化的數(shù)據(jù)以一個(gè)固定格式的結(jié)構(gòu)數(shù)據(jù)類型來作為存儲(chǔ)的類型。這些結(jié)構(gòu)數(shù)據(jù)類型中包括了每一項(xiàng)的數(shù)據(jù)類型和在結(jié)構(gòu)中的偏移量,這些信息連同每一個(gè)文件中存儲(chǔ)數(shù)據(jù)的起始時(shí)間一起保存在元數(shù)據(jù)文件中。數(shù)據(jù)存儲(chǔ)接口將得到的每一時(shí)刻的數(shù)據(jù)追加存儲(chǔ)到分布式文件系統(tǒng)的對(duì)應(yīng)文件的結(jié)尾。當(dāng)文件大小達(dá)到限定值時(shí),將數(shù)據(jù)存儲(chǔ)到一個(gè)新的文件,并在元數(shù)據(jù)中生成一條新的數(shù)據(jù)記錄。\n[0059] (2)監(jiān)測(cè)數(shù)據(jù)文件的檢測(cè)與索引創(chuàng)建任務(wù)調(diào)度。\n[0060] 監(jiān)測(cè)數(shù)據(jù)以文件的形式組織,現(xiàn)階段的處理是直接將數(shù)據(jù)以二進(jìn)制的形式存放到文件里,不包含任何的冗余數(shù)據(jù)。后續(xù)的查詢將通過文件名和偏移量來獲取數(shù)據(jù)。由于監(jiān)測(cè)數(shù)據(jù)是每時(shí)每刻都在產(chǎn)生的,我們必須實(shí)時(shí)地掃描系統(tǒng)中新的監(jiān)測(cè)文件,然后將監(jiān)測(cè)數(shù)據(jù)文件分配到不同的索引創(chuàng)建節(jié)點(diǎn)。為了實(shí)現(xiàn)系統(tǒng)的負(fù)載均衡和單點(diǎn)容錯(cuò),將監(jiān)測(cè)文件掃描服務(wù)和索引創(chuàng)建服務(wù)分布在不同的節(jié)點(diǎn)上,這樣就需要一個(gè)管理者Zookeeper來管理這些集群。\n[0061] 基于計(jì)算集群,用Zookeeper完成統(tǒng)一控制的基本設(shè)計(jì)和實(shí)現(xiàn)方法是,將計(jì)算集群中所有的節(jié)點(diǎn)都納入Zookeeper的管理,選擇其中兩個(gè)計(jì)算節(jié)點(diǎn)注冊(cè)為Zookeeper的Master服務(wù)節(jié)點(diǎn)(負(fù)責(zé)新的監(jiān)測(cè)數(shù)據(jù)文件的掃描和索引創(chuàng)建任務(wù)的調(diào)度分發(fā)),Zookeeper將自動(dòng)在兩個(gè)服務(wù)器節(jié)點(diǎn)中選舉一個(gè)主服務(wù)器節(jié)點(diǎn)。當(dāng)主服務(wù)器節(jié)點(diǎn)出現(xiàn)故障時(shí),Zookeeper將能自動(dòng)將剩下的一個(gè)服務(wù)器節(jié)點(diǎn)提升為主服務(wù)器節(jié)點(diǎn)來接管失效的主服務(wù)器,以此,保證并行計(jì)算任務(wù)的分發(fā)和調(diào)度處理不會(huì)出現(xiàn)單點(diǎn)失效。\n[0062] 主服務(wù)器在Zookeeper中所維護(hù)的當(dāng)前有效地子節(jié)點(diǎn)中挑選一個(gè)空閑的節(jié)點(diǎn),并把一個(gè)索引創(chuàng)建任務(wù)分發(fā)給該節(jié)點(diǎn);當(dāng)多個(gè)索引創(chuàng)建任務(wù)到達(dá)時(shí),主節(jié)點(diǎn)能有效地將計(jì)算任務(wù)分發(fā)給不同的計(jì)算節(jié)點(diǎn),實(shí)現(xiàn)并行計(jì)算任務(wù)在整個(gè)集群節(jié)點(diǎn)上的負(fù)載均衡。\n[0063] (3)從HDFS讀取數(shù)據(jù)并創(chuàng)建索引。\n[0064] 為了創(chuàng)建查詢索引,將需要讀取存儲(chǔ)在HDFS中的監(jiān)測(cè)數(shù)據(jù)文件,并將文件中的每個(gè)監(jiān)測(cè)數(shù)據(jù)記錄逐行掃描,提取出需要建立索引的常用字段并導(dǎo)入HBase中。\n[0065] 該步驟包括:\n[0066] 1)對(duì)監(jiān)測(cè)數(shù)據(jù)逐行掃描。\n[0067] 每當(dāng)子節(jié)點(diǎn)接收到一個(gè)監(jiān)測(cè)數(shù)據(jù)文件索引創(chuàng)建任務(wù),程序就會(huì)新建一個(gè)數(shù)據(jù)流,將從HDFS中讀取的監(jiān)測(cè)文件數(shù)據(jù)讀取內(nèi)存中,同時(shí)在程序中記錄下該文件的名稱(設(shè)為fileName)。通過調(diào)用請(qǐng)求解析接口,從分布式存儲(chǔ)系統(tǒng)的元數(shù)據(jù)文件中提取元數(shù)據(jù):文件名、監(jiān)測(cè)數(shù)據(jù)文件中字段在監(jiān)測(cè)數(shù)據(jù)文件中的偏移量、監(jiān)測(cè)文件大小,將這些元數(shù)據(jù)傳遞給原始數(shù)據(jù)文件解析接口方法,通過原始數(shù)據(jù)文件解析接口可以對(duì)數(shù)據(jù)進(jìn)行處理。\n[0068] 2)對(duì)常用字段建表。\n[0069] 根據(jù)元數(shù)據(jù)對(duì)原始檢測(cè)數(shù)據(jù)文件進(jìn)行解析,提取監(jiān)測(cè)數(shù)據(jù)記錄,對(duì)提取出來的監(jiān)測(cè)數(shù)據(jù)記錄進(jìn)行逐行掃描,將從HDFS中讀取的指定fileName文件中的監(jiān)測(cè)數(shù)據(jù)記錄讀入內(nèi)存中。監(jiān)測(cè)數(shù)據(jù)記錄中有些字段對(duì)查找處理不起作用,因此,僅需將與設(shè)備狀態(tài)相關(guān)的電壓、電流等常用索引字段提取出來,并添加到索引數(shù)據(jù)列表中。\n[0070] 3)建立索引表。\n[0071] 每條監(jiān)測(cè)數(shù)據(jù)記錄有十幾個(gè)字段,而其中用于查詢的字段只有幾個(gè),因此只需要根據(jù)這幾個(gè)字段在HBase中建立幾張索引表。以下以按軌道電路電壓建立索引表為例。在索引表ConstructRailVoltageIndexItem中,每個(gè)索引表中的信息包括“索引字段(比如軌道電路電壓)+數(shù)據(jù)采集時(shí)間+記錄的存儲(chǔ)地址(即Index)”。\n[0072] (4)查詢監(jiān)測(cè)數(shù)據(jù)信息。\n[0073] 在HBase里,一張表的行鍵(rowkey)按照字節(jié)序順序排列。\n[0074] 這里對(duì)索引表的設(shè)計(jì)如下:rowkey為:查詢的字段。一個(gè)列簇:Offset:監(jiān)測(cè)數(shù)據(jù)記錄在監(jiān)測(cè)數(shù)據(jù)文件中的位置,即文件名加偏移量。這里的列名置為空,以便減小數(shù)據(jù)量,提高插入速度。\n[0075] 查詢步驟如下:\n[0076] 1)對(duì)于指定查詢條件,拼接成合理的查詢字節(jié)序(與rowkey),通過HBase的API能夠直接定位到該rowkey或者該rowkey的上一個(gè)rowkey,這樣就快速定位到滿足條件的監(jiān)測(cè)數(shù)據(jù)索引數(shù)據(jù)。\n[0077] 2)讀取后續(xù)的數(shù)據(jù),讀取滿足條件的監(jiān)測(cè)數(shù)據(jù)位置信息,依次查詢索引記錄,當(dāng)發(fā)現(xiàn)rowkey不滿足條件時(shí),則查詢索引完畢。\n[0078] 3)根據(jù)所獲得的所有滿足條件的監(jiān)測(cè)數(shù)據(jù)位置信息集合,從HDFS上的相應(yīng)監(jiān)測(cè)數(shù)據(jù)文件中讀取出所有的監(jiān)測(cè)數(shù)據(jù)記錄。\n[0079] 本例的開發(fā)和運(yùn)行環(huán)境,主要使用了HDFS、HBase以及Zookeeper。HDFS用于存儲(chǔ)原始監(jiān)測(cè)數(shù)據(jù),HBase用于存儲(chǔ)查詢索引,Zookeeper用于管理集群、調(diào)度索引創(chuàng)建任務(wù)。其中接口模塊的功能如下:\n[0080] (1)監(jiān)測(cè)數(shù)據(jù)文件檢測(cè)和索引創(chuàng)建任務(wù)調(diào)度程序。\n[0081] 主節(jié)點(diǎn)服務(wù)器負(fù)責(zé)監(jiān)測(cè)數(shù)據(jù)文件檢測(cè)和索引創(chuàng)建任務(wù)調(diào)度,其主要處理功能為:\n[0082] 1)檢測(cè)是否產(chǎn)生新的監(jiān)測(cè)數(shù)據(jù)文件;\n[0083] 2)將新監(jiān)測(cè)數(shù)據(jù)文件的文件名整合成索引創(chuàng)建請(qǐng)求,分發(fā)給子節(jié)點(diǎn)處理;\n[0084] 3)如果子節(jié)點(diǎn)失效,則將子節(jié)點(diǎn)上的索引創(chuàng)建請(qǐng)求轉(zhuǎn)移到其他子節(jié)點(diǎn)上。\n[0085] 主節(jié)點(diǎn)服務(wù)程序部分的功能如下:\n[0086] 1)某一時(shí)刻,只有一個(gè)服務(wù)程序提供服務(wù)。\n[0087] 2)解決單點(diǎn)故障。\n[0088] 通過Zookeeper解決了主節(jié)點(diǎn)的單點(diǎn)故障問題:如果正在掃描的主服務(wù)器節(jié)點(diǎn)失效了,則其他備用主節(jié)點(diǎn)接替它的工作,繼續(xù)掃描新文件;如果某一主節(jié)點(diǎn)失效了,則/APP/Server/TMP下面的文件目標(biāo)將變化,正在監(jiān)視該目錄的各個(gè)備用主節(jié)點(diǎn)將收到一個(gè)事件請(qǐng)求,然后重新選取新的主節(jié)點(diǎn);沒有被選上的備用主節(jié)點(diǎn)繼續(xù)等待新的事件的到來。\n[0089] 子節(jié)點(diǎn)部分監(jiān)測(cè)處理請(qǐng)求的功能如下:\n[0090] 1)基于Zookeeper檢測(cè)請(qǐng)求是否到來。\n[0091] 2)檢測(cè)本次請(qǐng)求是否為合理的請(qǐng)求。\n[0092] (2)讀取監(jiān)測(cè)數(shù)據(jù)和索引創(chuàng)建處理。\n[0093] 正對(duì)接受的索引創(chuàng)建任務(wù)請(qǐng)求,子節(jié)點(diǎn)讀取HDFS的監(jiān)測(cè)數(shù)據(jù),具體功能如下:\n[0094] 1)讀取HDFS文件。\n[0095] 2)處理HDFS文件里的數(shù)據(jù)并插入HBase索引表中。\n[0096] 對(duì)監(jiān)測(cè)數(shù)據(jù)掃描并創(chuàng)建索引的功能如下:\n[0097] 生成索引數(shù)據(jù),并插入HBase里。\n[0098] 說明:索引表的每行包含如下數(shù)據(jù):\n[0099] 1)rowkey:格式為rail_voltage(8個(gè)字節(jié))+sample_time_s(4個(gè)字節(jié))+index(4個(gè)字節(jié))。\n[0100] 2)列簇:Offset,列簇里包含一列(該列未命名)。格式為:文件名ID(8個(gè)字節(jié))+數(shù)據(jù)在文件里的偏移量(8個(gè)字節(jié))。\n[0101] (3)監(jiān)測(cè)數(shù)據(jù)查詢。\n[0102] 監(jiān)測(cè)數(shù)據(jù)查詢的主要功能如下:\n[0103] 查詢HBase里的索引表。\n[0104] 說明:\n[0105] (1)通過行鍵值生成接口將監(jiān)測(cè)數(shù)據(jù)字段(如,軌道電路電壓)和時(shí)間轉(zhuǎn)化為與索引表的rowKey格式相同的字節(jié)序,例如,軌道電路電壓+數(shù)據(jù)采集時(shí)間。通過數(shù)據(jù)文件掃描接口找到rowkey與該字節(jié)序相同的一行,如果不存在則指向前一行。\n[0106] (2)設(shè)置查詢指向符合條件的行。\n[0107] (3)向后遍歷數(shù)據(jù),如果數(shù)據(jù)不滿足查詢條件(軌道電路電壓和采樣時(shí)間),則查詢完畢。\n[0108] (4)在本例里,索引的格式是:軌道電路電壓+采樣時(shí)間+index。如果號(hào)碼超過了,則直接退出;如果軌道電路電壓符合條件,則檢測(cè)時(shí)間是否符合條件。
法律信息
- 2017-07-28
- 2014-02-12
實(shí)質(zhì)審查的生效
IPC(主分類): G06F 17/30
專利申請(qǐng)?zhí)? 201310395393.6
申請(qǐng)日: 2013.09.03
- 2014-01-08
引用專利(該專利引用了哪些專利)
序號(hào) | 公開(公告)號(hào) | 公開(公告)日 | 申請(qǐng)日 | 專利名稱 | 申請(qǐng)人 |
1
| |
2010-12-15
|
2010-07-27
| | |
2
| |
2011-01-19
|
2010-09-10
| | |
3
| |
2012-06-20
|
2011-11-17
| | |
4
| |
2011-05-18
|
2010-12-28
| | |
被引用專利(該專利被哪些專利引用)
序號(hào) | 公開(公告)號(hào) | 公開(公告)日 | 申請(qǐng)日 | 專利名稱 | 申請(qǐng)人 | 該專利沒有被任何外部專利所引用! |