基于實時采集數(shù)據(jù)特征的數(shù)據(jù)格式化和文件存儲方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及鐵路信號系統(tǒng),尤其是涉及一種基于實時采集數(shù)據(jù)特征的數(shù)據(jù)格式化和文件存儲方法,通過該方法統(tǒng)一了各類采集數(shù)據(jù)的存儲和訪問方式,減少存儲文件數(shù)量和存儲空間消耗,增加采集數(shù)據(jù)存儲的歷史時間長度,提高數(shù)據(jù)存儲和查詢性能,從而提升系統(tǒng)的整體可用性。
【背景技術(shù)】
[0002]采集數(shù)據(jù)存儲是監(jiān)測類系統(tǒng)的基礎(chǔ)功能,傳統(tǒng)的采集數(shù)據(jù)存儲方法對各種采集數(shù)據(jù)采用不同的處理方式,導(dǎo)致采集數(shù)據(jù)訪問方式不統(tǒng)一,增加了系統(tǒng)上層開發(fā)的難度和成本;另外傳統(tǒng)數(shù)據(jù)存儲方法針對高頻度大量采集數(shù)據(jù)采用按時間或數(shù)據(jù)標識劃分文件的方式,使數(shù)據(jù)文件數(shù)量過多、磁盤碎片不斷增加最終導(dǎo)致系統(tǒng)性能下降;同時傳統(tǒng)數(shù)據(jù)存儲方法采用無差別全記錄方式,即使在采集數(shù)據(jù)沒有變化的情況時也花費大量存儲空間,導(dǎo)致無法長時間存儲歷史數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種用于鐵路信號集中監(jiān)測系統(tǒng)、地鐵維護支持系統(tǒng)、鐵路信號綜合運維系統(tǒng)的基于實時采集數(shù)據(jù)特征的數(shù)據(jù)格式化和文件存儲方法。
[0004]本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):
[0005]—種基于實時采集數(shù)據(jù)特征的數(shù)據(jù)格式化和文件存儲方法,其特征在于,包括以下步驟:
[0006](I)基于采集數(shù)據(jù)特征建立統(tǒng)一的數(shù)據(jù)存儲規(guī)范;
[0007](2)基于時間分段方式建立采集數(shù)據(jù)格式化機制;
[0008](3)基于文件分塊和多級索引建立采集數(shù)據(jù)讀寫管理機制;
[0009](4)建立采集數(shù)據(jù)讀寫的事務(wù)機制;
[0010](5)統(tǒng)一各種采集數(shù)據(jù)的數(shù)據(jù)訪問接口。
[0011]所述的基于采集數(shù)據(jù)特征建立統(tǒng)一的數(shù)據(jù)存儲規(guī)范具體為:
[0012]根據(jù)采集數(shù)據(jù)的基本特征,統(tǒng)一各種采集數(shù)據(jù)的存儲格式,同時定義連續(xù)采集數(shù)據(jù)記錄之間的關(guān)聯(lián)關(guān)系和存儲方式。
[0013]所述的根據(jù)采集數(shù)據(jù)的基本特征,統(tǒng)一各種采集數(shù)據(jù)的存儲格式,同時定義連續(xù)采集數(shù)據(jù)記錄之間的關(guān)聯(lián)關(guān)系和存儲方式具體為從數(shù)據(jù)時間、數(shù)據(jù)內(nèi)容、數(shù)據(jù)關(guān)聯(lián)的角度對采集數(shù)據(jù)格式進行統(tǒng)一定義:
[0014]101)定義采集數(shù)據(jù)記錄的時間格式:采集數(shù)據(jù)記錄的時間精度到毫秒等級,并對秒時間和毫秒偏移時間分字段記錄,以支持數(shù)據(jù)記錄不同時間精度查詢要求;
[0015]102)定義采集數(shù)據(jù)記錄的內(nèi)容格式:采集數(shù)據(jù)存儲底層只需記錄采集數(shù)據(jù)的二進制內(nèi)容和數(shù)據(jù)長度;
[0016]103)定義連續(xù)采集數(shù)據(jù)記錄間關(guān)聯(lián):當連續(xù)采集數(shù)據(jù)記錄間存在關(guān)聯(lián)時,根據(jù)比較相鄰前后記錄的變化情況,定義后置記錄的具體存儲內(nèi)容。
[0017]所述的基于時間分段方式建立采集數(shù)據(jù)格式化機制具體為:
[0018]根據(jù)采集數(shù)據(jù)存儲規(guī)范,將時間分段內(nèi)的采集數(shù)據(jù)存儲內(nèi)容轉(zhuǎn)換為統(tǒng)一的二進制存儲記錄,同時根據(jù)連續(xù)采集數(shù)據(jù)記錄之間的關(guān)聯(lián)關(guān)系進行數(shù)據(jù)壓縮,有效減少數(shù)據(jù)存儲空間。
[0019]所述的將時間分段內(nèi)的采集數(shù)據(jù)存儲內(nèi)容轉(zhuǎn)換為統(tǒng)一的二進制存儲記錄,其轉(zhuǎn)換時具體場景為:
[0020]201)時間段內(nèi)僅有一條采集數(shù)據(jù)記錄,按規(guī)范將該記錄時間和數(shù)據(jù)內(nèi)容添加到數(shù)據(jù)存儲單元,并將數(shù)據(jù)存儲單元提交存儲;
[0021]202)時間段內(nèi)存在多條采集數(shù)據(jù)記錄,如數(shù)據(jù)記錄間無關(guān)聯(lián),則將每條記錄的時間和數(shù)據(jù)內(nèi)容添加到數(shù)據(jù)存儲單元,并將數(shù)據(jù)存儲單元提交存儲;
[0022]203)時間段內(nèi)存在多條采集數(shù)據(jù)記錄,如數(shù)據(jù)記錄間存在關(guān)聯(lián),則根據(jù)數(shù)據(jù)關(guān)聯(lián)情況對后置記錄進行壓縮轉(zhuǎn)換后將記錄的時間和轉(zhuǎn)換后數(shù)據(jù)內(nèi)容添加到數(shù)據(jù)存儲單元,并將數(shù)據(jù)存儲單元提交存儲。
[0023]所述的數(shù)據(jù)存儲單元為采集數(shù)據(jù)存儲時的基本元素,以整體記錄方式存儲到數(shù)據(jù)文件中。
[0024]所述的基于文件分塊和多級索引建立采集數(shù)據(jù)讀寫管理機制為:
[0025]對采集數(shù)據(jù)文件的存儲區(qū)域?qū)嵤┓謮K管理,同時在同一文件內(nèi)對本文件存儲的采集數(shù)據(jù)按類型和采集時間建立索引,實現(xiàn)靈活的數(shù)據(jù)存儲、數(shù)據(jù)查詢、數(shù)據(jù)清除、空間擴展機制。
[0026]所述的實現(xiàn)靈活的數(shù)據(jù)存儲、數(shù)據(jù)查詢、數(shù)據(jù)清除、空間擴展機制,具體包括:
[0027]301)文件主體數(shù)據(jù)存儲區(qū)域劃分為相同大小的多個文件塊并以“鏈式”結(jié)構(gòu)組織,文件管理數(shù)據(jù)存儲區(qū)域記錄文件塊的使用信息;
[0028]302)對數(shù)據(jù)存儲單元按時間和存儲類型建立索引,索引記錄中包含數(shù)據(jù)存儲單元的記錄時間、記錄大小、所使用的文件塊標識、文件塊內(nèi)的偏移位置;
[0029]303)數(shù)據(jù)存儲時基于文件塊申請機制,在當前分配的數(shù)據(jù)文件塊的指定位置存儲數(shù)據(jù)存儲單元內(nèi)容并在當前分配的索引文件塊的指定位置存儲索引內(nèi)容;數(shù)據(jù)查詢時基于索引信息,根據(jù)查詢時間定位數(shù)據(jù)存儲單元所在數(shù)據(jù)文件塊并快速查詢數(shù)據(jù)內(nèi)容;數(shù)據(jù)清除時基于文件塊回收機制,根據(jù)索引信息將不再使用的數(shù)據(jù)文件塊回收并可重新投入使用;
[0030]304)文件塊數(shù)目不足時,基于文件塊擴展機制對文件進行在線擴展,新擴展區(qū)域按既有文件塊大小繼續(xù)劃分文件塊并進行統(tǒng)一管理。
[0031 ]所述的建立采集數(shù)據(jù)讀寫的事務(wù)機制具體為:
[0032]數(shù)據(jù)讀寫過程中在內(nèi)存里統(tǒng)一維護涉及的關(guān)鍵數(shù)據(jù),并實現(xiàn)關(guān)鍵數(shù)據(jù)寫入到磁盤的原子性,保證整個數(shù)據(jù)讀寫過程的一致性和持續(xù)性。
[0033]所述的統(tǒng)一各種采集數(shù)據(jù)的數(shù)據(jù)訪問接口,包括數(shù)據(jù)存儲接口、按時間段數(shù)據(jù)查詢接口、按時間點數(shù)據(jù)查詢接口、按時間點數(shù)據(jù)清除接口,形成規(guī)范化的外部訪問方式。
[0034]所述的采集數(shù)據(jù)包括開關(guān)量采集數(shù)據(jù)、多狀態(tài)量采集數(shù)據(jù)、模擬量采集數(shù)據(jù)、曲線類采集數(shù)據(jù)、道岔缺口圖像數(shù)據(jù)。
[0035]與現(xiàn)有技術(shù)相比,本發(fā)明具有統(tǒng)一各種采集數(shù)據(jù)的存取方式;并通過減少存儲文件數(shù)量、降低存儲空間開銷、減少系統(tǒng)1消耗等措施提高數(shù)據(jù)存取的性能;同時增加了歷史數(shù)據(jù)保存的時間長度,從而提升系統(tǒng)的整體可用性。
【附圖說明】
[0036]圖1是本發(fā)明中對于采集數(shù)據(jù)格式化的說明示意圖;
[0037]圖2是本發(fā)明中對于文件分塊和多級索引的說明示意圖。
【具體實施方式】
[0038]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明的一部分實施例,而不是全部實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都應(yīng)屬于本發(fā)明保護的范圍。
[0039]1、基于采集數(shù)據(jù)特征建立統(tǒng)一的數(shù)據(jù)存儲規(guī)范
[0040]建立統(tǒng)一的數(shù)據(jù)存儲規(guī)范是采集數(shù)據(jù)統(tǒng)一存儲方法的基礎(chǔ)。數(shù)據(jù)存儲規(guī)范中屏蔽各類采集數(shù)據(jù)的業(yè)務(wù)差別,從數(shù)據(jù)時間、數(shù)據(jù)內(nèi)容、數(shù)據(jù)關(guān)聯(lián)等角度對采集數(shù)據(jù)格式進行統(tǒng)一定義:
[0041](I)定義采集數(shù)據(jù)記錄的時間格式。采集數(shù)據(jù)記錄的時間精度到毫秒等級,并對秒時間和毫秒偏移時間分字段記錄,以支持數(shù)據(jù)記錄不同時間精度查詢要求。
[0042](2)定義采集數(shù)據(jù)記錄的內(nèi)容格式。采集數(shù)據(jù)存儲底層無需關(guān)心具體數(shù)據(jù)的業(yè)務(wù)含義,只需記錄采集數(shù)據(jù)的二進制內(nèi)容和數(shù)據(jù)長度。
[0043](3)定義連續(xù)采集數(shù)據(jù)記錄間關(guān)聯(lián)。當連續(xù)采集數(shù)據(jù)記錄間存在關(guān)聯(lián)時,根據(jù)比較相鄰前后記錄的變化情況,定義后置記錄的具體存儲內(nèi)容。
[0044]2、基于時間分段方式實現(xiàn)采集數(shù)據(jù)格式化機制
[0045]根據(jù)前述的統(tǒng)一的數(shù)據(jù)存儲和數(shù)據(jù)壓縮規(guī)范,將實時采集數(shù)據(jù)按時間分段并轉(zhuǎn)換為符合規(guī)范的數(shù)據(jù)存儲單元。轉(zhuǎn)換時具體場景如下:
[0046](I)時間段內(nèi)僅有一條采集數(shù)據(jù)記錄,按規(guī)范將該記錄時間和數(shù)據(jù)內(nèi)容添加到數(shù)據(jù)存儲單元,并將數(shù)據(jù)存儲單元提交存儲。
[0047](2)時間段內(nèi)存在多條采集數(shù)據(jù)記錄,如數(shù)據(jù)記錄間無關(guān)聯(lián),則將每條記錄的時間和數(shù)據(jù)內(nèi)容添加到數(shù)據(jù)存儲單元,并將數(shù)據(jù)存儲單元提交存儲。
[0048](3)時間段內(nèi)存在多條采集數(shù)據(jù)記錄,如數(shù)據(jù)記錄間存在關(guān)聯(lián),則根據(jù)數(shù)據(jù)關(guān)聯(lián)情況對后置記錄進行壓縮轉(zhuǎn)換后將記錄的時間和轉(zhuǎn)換后數(shù)據(jù)內(nèi)容添加到數(shù)據(jù)存儲單元,并將數(shù)據(jù)存儲單元提交存儲。
[0049]數(shù)據(jù)存儲單元為采集數(shù)據(jù)存儲時的基本元素,以整體記錄方式存儲到數(shù)據(jù)文件中。數(shù)據(jù)存儲單元存儲時其關(guān)鍵信息也做持久化處理,包括:
[0050](I)數(shù)據(jù)存儲單元內(nèi)數(shù)據(jù)記錄條數(shù)。
[0051 ] (2)數(shù)據(jù)存儲單元內(nèi)首數(shù)據(jù)記錄時間。
[0052 ] (3)數(shù)據(jù)存儲單元整體數(shù)據(jù)長度。
[0053](4)數(shù)據(jù)存儲單元內(nèi)存在多條記錄時,每條記錄的時間和數(shù)據(jù)長度。
[0054]3、基于文件分塊和多級索引實現(xiàn)采集數(shù)據(jù)讀寫管理機制