[發(fā)明專利]一種可實現(xiàn)數(shù)據(jù)快速裝載的數(shù)據(jù)同步方法和裝置在審
| 申請?zhí)枺?/td> | 201910981942.5 | 申請日: | 2019-10-16 |
| 公開(公告)號: | CN111026768A | 公開(公告)日: | 2020-04-17 |
| 發(fā)明(設(shè)計)人: | 梅綱;付銓;周淳;張駐西 | 申請(專利權(quán))人: | 武漢達(dá)夢數(shù)據(jù)庫有限公司 |
| 主分類號: | G06F16/23 | 分類號: | G06F16/23;G06F16/27 |
| 代理公司: | 深圳市六加知識產(chǎn)權(quán)代理有限公司 44372 | 代理人: | 向彬 |
| 地址: | 430000 湖北省武漢市東湖新技術(shù)開*** | 國省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 實現(xiàn) 數(shù)據(jù) 快速 裝載 同步 方法 裝置 | ||
1.一種可實現(xiàn)數(shù)據(jù)快速裝載的數(shù)據(jù)同步方法,其特征在于,數(shù)據(jù)裝載節(jié)點內(nèi)設(shè)有生產(chǎn)者線程、任務(wù)隊列和消費者線程,則數(shù)據(jù)同步方法包括:
從數(shù)據(jù)源讀取數(shù)據(jù),并將讀取的數(shù)據(jù)放入緩存中;
所述生產(chǎn)者線程將緩存中的數(shù)據(jù)分批生成多個數(shù)據(jù)文件,并將生成的數(shù)據(jù)文件放入任務(wù)隊列中;其中,每個數(shù)據(jù)文件包含一條或多條數(shù)據(jù);
所述消費者線程調(diào)用目的數(shù)據(jù)庫專有的批量數(shù)據(jù)裝載命令,將任務(wù)隊列中待裝載的數(shù)據(jù)文件逐一裝載到目的數(shù)據(jù)庫;
其中,所述生產(chǎn)者線程對應(yīng)的數(shù)據(jù)文件生成過程和所述消費者線程對應(yīng)的數(shù)據(jù)批量裝載過程為并行進(jìn)行。
2.根據(jù)權(quán)利要求1所述的可實現(xiàn)數(shù)據(jù)快速裝載的數(shù)據(jù)同步方法,其特征在于,在數(shù)據(jù)同步過程中,所述方法還包括:
統(tǒng)計同步過程中數(shù)據(jù)從數(shù)據(jù)源中的讀取速度,以及數(shù)據(jù)裝載到目的數(shù)據(jù)庫的裝載速度,并將讀取速度和裝載速度進(jìn)行比較;
如果讀取速度和裝載速度相當(dāng),則下次數(shù)據(jù)同步時數(shù)據(jù)放入緩存之后,在linux系統(tǒng)內(nèi)生成一虛擬的管道文件,并將緩存中的數(shù)據(jù)讀取到管道文件中;然后將目的數(shù)據(jù)庫專有的批量裝載命令定位到管道文件,并利用批量裝載命令將管道文件中的數(shù)據(jù)裝載到目的數(shù)據(jù)庫;
如果讀取速度和裝載速度不相當(dāng),則下次數(shù)據(jù)同步時數(shù)據(jù)放入緩存之后,所述生產(chǎn)者線程將緩存中的數(shù)據(jù)分批生成多個數(shù)據(jù)文件,并將生成的數(shù)據(jù)文件放入任務(wù)隊列中。
3.根據(jù)權(quán)利要求1所述的可實現(xiàn)數(shù)據(jù)快速裝載的數(shù)據(jù)同步方法,其特征在于,在生成數(shù)據(jù)文件時,所述生產(chǎn)者線程按照所述目的數(shù)據(jù)庫的格式要求,生成相應(yīng)格式的數(shù)據(jù)文件。
4.根據(jù)權(quán)利要求1所述的可實現(xiàn)數(shù)據(jù)快速裝載的數(shù)據(jù)同步方法,其特征在于,所述生產(chǎn)者線程將緩存中的數(shù)據(jù)分批生成多個數(shù)據(jù)文件,并將生成的數(shù)據(jù)文件放入任務(wù)隊列中,具體包括:
所述生產(chǎn)者線程從緩存中讀取待裝載的數(shù)據(jù),并將讀取到的數(shù)據(jù)寫入一臨時生成的數(shù)據(jù)文件中;
所述生產(chǎn)者線程判斷當(dāng)前數(shù)據(jù)文件中的數(shù)據(jù)量是否達(dá)到預(yù)設(shè)閾值,如果當(dāng)前數(shù)據(jù)文件中的數(shù)據(jù)量未達(dá)到預(yù)設(shè)閾值,則所述生產(chǎn)者線程繼續(xù)從緩存中讀取下一條待裝載的數(shù)據(jù)寫入到當(dāng)前數(shù)據(jù)文件中。
5.根據(jù)權(quán)利要求4所述的可實現(xiàn)數(shù)據(jù)快速裝載的數(shù)據(jù)同步方法,其特征在于,如果當(dāng)前數(shù)據(jù)文件中的數(shù)據(jù)量已經(jīng)達(dá)到預(yù)設(shè)閾值,則繼續(xù)檢查任務(wù)隊列中的任務(wù)數(shù)量是否達(dá)到最大任務(wù)數(shù)限制;
如果任務(wù)隊列中的任務(wù)數(shù)量未達(dá)到最大任務(wù)數(shù)限制,則所述生產(chǎn)者線程將當(dāng)前寫入完成的數(shù)據(jù)文件放到任務(wù)隊列中;
如果任務(wù)隊列中的任務(wù)數(shù)量已達(dá)到最大任務(wù)數(shù)限制,則所述生產(chǎn)者線程等待所述消費者線程從任務(wù)隊列中取出任務(wù)后,再將當(dāng)前寫入完成的數(shù)據(jù)文件放到任務(wù)隊列中。
6.根據(jù)權(quán)利要求1所述的可實現(xiàn)數(shù)據(jù)快速裝載的數(shù)據(jù)同步方法,其特征在于,所述消費者線程調(diào)用目的數(shù)據(jù)庫專有的批量數(shù)據(jù)裝載命令,將任務(wù)隊列中待裝載的數(shù)據(jù)文件逐一裝載到目的數(shù)據(jù)庫,具體包括:
所述消費者線程從任務(wù)隊列中取出待裝載的數(shù)據(jù)文件,并根據(jù)目的數(shù)據(jù)庫生成用于裝載當(dāng)前數(shù)據(jù)文件的批量數(shù)據(jù)裝載命令;
所述消費者線程執(zhí)行所述批量數(shù)據(jù)裝載命令,進(jìn)而將當(dāng)前取出的數(shù)據(jù)文件裝載到目的數(shù)據(jù)庫;
所述消費者線程將完成裝載后的數(shù)據(jù)文件刪除,并檢查任務(wù)隊列中是否還有待裝載的數(shù)據(jù)文件,如果有則繼續(xù)進(jìn)行下一個數(shù)據(jù)文件的裝載。
7.根據(jù)權(quán)利要求1-6任一所述的可實現(xiàn)數(shù)據(jù)快速裝載的數(shù)據(jù)同步方法,其特征在于,所述消費者線程設(shè)置至少兩個,則在進(jìn)行數(shù)據(jù)裝載時,各消費者線程以并行方式將任務(wù)隊列中不同的數(shù)據(jù)文件分別裝載到目的數(shù)據(jù)庫。
8.根據(jù)權(quán)利要求1-6任一所述的可實現(xiàn)數(shù)據(jù)快速裝載的數(shù)據(jù)同步方法,其特征在于,所述數(shù)據(jù)源為關(guān)系數(shù)據(jù)庫、消息隊列、XML文件、KV數(shù)據(jù)庫或文檔數(shù)據(jù)庫。
9.根據(jù)權(quán)利要求1-6任一所述的可實現(xiàn)數(shù)據(jù)快速裝載的數(shù)據(jù)同步方法,其特征在于,所述目的數(shù)據(jù)庫為關(guān)系數(shù)據(jù)庫。
10.一種可實現(xiàn)數(shù)據(jù)快速裝載的數(shù)據(jù)同步裝置,其特征在于,包括至少一個處理器和存儲器,所述至少一個處理器和存儲器之間通過數(shù)據(jù)總線連接,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的指令,所述指令在被所述處理器執(zhí)行后,用于完成權(quán)利要求1-9任一所述的可實現(xiàn)數(shù)據(jù)快速裝載的數(shù)據(jù)同步方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于武漢達(dá)夢數(shù)據(jù)庫有限公司,未經(jīng)武漢達(dá)夢數(shù)據(jù)庫有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910981942.5/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 互動業(yè)務(wù)終端、實現(xiàn)系統(tǒng)及實現(xiàn)方法
- 街景地圖的實現(xiàn)方法和實現(xiàn)系統(tǒng)
- 游戲?qū)崿F(xiàn)系統(tǒng)和游戲?qū)崿F(xiàn)方法
- 圖像實現(xiàn)裝置及其圖像實現(xiàn)方法
- 增強現(xiàn)實的實現(xiàn)方法以及實現(xiàn)裝置
- 軟件架構(gòu)的實現(xiàn)方法和實現(xiàn)平臺
- 數(shù)值預(yù)報的實現(xiàn)方法及實現(xiàn)系統(tǒng)
- 空調(diào)及其冬眠控制模式實現(xiàn)方法和實現(xiàn)裝置以及實現(xiàn)系統(tǒng)
- 空調(diào)及其睡眠控制模式實現(xiàn)方法和實現(xiàn)裝置以及實現(xiàn)系統(tǒng)
- 輸入設(shè)備實現(xiàn)方法及其實現(xiàn)裝置
- 數(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)裝置





