一種海量測量數(shù)據(jù)準(zhǔn)實(shí)時(shí)入庫方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種海量測量數(shù)據(jù)準(zhǔn)實(shí)時(shí)入庫方法,屬于航天飛行器測量系統(tǒng)的信息 化、集成化管理技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 測量系統(tǒng)是航天飛行器不可缺少的重要組成部分,作為一種工程應(yīng)用型的信息系 統(tǒng),其包括信息的采集、傳送與處理三大環(huán)節(jié),其中遙測參數(shù)裝訂、遙測數(shù)據(jù)實(shí)時(shí)處理和管 理是處理環(huán)節(jié)中的關(guān)鍵工作之一。近年來,隨著測量系統(tǒng)IOMbps高碼率數(shù)據(jù)傳輸技術(shù)和控 制系統(tǒng)1553B總線數(shù)據(jù)傳輸技術(shù)的應(yīng)用,遙測測試參數(shù)翻了兩番,達(dá)到5000個(gè),且測量數(shù)據(jù) 類型多種多樣,包括緩變參數(shù)、速變參數(shù)、總線數(shù)據(jù)、計(jì)算機(jī)字、平臺(tái)高串?dāng)?shù)據(jù)、速率陀螺數(shù) 據(jù)、GPS數(shù)據(jù)、圖像數(shù)據(jù)以及位控指令等多種數(shù)據(jù)類型。測量系統(tǒng)每次試驗(yàn)約30分鐘,產(chǎn)生 的數(shù)據(jù)量達(dá)到IOGb左右。傳統(tǒng)的針對2Mbps遙測數(shù)據(jù)的實(shí)時(shí)處理與存儲(chǔ)軟件由于采用內(nèi)存 緩存、SQL語句插入方式,已無法滿足實(shí)時(shí)處理、存儲(chǔ)要求要求。隨著參數(shù)量的成倍增加,采 用人工裝訂參數(shù)的方式一個(gè)人至少需要兩周時(shí)間才能完成全部裝訂工作,而且極易出現(xiàn)漏 裝、錯(cuò)裝問題。與此同時(shí),測量系統(tǒng)的參數(shù)、數(shù)據(jù)分布在各類信息系統(tǒng)中,相互間沒有接口, 形成了信息孤島,無法實(shí)現(xiàn)對參數(shù)、數(shù)據(jù)的集中管理和有效的數(shù)據(jù)分析。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的上述缺陷,提供一種海量測量數(shù)據(jù)準(zhǔn)實(shí)時(shí)入庫 方法,該方法顯著提高了入庫效率,實(shí)現(xiàn)了測量系統(tǒng)海量數(shù)據(jù)的快速、準(zhǔn)確、可靠入庫,有助 于測量信息的集成統(tǒng)一管理。
[0004] 本發(fā)明的上述目的主要是通過如下技術(shù)方案予以實(shí)現(xiàn)的:
[0005] 一種海量測量數(shù)據(jù)準(zhǔn)實(shí)時(shí)入庫方法,通過海量測量數(shù)據(jù)準(zhǔn)實(shí)時(shí)入庫系統(tǒng)實(shí)現(xiàn),所 述海量測量數(shù)據(jù)準(zhǔn)實(shí)時(shí)入庫系統(tǒng)包括數(shù)據(jù)服務(wù)子模塊、數(shù)據(jù)處理子模塊、參數(shù)定義子模塊、 數(shù)據(jù)庫表映射子模塊、網(wǎng)絡(luò)通信子模塊、IP配置子模塊、數(shù)據(jù)庫參數(shù)配置子模塊、緩沖文件 庫和Oracle數(shù)據(jù)庫,具體實(shí)現(xiàn)方法如下:
[0006] 步驟(一)、數(shù)據(jù)處理子模塊接收外部用戶輸入的試驗(yàn)名稱,根據(jù)試驗(yàn)名稱調(diào)用參 數(shù)定義子模塊獲取所述試驗(yàn)名稱對應(yīng)的試驗(yàn)參數(shù)信息;
[0007] 步驟(二)數(shù)據(jù)處理子模塊調(diào)用數(shù)據(jù)庫表映射子模塊,在數(shù)據(jù)庫表映射子模塊中 建立所述試驗(yàn)參數(shù)信息的試驗(yàn)記錄,并生成試驗(yàn)數(shù)據(jù)結(jié)果表;
[0008] 步驟(三)數(shù)據(jù)處理子模塊調(diào)用IP配置子模塊中的IP配置信息,并將所述IP配 置信息輸出給網(wǎng)絡(luò)通信子模塊,網(wǎng)絡(luò)通信子模塊建立數(shù)據(jù)處理子模塊與數(shù)據(jù)服務(wù)子模塊的 TCP連接;
[0009] 步驟(四)、數(shù)據(jù)服務(wù)子模塊調(diào)用數(shù)據(jù)庫參數(shù)配置子模塊中的數(shù)據(jù)庫配置信息, 建立數(shù)據(jù)庫服務(wù)子模塊與Oracle數(shù)據(jù)庫之間的連接,從數(shù)據(jù)庫表映射子模塊中讀取步驟 (二)中建立的試驗(yàn)記錄和生成的試驗(yàn)數(shù)據(jù)結(jié)果表;
[0010] 步驟(五)數(shù)據(jù)處理子模塊從外部網(wǎng)路實(shí)時(shí)接收遙測原碼數(shù)據(jù),根據(jù)步驟(一) 中獲取的試驗(yàn)參數(shù)信息對遙測原碼數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,即將遙測原碼數(shù)據(jù)中的十六進(jìn)制數(shù) 據(jù)處理為十進(jìn)制的物理量數(shù)據(jù);
[0011] 步驟(六)數(shù)據(jù)處理子模塊將步驟(五)中得到的十進(jìn)制的物理量數(shù)據(jù)進(jìn)行打包 后,通過步驟(三)中建立的TCP連接發(fā)送到數(shù)據(jù)服務(wù)子模塊;
[0012] 步驟(七)數(shù)據(jù)服務(wù)子模塊根據(jù)步驟(四)中讀取的所述試驗(yàn)記錄和試驗(yàn)數(shù)據(jù)結(jié) 果表,將步驟(六)中收到的十進(jìn)制物理量數(shù)據(jù)包中的數(shù)據(jù)轉(zhuǎn)換為Oracle SQL*Loader識(shí) 別的數(shù)據(jù)文件和控制文件,并寫入緩沖文件庫中;
[0013] 步驟(八)當(dāng)數(shù)據(jù)服務(wù)子模塊從數(shù)據(jù)處理子模塊接收到的數(shù)據(jù)包個(gè)數(shù)達(dá)到設(shè)定閾 值時(shí),調(diào)用Oracle SQL*Loader命令行工具從緩沖文件庫中讀取所述數(shù)據(jù)文件和控制文件 執(zhí)行數(shù)據(jù)入庫,即將所述數(shù)據(jù)文件和控制文件中的數(shù)據(jù)存儲(chǔ)到Oracle數(shù)據(jù)庫中;
[0014] 步驟(九)重復(fù)步驟(五)-步驟(八),實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)入庫。
[0015] 在上述海量測量數(shù)據(jù)準(zhǔn)實(shí)時(shí)入庫方法中,步驟(二)中生成的試驗(yàn)數(shù)據(jù)結(jié)果表包 括η個(gè)數(shù)據(jù)表,每個(gè)數(shù)據(jù)表中包括m個(gè)試驗(yàn)參數(shù),其中每個(gè)數(shù)據(jù)表中存儲(chǔ)同一系統(tǒng)中同一類 型的試驗(yàn)參數(shù),其中n、m均為正整數(shù)。
[0016] 在上述海量測量數(shù)據(jù)準(zhǔn)實(shí)時(shí)入庫方法中,步驟(五)中的十進(jìn)制數(shù)據(jù)包括int、 float形式的電壓、電流、溫度、壓力和轉(zhuǎn)速數(shù)據(jù)。
[0017] 在上述海量測量數(shù)據(jù)準(zhǔn)實(shí)時(shí)入庫方法中,步驟(八)中數(shù)據(jù)服務(wù)子模塊將數(shù)據(jù)文 件和控制文件中的數(shù)據(jù)存儲(chǔ)到Oracle數(shù)據(jù)庫中的同時(shí),實(shí)時(shí)執(zhí)行步驟(七),即將收到的十 進(jìn)制物理量數(shù)據(jù)轉(zhuǎn)換為Oracle SQL*Loader識(shí)別的數(shù)據(jù)文件和控制文件,并寫入緩沖文件 庫中。
[0018] 在上述海量測量數(shù)據(jù)準(zhǔn)實(shí)時(shí)入庫方法中,步驟(八)中的設(shè)定閾值為3000-10000。
[0019] 本發(fā)明與現(xiàn)有技術(shù)相比具有如下有益效果:
[0020] (1)本發(fā)明針對海量數(shù)據(jù)入庫的難題,創(chuàng)新設(shè)計(jì)了海量數(shù)據(jù)入庫系統(tǒng),通過系統(tǒng) 中各個(gè)模塊的并行協(xié)同工作,并采用批量入庫的模式,實(shí)現(xiàn)了海量遙測數(shù)據(jù)的實(shí)時(shí)處理、存 儲(chǔ),該方法顯著提高了入庫效率,實(shí)現(xiàn)了測量系統(tǒng)海量數(shù)據(jù)的快速、準(zhǔn)確、可靠入庫,有助于 測量信息的集成統(tǒng)一管理。
[0021] (2)、本發(fā)明科學(xué)合理的設(shè)定了批量入庫閾值,準(zhǔn)確判斷數(shù)據(jù)入庫時(shí)機(jī),提高了 硬件資源的使用率,進(jìn)一步提高了入庫效率和可靠性;大量試驗(yàn)表明本發(fā)明設(shè)定閾值為 3000-10000時(shí),性能最優(yōu),當(dāng)設(shè)定閾值小于3000時(shí),閾值越小調(diào)用Oracle SQL*Loader的頻 率越高,導(dǎo)致入庫性能下降,當(dāng)設(shè)定閾值大于10000時(shí),對Oracle SQL*Loader的每次調(diào)用 執(zhí)行時(shí)間延長,明顯影響入庫性能。
【附圖說明】
[0022] 圖1為本發(fā)明海量測量數(shù)據(jù)入庫系統(tǒng)結(jié)構(gòu)示意圖;
[0023] 圖2為本發(fā)明海量測量數(shù)據(jù)入庫原理圖;
[0024] 圖3為本發(fā)明試驗(yàn)數(shù)據(jù)結(jié)果表形式示意圖。
【具體實(shí)施方式】
[0025] 下面結(jié)合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)的描述:
[0026] 如圖1所示為本發(fā)明海量測量數(shù)據(jù)入庫系統(tǒng)結(jié)構(gòu)示意圖,本發(fā)明海量測量數(shù)據(jù) 準(zhǔn)實(shí)時(shí)入庫方法通過海量測量數(shù)據(jù)準(zhǔn)實(shí)時(shí)入庫系統(tǒng)實(shí)現(xiàn),由圖1可知本發(fā)明海量測量數(shù) 據(jù)準(zhǔn)實(shí)時(shí)入庫系統(tǒng)包括數(shù)據(jù)服務(wù)子模塊(⑶IgService)、數(shù)據(jù)處理子模塊(⑶IgClient)、 參數(shù)定義子模塊(ParamSysNode)、數(shù)據(jù)庫表映射子模塊(DataTable)、網(wǎng)絡(luò)通信子 模塊(CMySocketComm)、IP配置子模塊(CDlgIPSetting)、數(shù)據(jù)庫參數(shù)配置子模塊 (CDlgDBSetting)、緩沖文件庫和Oracle數(shù)據(jù)庫。
[0027] 如圖2所示為本發(fā)明海量測量數(shù)據(jù)入庫原理圖,本發(fā)明海量測量數(shù)據(jù)入庫的具體 實(shí)現(xiàn)方法如下:
[0028] 步驟(一)、數(shù)據(jù)處理子模塊接收外部用戶輸入的試驗(yàn)名稱,根據(jù)該試驗(yàn)名稱調(diào)用 參數(shù)定義子模塊獲取該試驗(yàn)名稱對應(yīng)的