[發(fā)明專利]一種面向異構(gòu)數(shù)據(jù)庫的海量組播數(shù)據(jù)入庫實現(xiàn)方法有效
| 申請?zhí)枺?/td> | 201310488096.6 | 申請日: | 2013-10-17 |
| 公開(公告)號: | CN103559217A | 公開(公告)日: | 2014-02-05 |
| 發(fā)明(設(shè)計)人: | 劉平原;高世偉;呂江花;馬世龍 | 申請(專利權(quán))人: | 北京航空航天大學 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京永創(chuàng)新實專利事務(wù)所 11121 | 代理人: | 祗志潔 |
| 地址: | 100191*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 面向 數(shù)據(jù)庫 海量 數(shù)據(jù) 入庫 實現(xiàn) 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于計算機數(shù)據(jù)采集領(lǐng)域,具體涉及一種面向異構(gòu)數(shù)據(jù)庫的海量組播數(shù)據(jù)入庫實現(xiàn)方法。
背景技術(shù)
在大型系統(tǒng)多型號批量并行測試時,面臨任務(wù)重、型號多和大量重復(fù)測試等情況,測試產(chǎn)生的海量測試數(shù)據(jù)需要實時地接收并保存到各型號的數(shù)據(jù)庫中,這種海量數(shù)據(jù)的處理具有實時性強、數(shù)據(jù)量大、數(shù)據(jù)格式復(fù)雜和入庫壓力大的特點。
通常組播數(shù)據(jù)的入庫按數(shù)據(jù)緩存方式的不同,有基于共享緩沖區(qū)和基于數(shù)據(jù)文件兩種入庫方式。基于共享緩沖區(qū)的入庫,一般采用“生產(chǎn)者-消費者”模型或其變型,“生產(chǎn)者”將接收到的組播數(shù)據(jù)存入緩沖內(nèi)存,“消費者”訪問共享內(nèi)存,取出數(shù)據(jù)解析后存入數(shù)據(jù)庫。基于數(shù)據(jù)文件的入庫,采用多線程異步操作的方式完成報文接收、解析和入庫,接收線程監(jiān)聽網(wǎng)絡(luò)端口,接收組播報文,按一定周期將報文寫入緩存數(shù)據(jù)文件,生成原始數(shù)據(jù)文件;解析線程解析原始數(shù)據(jù)文件,生成入庫準備文件;入庫線程使用SQL*Loader技術(shù)將入庫準備文件錄入數(shù)據(jù)庫。
在大型系統(tǒng)多型號批量并行測試中,數(shù)據(jù)庫有多個且異構(gòu),在這種情況下以上兩種入庫方式各有不足:
第一種基于共享緩沖區(qū)的入庫,存在的缺陷是:緩存大小不易確定,容易溢出,特別是在大數(shù)據(jù)量時,系統(tǒng)極不穩(wěn)定,無法保證數(shù)據(jù)的完整性和安全性;共享緩沖區(qū)的讀寫是同步操作,效率低;數(shù)據(jù)入庫效率不如采用SQL*Loader時效率高,在數(shù)據(jù)庫是多個且異構(gòu)的情況下,無法保證入庫速率。
第二種基于數(shù)據(jù)文件的入庫方式,雖然能保證數(shù)據(jù)的接收效率、穩(wěn)定性和完整性,采用SQL*Loader技術(shù)錄入數(shù)據(jù),在入庫效率也有所提升,但是在面對海量數(shù)據(jù)的解析和入庫,特別是多個異構(gòu)數(shù)據(jù)庫的入庫時,無法保證高效性。
發(fā)明內(nèi)容
針對大型系統(tǒng)多型號批量并行測試時,產(chǎn)生的海量組播數(shù)據(jù)需要錄入多個異構(gòu)數(shù)據(jù)庫的情況,本發(fā)明提出一種面向異構(gòu)數(shù)據(jù)庫的海量組播數(shù)據(jù)入庫實現(xiàn)方法。通過兩級緩存數(shù)據(jù)文件對組播數(shù)據(jù)進行存儲和分類,通過多線程入庫的方式保證每個型號的數(shù)據(jù)的解析和入庫都有專屬入庫線程完成,在提高了數(shù)據(jù)處理效率的同時,解決了多個異構(gòu)數(shù)據(jù)庫入庫的問題。
本發(fā)明提供的一種面向異構(gòu)數(shù)據(jù)庫的海量組播數(shù)據(jù)入庫實現(xiàn)方法,包括以下步驟:
步驟一:啟動組播報文接收線程,開始接收組播報文;
步驟二:對接收到的組播報文首先進行完整性判斷,如果不完整,繼續(xù)接收;如果完整,則對報文的類型進行檢驗,如果不是所需要的類型,丟棄該報文,繼續(xù)接收新的組播報文;如果是所需的報文,將報文存入當前待寫入的一級緩存數(shù)據(jù)文件中;當接收組播報文的時間達到接收周期或接收的組播報文數(shù)量達到指定數(shù)量時,記錄已完成接收的一級數(shù)據(jù)文件數(shù),關(guān)閉并重命名當前待寫入的一級緩存數(shù)據(jù)文件,同時生成新的待寫入的一級緩存數(shù)據(jù)文件;
步驟三:判斷是否有需要解析的一級緩存數(shù)據(jù)文件,若有,讀取待解析一級緩存數(shù)據(jù)文件中的組播報文,開始預(yù)解析;否則,繼續(xù)等待;
預(yù)解析的方法是:解析組播報文報頭中的信息來源字段,獲取報文所屬的型號,判斷該型號對應(yīng)的信息是否已在型號隊列中,如果不在型號隊列中,則獲取該型號的信息并添加到型號隊列中,并創(chuàng)建該型號對應(yīng)的二級緩存數(shù)據(jù)文件存儲目錄及相關(guān)數(shù)據(jù)文件和控制文件,將組播報文寫入二級緩存數(shù)據(jù)文件,同時調(diào)用線程池,啟動該型號入庫線程;如果在型號隊列中,則直接將組播報文寫入對應(yīng)二級緩存數(shù)據(jù)文件中;
當一個一級緩存數(shù)據(jù)文件預(yù)解析完成后,記錄已完成解析的一級緩存數(shù)據(jù)文件數(shù),關(guān)閉并重命名當前所有待寫入二級緩存數(shù)據(jù)文件,更新型號隊列中各型號對應(yīng)的已完成保存二級緩存數(shù)據(jù)文件數(shù),同時生成新的待寫入二級緩存數(shù)據(jù)文件,等待下一次預(yù)解析時存儲數(shù)據(jù);
步驟四:各型號入庫線程判斷對應(yīng)型號的已完成保存二級緩存數(shù)據(jù)文件數(shù)是否大于已入庫二級緩存數(shù)據(jù)文件數(shù),如果否,說明沒有新的需要入庫的數(shù)據(jù),繼續(xù)等待;如果是,根據(jù)已入庫二級緩存數(shù)據(jù)文件數(shù)獲取下一個待入庫二級緩存數(shù)據(jù)文件,解析該二級緩存數(shù)據(jù)文件,將解析后的數(shù)據(jù)保存至對應(yīng)型號的入庫準備數(shù)據(jù)文件中,解析完成后,調(diào)用數(shù)據(jù)加載工具SQL*Loader和入庫控制文件將入庫準備數(shù)據(jù)文件中的數(shù)據(jù)錄入對應(yīng)數(shù)據(jù)庫,同時更新型號隊列中對應(yīng)的已入庫二級緩存數(shù)據(jù)文件數(shù)。
所述的步驟二中,當前待寫入的一級緩存數(shù)據(jù)文件唯一且具有固定文件名;處于已完成寫入狀態(tài)的一級緩存數(shù)據(jù)文件的命名與已完成接收的一級緩存數(shù)據(jù)文件數(shù)相關(guān)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京航空航天大學,未經(jīng)北京航空航天大學許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310488096.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設(shè)備及存儲介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置
- 一種數(shù)據(jù)庫海量數(shù)據(jù)比對的方法
- 基于云計算的海量數(shù)據(jù)訪問處理系統(tǒng)
- 一種實現(xiàn)海量數(shù)據(jù)離線分析的方法
- 一種海量矢量切片數(shù)據(jù)云存儲方法及系統(tǒng)
- 一種多源海量數(shù)據(jù)處理系統(tǒng)及方法
- 快速實現(xiàn)海量數(shù)據(jù)準實時全量統(tǒng)計的方法、裝置及系統(tǒng)
- 一種海量數(shù)據(jù)分析系統(tǒng)及方法
- 在線繪制地圖海量線的方法
- 一種海量點數(shù)據(jù)聚合渲染方法、裝置、設(shè)備及存儲介質(zhì)
- 一種海量不確定XML數(shù)據(jù)存儲方法
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置





