本發(fā)明涉及數(shù)據(jù)處理技術領域,特別是涉及一種數(shù)據(jù)存儲方法及裝置。
背景技術:
如今數(shù)據(jù)爆發(fā)的情勢下,人們將目光轉向大數(shù)據(jù),同時數(shù)據(jù)的存儲也成為人們關注的焦點之一?,F(xiàn)有的數(shù)據(jù)存儲方法為:根據(jù)固有的壓縮算法將目標數(shù)據(jù)進行壓縮,獲得壓縮數(shù)據(jù);將上述壓縮數(shù)據(jù)儲至用戶指定的存儲介質(zhì)上。
但是,由于現(xiàn)有數(shù)據(jù)存儲方法根據(jù)固有壓縮算法對數(shù)據(jù)進行處理,并由用戶指定存儲介質(zhì),因此現(xiàn)有存儲方法過于固化,易導致存儲資源分配不合理的問題。例如,用戶指定將a數(shù)據(jù)存儲至讀取速率較低的介質(zhì)1上,將b數(shù)據(jù)存儲至讀取速率較高的介質(zhì)2上,而實際應用中對a數(shù)據(jù)訪問率高、b數(shù)據(jù)訪問率低,依據(jù)現(xiàn)有技術的方法,由于已經(jīng)約定了a數(shù)據(jù)的存儲介質(zhì),雖然之后對a數(shù)據(jù)的訪問率高,但是依然只能將a數(shù)據(jù)存儲到介質(zhì)1中,顯然這樣資源分配不合理,會影響后期數(shù)據(jù)訪問的效率。
技術實現(xiàn)要素:
本發(fā)明實施例的目的在于提供一種數(shù)據(jù)存儲方法及裝置,以合理分配存儲資源。具體技術方案如下:
第一方面,本發(fā)明實施例提供了一種數(shù)據(jù)存儲方法,所述方法包括:
獲得目標數(shù)據(jù);
估算所述目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延;
獲得所述目標數(shù)據(jù)的訪問頻率;
當所述訪問頻率不低于第一閾值時,將數(shù)值最小的計算時延對應的存儲方式確定為第一目標存儲方式;否則,分別基于預設的每一種存儲方式的計算時延,估算該存儲方式的存儲代價,并將數(shù)值最小的存儲代價對應的存儲方式確定為第一目標存儲方式;
將所述目標數(shù)據(jù)按照所述第一目標存儲方式進行存儲。
可選的,所述存儲方式中包括壓縮算法和存儲介質(zhì)兩種要素;
所述估算所述目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延的步驟,包括:
按照以下方式估算所述目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延:
估算以第一目標壓縮算法對所述目標數(shù)據(jù)進行壓縮、解壓時需要的壓縮時間和解壓時間,其中,所述第一目標壓縮算法為第二目標存儲方式中包含的壓縮算法,所述第二目標存儲方式為預設的存儲方式中的一種;
估算從第一目標存儲介質(zhì)中讀取第一目標壓縮數(shù)據(jù)需要的讀取時間,其中,所述第一目標存儲介質(zhì)為:所述第二目標存儲方式中包括的存儲介質(zhì),所述第一目標壓縮數(shù)據(jù)為:以所述第一目標壓縮算法對所述目標數(shù)據(jù)進行壓縮得到的數(shù)據(jù);
根據(jù)所述壓縮時間、所述解壓時間和所述讀取時間,估算所述目標數(shù)據(jù)按照所述第二目標存儲方式存儲時所消耗的計算時延。
可選的,所述存儲方式的要素還包括數(shù)據(jù)格式;
所述方法還包括:
估算所述目標數(shù)據(jù)按照第一目標數(shù)據(jù)格式進行存儲時需要的計數(shù)時間,其中,所述計數(shù)時間為:統(tǒng)計所述目標數(shù)據(jù)中用戶所選定數(shù)據(jù)的出現(xiàn)次數(shù)所需要的時間,所述第一目標數(shù)據(jù)格式為:第二目標存儲方式所包含的數(shù)據(jù)格式;
所述根據(jù)所述壓縮時間、所述解壓時間和所述讀取時間,估算所述目標數(shù)據(jù)按照所述第二目標存儲方式存儲時所消耗的計算時延的步驟,包括:
根據(jù)所述壓縮時間、所述解壓時間、所述讀取時間和所述計數(shù)時間,估算所述第二目標存儲方式對應的計算時延。
可選的,所述分別基于預設的每一種存儲方式的計算時延,估算該存儲方式的存儲代價的步驟,包括:
分別基于預設的每一種存儲方式的計算時延,按照以下方式,估算該存儲方式的存儲代價:
獲取第二目標壓縮數(shù)據(jù)所占用的存儲空間,其中,所述第二目標壓縮數(shù)據(jù)為將所述目標數(shù)據(jù)按照第三目標存儲方式中的壓縮算法壓縮后得到的數(shù)據(jù),所述第三目標存儲方式為預設的存儲方式中的一種;
分別獲得所述存儲空間的第一權重和所述計算時延的第二權重;
根據(jù)所述存儲空間及其第一權重、所述計算時延及其第二權重以及所述訪問頻率,估算所述第三目標存儲方式的存儲代價。
可選的,在所述估算所述目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延的步驟之前,還包括:
判斷所述目標數(shù)據(jù)的數(shù)據(jù)重要程度級別是否低于第二閾值,當判斷結果為是,執(zhí)行所述估算所述目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延的步驟。
可選的,所述目標數(shù)據(jù)的訪問頻率為按照預設時間間隔統(tǒng)計的訪問頻率。
可選的,所述目標數(shù)據(jù)包括:未在本地存儲的數(shù)據(jù)和已在本地存儲的數(shù)據(jù)。
第二方面,本發(fā)明實施例提供了一種數(shù)據(jù)存儲裝置,所述裝置包括:
第一獲得模塊,用于獲得目標數(shù)據(jù);
第一估算模塊,用于估算所述目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延;
第二獲得模塊,用于獲得所述目標數(shù)據(jù)的訪問頻率;
確定模塊,用于當所述訪問頻率不低于第一閾值時,將數(shù)值最小的計算時延對應的存儲方式確定為第一目標存儲方式;否則,分別基于預設的每一種存儲方式的計算時延,估算該存儲方式的存儲代價,并將數(shù)值最小的存儲代價對應的存儲方式確定為第一目標存儲方式;
存儲模塊,用于將所述目標數(shù)據(jù)按照所述第一目標存儲方式進行存儲。
可選的,所述存儲方式中包括壓縮算法和存儲介質(zhì)兩種要素;
所述第一估算模塊,包括:
第一估算子模塊,用于估算以第一目標壓縮算法對所述目標數(shù)據(jù)進行壓縮、解壓時需要的壓縮時間和解壓時間,其中,所述第一目標壓縮算法為第二目標存儲方式中包含的壓縮算法,所述第二目標存儲方式為預設的存儲方式中的一種;
第二估算子模塊,用于估算從第一目標存儲介質(zhì)中讀取第一目標壓縮數(shù)據(jù)需要的讀取時間,其中,所述第一目標存儲介質(zhì)為:所述第二目標存儲方式中包括的存儲介質(zhì),所述第一目標壓縮數(shù)據(jù)為:以所述第一目標壓縮算法對所述目標數(shù)據(jù)進行壓縮得到的數(shù)據(jù);
第三估算子模塊,用于根據(jù)所述壓縮時間、所述解壓時間和所述讀取時間,估算所述目標數(shù)據(jù)按照所述第二目標存儲方式存儲時所消耗的計算時延。
可選的,所述存儲方式的要素還包括數(shù)據(jù)格式;
所述裝置還包括:
第二估算模塊,用于估算所述目標數(shù)據(jù)按照第一目標數(shù)據(jù)格式進行存儲時需要的計數(shù)時間,其中,所述計數(shù)時間為:統(tǒng)計所述目標數(shù)據(jù)中用戶所選定數(shù)據(jù)的出現(xiàn)次數(shù)所需要的時間,所述第一目標數(shù)據(jù)格式為:第二目標存儲方式所包含的數(shù)據(jù)格式;
所述第一估算模塊,具體用于:
根據(jù)所述壓縮時間、所述解壓時間、所述讀取時間和所述計數(shù)時間,估算所述第二目標存儲方式對應的計算時延。
可選的,所述確定模塊,包括:
第一獲取子模塊,用于獲取第二目標壓縮數(shù)據(jù)所占用的存儲空間,其中,所述第二目標壓縮數(shù)據(jù)為將所述目標數(shù)據(jù)按照第三目標存儲方式中的壓縮算法壓縮后得到的數(shù)據(jù),所述第三目標存儲方式為預設的存儲方式中的一種;
第二獲取子模塊,用于分別獲得所述存儲空間的第一權重和所述計算時延的第二權重;
第四估算子模塊,用于根據(jù)所述存儲空間及其第一權重、所述計算時延及其第二權重以及所述訪問頻率,估算所述第三目標存儲方式的存儲代價。
可選的,在觸發(fā)所述第一估算模塊之前,所述裝置還包括:
判斷模塊,用于判斷所述目標數(shù)據(jù)的數(shù)據(jù)重要程度級別是否低于第二閾值,當判斷結果為是,執(zhí)行所述估算所述目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延的步驟。
可選的,所述目標數(shù)據(jù)的訪問頻率為按照預設時間間隔統(tǒng)計的訪問頻率。
可選的,所述目標數(shù)據(jù)包括:未在本地存儲的數(shù)據(jù)和已在本地存儲的數(shù)據(jù)。
本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法及裝置,所述方法估算目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延,當目標數(shù)據(jù)的訪問頻率高于第一閾值,將目標數(shù)據(jù)以所消耗的計算時延最小的存儲方式進行存儲;否則,估算目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的存儲代價,將目標數(shù)據(jù)按照存儲代價最小的存儲方式進行存儲。相較于現(xiàn)有技術中按固有的規(guī)定存儲數(shù)據(jù)的方法,本發(fā)明實施例提供的數(shù)據(jù)存儲方法根據(jù)目標數(shù)據(jù)的訪問頻率等參數(shù)確定存儲方式進而存儲數(shù)據(jù),可以合理分配存儲資源,進一步地,能夠提高后期數(shù)據(jù)訪問效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法的步驟流程圖;
圖2為本發(fā)明實施例提供的一種數(shù)據(jù)存儲裝置的結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供了一種數(shù)據(jù)存儲方法及裝置,以下分別作詳細介紹。
首先,介紹本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法,上述方法應用于電子設備,該電子設備可以為智能手機、臺式計算機、筆記本電腦、平板電腦等終端設備,還可以為具有較強數(shù)據(jù)處理功能的服務設備,例如大型計算機等。具體的,上述方法還可以應用于安裝在電子設備上的應用程序,該應用程序可以為專門優(yōu)化存儲空間的應用程序;還可以為相關應用程序的功能插件,例如可以為電腦防護軟件的插件、殺毒軟件的插件,該裝置還可以做為功能插件安插在操作系統(tǒng)中。
如圖1所示,本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法,包括如下步驟:
s101:獲得目標數(shù)據(jù);
上述目標數(shù)據(jù)可以為未在本地存儲的數(shù)據(jù)。
當然,當需要對本地存儲空間進行優(yōu)化,或由于使用環(huán)境的改變不得不轉換本地數(shù)據(jù)的存儲方式時,目標數(shù)據(jù)還可以為已在本地存儲的數(shù)據(jù)。使用環(huán)境的改變可以包括計算機硬件的更換、數(shù)據(jù)訪問頻率的改變等。
s102:估算所述目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延;
需要說明的是,要素是構成存儲方式的最小單位,要素可以為存儲數(shù)據(jù)時所使用的壓縮算法、存儲介質(zhì)等,或者還可以為數(shù)據(jù)本身的數(shù)據(jù)格式。一種存儲方式中可以包括1個、2個甚至多個要素,任意兩種預設的存儲方式之間至少有1個要素不同。
由于存儲數(shù)據(jù)時要對數(shù)據(jù)進行計算處理,例如壓縮、讀取等,計算處理會產(chǎn)生計算時延,當采用不同存儲方式存儲數(shù)據(jù)時,所產(chǎn)生的計算時延不同。由于計算時延導致用戶在存儲數(shù)據(jù)或者讀取數(shù)據(jù)時等待相應時間,所以需要對不同存儲方案的計算時延進行估算,進而了解數(shù)據(jù)按照不同存儲方案存儲時致使用戶等待的時間。具體的,可以通過以下兩種方式估算計算時延。
在一種實現(xiàn)方式中,存儲方式中包括壓縮算法、存儲介質(zhì)兩種要素。壓縮算法可以為rar、zip、bzip2、gzip等算法。存儲介質(zhì)包括但不限于內(nèi)存、ssd(固態(tài)硬盤,solidstatedrives)、sas(串行連接硬盤,serialattachedscsi)、sata(串口硬盤,serialata)。
當存儲方式包括壓縮算法和存儲介質(zhì)兩種要素時,可選的,可以通過以下步驟估算目標數(shù)據(jù)按照每一種預設的不同存儲方式存儲時所消耗的計算時延:估算以第一目標壓縮算法對目標數(shù)據(jù)進行壓縮、解壓時需要的壓縮時間和解壓時間,其中,第一目標壓縮算法為第二目標存儲方式中包含的壓縮算法,第二目標存儲方式為預設的存儲方式中的一種;估算從第一目標存儲介質(zhì)中讀取第一目標壓縮數(shù)據(jù)需要的讀取時間,其中,第一目標存儲介質(zhì)為:第二目標存儲方式中包括的存儲介質(zhì),第一目標壓縮數(shù)據(jù)為:以上述第一目標壓縮算法對目標數(shù)據(jù)進行壓縮得到的數(shù)據(jù);根據(jù)上述壓縮時間、上述解壓時間和上述讀取時間,估算目標數(shù)據(jù)按照上述第二目標存儲方式存儲時所消耗的計算時延。需要說明的是,由于數(shù)據(jù)的解壓過程為數(shù)據(jù)壓縮的逆過程,因此,在本文中,以第一目標壓縮算法對數(shù)據(jù)進行處理可以包括:對數(shù)據(jù)進行壓縮處理和解壓處理兩個過程。
具體的,壓縮時間可以由壓縮速度和數(shù)據(jù)大小兩個因素確定,例如,可以由壓縮速度乘以數(shù)據(jù)大小獲得,壓縮速度可以由本領域技術人員根據(jù)以往的經(jīng)驗進行確定,或者還可以由第三方的專門針對數(shù)據(jù)進行統(tǒng)計的數(shù)據(jù)管理系統(tǒng)所提供。數(shù)據(jù)大小可以由上述數(shù)據(jù)管理系統(tǒng)進行估算,當然還可以由執(zhí)行本發(fā)明實施例提供的方法的執(zhí)行主體進行估算。假設以zip壓縮算法對目標數(shù)據(jù)進行壓縮處理,獲取第三方數(shù)據(jù)管理系統(tǒng)提供的zip壓縮算法的壓縮速度、以及第三方系統(tǒng)所估算的目標數(shù)據(jù)的大小,將兩者相乘,進而可以估算出以zip壓縮算法壓縮目標數(shù)據(jù)所耗費的壓縮時間。
具體的,解壓時間可以由解壓速度和數(shù)據(jù)大小兩個因素確定,例如,可以由解壓縮度和數(shù)據(jù)大小相乘而得。解壓速度可以由本領域技術人員根據(jù)以往的經(jīng)驗進行確定,或者還可以由第三方的專門針對數(shù)據(jù)進行統(tǒng)計的數(shù)據(jù)管理系統(tǒng)所提供。
具體的,讀取時間可以由讀取速度和數(shù)據(jù)大小兩個因素確定,例如,可以由讀取速度和數(shù)據(jù)大小相乘而得。讀取速度可以由本領域技術人員根據(jù)以往的經(jīng)驗進行確定,或者還可以由第三方的專門針對數(shù)據(jù)進行統(tǒng)計的數(shù)據(jù)管理系統(tǒng)所提供。
具體的,計算時延由壓縮時間、解壓時間、讀取時間確定,例如將壓縮時間、解壓時間和讀取時間相加,獲得目標數(shù)據(jù)按照第二目標存儲方式存儲時所消耗的計算時延,以完成估算。
實際應用過程中,在存儲數(shù)據(jù)時,需要對數(shù)據(jù)中的內(nèi)容進行某種計數(shù)統(tǒng)計,以進行數(shù)據(jù)分析。例如,存儲數(shù)據(jù)時需要對數(shù)據(jù)中的某一類數(shù)據(jù)的出現(xiàn)次數(shù)進行計數(shù)統(tǒng)計,再如,當數(shù)據(jù)為某一平臺的訪問記錄時,存儲上述記錄之前需要統(tǒng)計用戶數(shù)量(用戶數(shù)量需要摒除同一用戶多次訪問平臺的情況),此時需要對用戶個數(shù)進行計數(shù)統(tǒng)計。
包括上述兩種情況在內(nèi)的計數(shù)統(tǒng)計會耗費相應的計數(shù)時間。由于以不同存儲格式進行存儲的數(shù)據(jù)所耗費的計數(shù)時間不同,進而計算時延不同,因此,在另一種實現(xiàn)方式中,當需要對數(shù)據(jù)中的某一類數(shù)據(jù)進行計數(shù)統(tǒng)計時,存儲方式除包括壓縮算法和存儲介質(zhì)兩種要素外,還包括數(shù)據(jù)格式。數(shù)據(jù)格式可以為行存儲、列式存儲(比如apacheorc、parquet)等文件格式。
當存儲方式包括壓縮算法、存儲介質(zhì)和數(shù)據(jù)格式三種要素時,除估算壓縮時間、解壓時間、讀取時間外,還估算目標數(shù)據(jù)按照第一目標數(shù)據(jù)格式進行存儲時需要的計數(shù)時間,其中,計數(shù)時間為:統(tǒng)計所述目標數(shù)據(jù)中用戶所選定的數(shù)據(jù)的出現(xiàn)次數(shù)所需要的時間,第一目標數(shù)據(jù)格式為:第二目標存儲方式所包含的數(shù)據(jù)格式;并根據(jù)壓縮時間、解壓時間、讀取時間和上述計數(shù)時間,估算第二目標存儲方式對應的計算時延。
具體的,計算時延由壓縮時間、解壓時間、讀取時間和計數(shù)時間確定,例如將壓縮時間、解壓時間、讀取時間和計數(shù)時間相加,獲得目標數(shù)據(jù)按照第二目標存儲方式存儲時所消耗的計算時延,以完成估算。
可選的,計數(shù)時間由計數(shù)速度和數(shù)據(jù)大小確定,例如,由計數(shù)速度乘以數(shù)據(jù)大小獲得。計數(shù)速度可以由本領域技術人員根據(jù)以往的經(jīng)驗進行確定,或者還可以由第三方的專門針對數(shù)據(jù)進行統(tǒng)計的數(shù)據(jù)管理系統(tǒng)所提供。
s103:獲得所述目標數(shù)據(jù)的訪問頻率;
其中,訪問頻率可以從本地獲得,當然也可以從第三方服務器獲得,上述第三方服務器可以為用于統(tǒng)計數(shù)據(jù)的服務器。
可選的,可以將目標數(shù)據(jù)在過去一定時期內(nèi)的歷史訪問量確定為訪問頻率;當目標數(shù)據(jù)為新產(chǎn)生的數(shù)據(jù),無法直接獲得訪問頻率,還可以根據(jù)目標數(shù)據(jù)所反應的信息的歷史訪問量,估算目標數(shù)據(jù)的訪問頻率。例如,獲得的目標數(shù)據(jù)所反映的信息為一部偵探類的電影,則根據(jù)過去一段時間內(nèi)偵探類電影的歷史訪問量估算所獲得的目標數(shù)據(jù)的訪問量。
較佳的,為了確保所獲取的訪問頻率能夠準確反映數(shù)據(jù)的訪問量,本發(fā)明實施例所獲取的訪問頻率為按照預設時間間隔統(tǒng)計的訪問頻率。也就是說,每隔預設時間間隔,重新獲得目標數(shù)據(jù)的訪問頻率。
s104:當所述訪問頻率不低于第一閾值時,將數(shù)值最小的計算時延對應的存儲方式確定為第一目標存儲方式;否則,分別基于預設的每一種存儲方式的計算時延,估算該存儲方式的存儲代價,并將數(shù)值最小的存儲代價對應的存儲方式確定為第一目標存儲方式;
當完成對所有存儲方式的計算時延的估算后獲得多個計算時延,判斷目標數(shù)據(jù)的訪問頻率是否不低于(大于或者等于)第一閾值,當訪問頻率不低于第一閾值時,將各計算時延進行比較,確定出數(shù)值最小的計算時延,并將數(shù)值最小的計算時延對應的存儲方式確定為第一目標存儲方式??梢岳斫獾氖?,確定出計算時延最小的存儲方式后,當目標數(shù)據(jù)按照該方式存儲時,可以將計算時延縮短至最小。對于第一閾值的大小,可以根據(jù)實際使用需求進行設定,本發(fā)明實施例不做具體限定。
當目標數(shù)據(jù)的訪問頻率低于第一閾值時,根據(jù)各存儲方式的計算時延,估算該存儲方式的存儲代價??蛇x的,按照以下方式,估算每一種存儲方式的存儲代價:獲取第二目標壓縮數(shù)據(jù)所占用的存儲空間,其中,第二目標壓縮數(shù)據(jù)為將上述目標數(shù)據(jù)按照第三目標存儲方式中的壓縮算法壓縮后得到的數(shù)據(jù),第三目標存儲方式為預設的存儲方式中的一種;分別獲得上述存儲空間的第一權重和上述計算時延的第二權重;根據(jù)存儲空間及其第一權重、計算時延及其第二權重以及訪問頻率,估算所述第三目標存儲方式的存儲代價。其中,第三目標存儲方式可以為s102中的第二目標存儲方式,進而第二目標壓縮數(shù)據(jù)為第一目標壓縮數(shù)據(jù)、第三目標存儲方式中的壓縮算法為第一目標壓縮算法;當然第三目標存儲方式還可以為預設存儲方式中除第二目標存儲方式以外的存儲方式。其中,存儲空間可以為將目標數(shù)據(jù)以某一種數(shù)據(jù)格式,通過某種壓縮算法壓縮后所占用存儲介質(zhì)的空間,可選的,可以通過存儲空間計算函數(shù)sizeofbytes()計算而得。
具體通過以下公式計算存儲代價:存儲代價=存儲空間*第一權重+計算時延*第二權重*訪問頻率。
估算出所有存儲方式的存儲代價后,將所得出的各存儲代價進行比較,確定數(shù)值最小的存儲代價,將數(shù)值最小的存儲代價對應的存儲方式確定為第一目標存儲方式。確定出存儲代價最小的存儲方式后,當目標數(shù)據(jù)按照該方式進行存儲時,可以將存儲代價縮減至最小。
需要說明的是,第一權重、第二權重可以體現(xiàn)為用戶對存儲空間以及計算時延的需求,某些用戶可能更加注重節(jié)省存儲空間,而對于另外一些客戶而言,其可能更加注重減少計算時延,而關注點不同會導致存儲代價的改變,因此引入權重滿足不同用戶的需求。第一權重、第二權重的來源,可以依據(jù)應用場景的不同,從不同第三方數(shù)據(jù)庫獲得,或者還可以由用戶自行設定,上述第三方數(shù)據(jù)庫用于存儲用戶在不同需求下注重存儲空間(計算時延)的程度。在一種應用場景中,第三方數(shù)據(jù)庫為資產(chǎn)管理數(shù)據(jù)庫,第一權重可以為單位字節(jié)占用存儲介質(zhì)所耗費的費用,第二權重可以為單位時間內(nèi)占用cpu(中央處理器,centralprocessingunit)所耗費的費用,那么在此應用場景中,存儲代價被具體為包括使用存儲介質(zhì)產(chǎn)生的費用、使用cpu產(chǎn)生的費用在內(nèi)的總費用。
s105:將所述目標數(shù)據(jù)按照所述第一目標存儲方式進行存儲。
在一種可選實施方式中,通過以下方式,將目標數(shù)據(jù)按照第一目標存儲方式進行存儲:將目標數(shù)據(jù)根據(jù)第一目標存儲方式中的壓縮算法進行壓縮,獲得第三目標壓縮數(shù)據(jù);將第三目標壓縮數(shù)據(jù)存儲至第一目標存儲方式中所規(guī)定的存儲介質(zhì)。
在另一種可選實施方式中,將目標數(shù)據(jù)以第一目標存儲方式中的數(shù)據(jù)格式,通過第一目標存儲方式中的壓縮算法進行壓縮,獲得第三目標壓縮數(shù)據(jù);將第三目標壓縮數(shù)據(jù)存儲至第一目標存儲方式中所規(guī)定的存儲介質(zhì)。
本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法,估算目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延,當目標數(shù)據(jù)的訪問頻率高于第一閾值,將目標數(shù)據(jù)以所消耗的計算時延最小的存儲方式進行存儲;否則,估算目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的存儲代價,將目標數(shù)據(jù)按照存儲代價最小的存儲方式進行存儲。相較于現(xiàn)有技術中按固有的規(guī)定存儲數(shù)據(jù)的方法,本發(fā)明實施例提供的數(shù)據(jù)存儲方法根據(jù)目標數(shù)據(jù)的訪問頻率等參數(shù)確定存儲方式進而存儲數(shù)據(jù),可以合理分配存儲資源,進一步地,能夠提高后期數(shù)據(jù)訪問效率。
較佳的,在實際應用中,由于個別數(shù)據(jù)對用戶非常重要,不能任意存儲,因此本發(fā)明實施例還可以對數(shù)據(jù)的重要程度級別進行判定,過程可以包括以下步驟:判斷目標數(shù)據(jù)的數(shù)據(jù)重要程度級別是否低于第二閾值,當判斷結果為是,執(zhí)行步驟s102;當判斷結果為否,根據(jù)用戶所指定的存儲方式進行存儲。上述第二閾值由用戶根據(jù)需求進行設定,本發(fā)明實施例不做具體限定。
相應于上述方法實施例,如圖2所示,本發(fā)明實施例還提供了一種數(shù)據(jù)存儲裝置,所述裝置包括:
第一獲得模塊210,用于獲得目標數(shù)據(jù);
第一估算模塊220,用于估算所述目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延;
第二獲得模塊230,用于獲得所述目標數(shù)據(jù)的訪問頻率;
確定模塊240,用于當所述訪問頻率不低于第一閾值時,將數(shù)值最小的計算時延對應的存儲方式確定為第一目標存儲方式;否則,分別基于預設的每一種存儲方式的計算時延,估算該存儲方式的存儲代價,并將數(shù)值最小的存儲代價對應的存儲方式確定為第一目標存儲方式;
存儲模塊250,用于將所述目標數(shù)據(jù)按照所述第一目標存儲方式進行存儲。
可選的,所述存儲方式中包括壓縮算法和存儲介質(zhì)兩種要素;
所述第一估算模塊220,包括:
第一估算子模塊,用于估算以第一目標壓縮算法對所述目標數(shù)據(jù)進行壓縮、解壓時需要的壓縮時間和解壓時間,其中,所述第一目標壓縮算法為第二目標存儲方式中包含的壓縮算法,所述第二目標存儲方式為預設的存儲方式中的一種;
第二估算子模塊,用于估算從第一目標存儲介質(zhì)中讀取第一目標壓縮數(shù)據(jù)需要的讀取時間,其中,所述第一目標存儲介質(zhì)為:所述第二目標存儲方式中包括的存儲介質(zhì),所述第一目標壓縮數(shù)據(jù)為:以所述第一目標壓縮算法對所述目標數(shù)據(jù)進行壓縮得到的數(shù)據(jù);
第三估算子模塊,用于根據(jù)所述壓縮時間、所述解壓時間和所述讀取時間,估算所述目標數(shù)據(jù)按照所述第二目標存儲方式存儲時所消耗的計算時延。
可選的,所述存儲方式的要素還包括數(shù)據(jù)格式;
所述裝置還包括:
第二估算模塊,用于估算所述目標數(shù)據(jù)按照第一目標數(shù)據(jù)格式進行存儲時需要的計數(shù)時間,其中,所述計數(shù)時間為:統(tǒng)計所述目標數(shù)據(jù)中用戶所選定數(shù)據(jù)的出現(xiàn)次數(shù)所需要的時間,所述第一目標數(shù)據(jù)格式為:第二目標存儲方式所包含的數(shù)據(jù)格式;
所述第一估算模塊220,具體用于:
根據(jù)所述壓縮時間、所述解壓時間、所述讀取時間和所述計數(shù)時間,估算所述第二目標存儲方式對應的計算時延。
可選的,所述確定模塊240,包括:
第一獲取子模塊,用于獲取第二目標壓縮數(shù)據(jù)所占用的存儲空間,其中,所述第二目標壓縮數(shù)據(jù)為將所述目標數(shù)據(jù)按照第三目標存儲方式中的壓縮算法壓縮后得到的數(shù)據(jù),所述第三目標存儲方式為預設的存儲方式中的一種;
第二獲取子模塊,用于分別獲得所述存儲空間的第一權重和所述計算時延的第二權重;
第四估算子模塊,用于根據(jù)所述存儲空間及其第一權重、所述計算時延及其第二權重以及所述訪問頻率,估算所述第三目標存儲方式的存儲代價。
可選的,在觸發(fā)所述第一估算模塊220之前,所述裝置還包括:
判斷模塊,用于判斷所述目標數(shù)據(jù)的數(shù)據(jù)重要程度級別是否低于第二閾值,當判斷結果為是,執(zhí)行所述估算所述目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延的步驟。
可選的,所述目標數(shù)據(jù)的訪問頻率為按照預設時間間隔統(tǒng)計的訪問頻率。
可選的,所述目標數(shù)據(jù)包括:未在本地存儲的數(shù)據(jù)和已在本地存儲的數(shù)據(jù)。
本發(fā)明實施例提供的一種數(shù)據(jù)存儲裝置,估算目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的計算時延,當目標數(shù)據(jù)的訪問頻率高于第一閾值,將目標數(shù)據(jù)以所消耗的計算時延最小的存儲方式進行存儲;否則,估算目標數(shù)據(jù)按照預設的不同存儲方式存儲時所消耗的存儲代價,將目標數(shù)據(jù)按照存儲代價最小的存儲方式進行存儲。相較于現(xiàn)有技術,本發(fā)明實施例提供的數(shù)據(jù)存儲裝置根據(jù)目標數(shù)據(jù)的訪問頻率等參數(shù)確定存儲方式進而存儲數(shù)據(jù),可以合理分配存儲資源,進一步地,能夠提高后期數(shù)據(jù)訪問效率。
需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。