[發(fā)明專利]一種數(shù)據(jù)存儲(chǔ)、讀取方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 202010591275.2 | 申請(qǐng)日: | 2020-06-24 |
| 公開(公告)號(hào): | CN111736776B | 公開(公告)日: | 2023-10-10 |
| 發(fā)明(設(shè)計(jì))人: | 王雪磊;劉中軍 | 申請(qǐng)(專利權(quán))人: | 杭州海康威視數(shù)字技術(shù)股份有限公司 |
| 主分類號(hào): | G06F3/06 | 分類號(hào): | G06F3/06 |
| 代理公司: | 北京柏杉松知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11413 | 代理人: | 孫翠賢;高鶯然 |
| 地址: | 310051 浙*** | 國(guó)省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù) 存儲(chǔ) 讀取 方法 裝置 | ||
本發(fā)明實(shí)施例涉及大數(shù)據(jù)技術(shù)領(lǐng)域,提供了一種數(shù)據(jù)存儲(chǔ)、讀取方法及裝置。該數(shù)據(jù)存儲(chǔ)方法包括:獲取待存儲(chǔ)數(shù)據(jù);確定預(yù)設(shè)存儲(chǔ)格式對(duì)應(yīng)的各個(gè)存儲(chǔ)單位,與待存儲(chǔ)數(shù)據(jù)中的各個(gè)子數(shù)據(jù)的對(duì)應(yīng)關(guān)系;通過(guò)調(diào)用預(yù)設(shè)的數(shù)據(jù)接口,按照對(duì)應(yīng)關(guān)系,將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)到Spark計(jì)算引擎的堆外內(nèi)存中。該數(shù)據(jù)讀取方法包括:在接收到待處理業(yè)務(wù)時(shí),確定待處理業(yè)務(wù)所需數(shù)據(jù)的過(guò)濾條件;通過(guò)調(diào)用預(yù)設(shè)的數(shù)據(jù)接口,從Spark計(jì)算引擎的堆外內(nèi)存中,讀取滿足過(guò)濾條件的目標(biāo)數(shù)據(jù);將目標(biāo)數(shù)據(jù)存儲(chǔ)到Spark計(jì)算引擎的堆內(nèi)內(nèi)存中,以使待處理業(yè)務(wù)被處理時(shí),從堆內(nèi)內(nèi)存中讀取目標(biāo)數(shù)據(jù)。與現(xiàn)有技術(shù)相比,應(yīng)用本發(fā)明實(shí)施例提供的方案,可以提高JVM的業(yè)務(wù)處理效率。
技術(shù)領(lǐng)域
本發(fā)明涉及大數(shù)據(jù)技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)存儲(chǔ)、讀取方法及裝置。
背景技術(shù)
JVM(Java Virtual Machine,Java虛擬機(jī))是一種新的網(wǎng)絡(luò)計(jì)算平臺(tái),其 通過(guò)在實(shí)體計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能實(shí)現(xiàn)。通常,JVM使用Spark計(jì) 算引擎對(duì)所處理的各個(gè)業(yè)務(wù)中所涉及到的數(shù)據(jù)進(jìn)行管理。并且,當(dāng)JVM應(yīng)用 于一數(shù)據(jù)處理系統(tǒng)中時(shí),該數(shù)據(jù)處理系統(tǒng)中便可以同時(shí)包括該JVM所使用的 Spark計(jì)算引擎。
其中,Spark計(jì)算引擎是一種支持分布式數(shù)據(jù)集,可以用于進(jìn)行大規(guī)模數(shù) 據(jù)處理的快速通用的計(jì)算引擎,其可以完成文本處理、機(jī)器學(xué)習(xí)、SQL (Structured QueryLanguage,結(jié)構(gòu)化查詢語(yǔ)言)查詢等各種數(shù)據(jù)處理任務(wù)。
相關(guān)技術(shù)中,基于Spark計(jì)算引擎對(duì)數(shù)據(jù)進(jìn)行處理時(shí),數(shù)據(jù)通常被存儲(chǔ)到 JVM的堆內(nèi)(ON_HEAP)內(nèi)存中。
由于存儲(chǔ)到堆內(nèi)內(nèi)存中的數(shù)據(jù)中,可能存在長(zhǎng)期未被利用的數(shù)據(jù),因此, 避免大量數(shù)據(jù)長(zhǎng)時(shí)間存儲(chǔ)到堆內(nèi)內(nèi)存中,Spark計(jì)算引擎可以通過(guò)頻繁地發(fā)起 GC(GarbageCollection,垃圾回收)來(lái)對(duì)堆內(nèi)內(nèi)存中所存儲(chǔ)的數(shù)據(jù)進(jìn)行清理, 以節(jié)省堆內(nèi)內(nèi)存的存儲(chǔ)空間。
然而,由于在GC過(guò)程中,JVM將暫停對(duì)當(dāng)前業(yè)務(wù)的處理,因此,當(dāng)Spark 頻繁發(fā)起GC時(shí),將導(dǎo)致JVM頻繁暫停對(duì)當(dāng)前業(yè)務(wù)的處理,從而,導(dǎo)致JVM 的業(yè)務(wù)處理效率降低。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種數(shù)據(jù)存儲(chǔ)、讀取方法及裝置,以減少由 于頻繁GC導(dǎo)致的JVM頻繁暫停對(duì)當(dāng)前業(yè)務(wù)的處理的頻率,進(jìn)而,提高JVM 的業(yè)務(wù)處理效率。具體技術(shù)方案如下:
第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)存儲(chǔ)方法,應(yīng)用于數(shù)據(jù)處理系統(tǒng) 中的Spark計(jì)算引擎,所述數(shù)據(jù)處理系統(tǒng)還包括Java虛擬機(jī),所述Java虛擬機(jī)使 用所述Spark計(jì)算引擎進(jìn)行數(shù)據(jù)管理;所述方法包括:
獲取待存儲(chǔ)數(shù)據(jù);
確定預(yù)設(shè)存儲(chǔ)格式對(duì)應(yīng)的各個(gè)存儲(chǔ)單位,與所述待存儲(chǔ)數(shù)據(jù)中的各個(gè)子數(shù) 據(jù)的對(duì)應(yīng)關(guān)系;其中,每一子數(shù)據(jù)為預(yù)設(shè)數(shù)據(jù)量的數(shù)據(jù);
通過(guò)調(diào)用預(yù)設(shè)的數(shù)據(jù)接口,按照所述對(duì)應(yīng)關(guān)系,將所述待存儲(chǔ)數(shù)據(jù)存儲(chǔ)到 所述Spark計(jì)算引擎的堆外內(nèi)存中;
其中,所述數(shù)據(jù)接口為對(duì)所述堆外內(nèi)存進(jìn)行數(shù)據(jù)讀寫所需調(diào)用的接口。
可選的,一種具體實(shí)現(xiàn)方式中,所述預(yù)設(shè)的存儲(chǔ)格式為:列存儲(chǔ);
所述確定預(yù)設(shè)存儲(chǔ)格式對(duì)應(yīng)的各個(gè)存儲(chǔ)單位,與所述待存儲(chǔ)數(shù)據(jù)中的各個(gè) 子數(shù)據(jù)的對(duì)應(yīng)關(guān)系的步驟,包括:
確定用于存儲(chǔ)所述待存儲(chǔ)數(shù)據(jù)的各個(gè)數(shù)據(jù)列的Value值;其中,每一數(shù)據(jù)列 的Value值表征:該數(shù)據(jù)列所存儲(chǔ)的所述待存儲(chǔ)數(shù)據(jù)中的子數(shù)據(jù)的數(shù)據(jù)范圍;
相應(yīng)的,所述通過(guò)調(diào)用預(yù)設(shè)的數(shù)據(jù)接口,按照所述對(duì)應(yīng)關(guān)系,將所述待存 儲(chǔ)數(shù)據(jù)存儲(chǔ)到所述Spark計(jì)算引擎的堆外內(nèi)存中的步驟,包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于杭州海康威視數(shù)字技術(shù)股份有限公司,未經(jīng)杭州海康威視數(shù)字技術(shù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010591275.2/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F3-00 用于將所要處理的數(shù)據(jù)轉(zhuǎn)變成為計(jì)算機(jī)能夠處理的形式的輸入裝置;用于將數(shù)據(jù)從處理機(jī)傳送到輸出設(shè)備的輸出裝置,例如,接口裝置
G06F3-01 .用于用戶和計(jì)算機(jī)之間交互的輸入裝置或輸入和輸出組合裝置
G06F3-05 .在規(guī)定的時(shí)間間隔上,利用模擬量取樣的數(shù)字輸入
G06F3-06 .來(lái)自記錄載體的數(shù)字輸入,或者到記錄載體上去的數(shù)字輸出
G06F3-09 .到打字機(jī)上去的數(shù)字輸出
G06F3-12 .到打印裝置上去的數(shù)字輸出
- 數(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)裝置
- 動(dòng)態(tài)存儲(chǔ)管理裝置及方法
- 一種存儲(chǔ)方法、服務(wù)器及存儲(chǔ)控制器
- 一種基于存儲(chǔ)系統(tǒng)的控制方法及裝置
- 一種信息的存儲(chǔ)控制方法
- 一種數(shù)據(jù)存儲(chǔ)方法及裝置
- 數(shù)據(jù)存儲(chǔ)方法、裝置、計(jì)算機(jī)設(shè)備以及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)存儲(chǔ)控制方法及裝置
- 存儲(chǔ)設(shè)備、存儲(chǔ)系統(tǒng)及存儲(chǔ)方法
- 物料存儲(chǔ)方法及系統(tǒng)
- 基于雙芯智能電表的數(shù)據(jù)分類存儲(chǔ)方法和裝置
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





