一種數(shù)據(jù)存儲方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)存儲方法。
【背景技術(shù)】
[0002]隨著各種大數(shù)據(jù)量軟件的應(yīng)用,對于大數(shù)據(jù)存儲的需求越來越迫切?,F(xiàn)有技術(shù)中,實現(xiàn)數(shù)據(jù)存儲的方案在大數(shù)據(jù)量存儲和處理方面均存在相應(yīng)的缺陷,從而導致大數(shù)據(jù)量文件的存儲容量比較大,并且不易于讀寫處理,同時也會占用較多的系統(tǒng)資源。
【發(fā)明內(nèi)容】
[0003]根據(jù)現(xiàn)有技術(shù)中存在的問題,現(xiàn)提供一種數(shù)據(jù)存儲方法的技術(shù)方案,旨在解決現(xiàn)有技術(shù)中存在的海量數(shù)據(jù)存儲不便的問題。
[0004]上述技術(shù)方案具體包括:
[0005]一種數(shù)據(jù)存儲方法,適用于基于時間序列存儲的數(shù)據(jù);其中,將所述數(shù)據(jù)保存于一存儲空間中;
[0006]于所述存儲空間中劃分出至少一個第一存儲區(qū)域;
[0007]將每個所述第一存儲區(qū)域劃分為:
[0008]第一存儲區(qū)塊,所述第一存儲區(qū)塊中被劃分為多個存儲容量相等的第一存儲塊,被實時采集的實時數(shù)據(jù)被依序?qū)懭胂鄳?yīng)的所述第一存儲塊中;
[0009]第二存儲區(qū)塊,所述第二存儲區(qū)塊被劃分為多個存儲容量相等的第二存儲塊,每個所述第二存儲塊中保存有相應(yīng)的歸并數(shù)據(jù);
[0010]所述歸并數(shù)據(jù)為以預(yù)定的第一循環(huán)周期對保存于連續(xù)多個所述第一存儲塊中的所有所述實時數(shù)據(jù)做歸并計算后得到的數(shù)據(jù);
[0011]清除已經(jīng)完成歸并計算的連續(xù)多個所述第一存儲塊中保存的所述實時數(shù)據(jù),并將新產(chǎn)生的所述實時數(shù)據(jù)依序?qū)懭胍驯磺蹇盏乃龅谝淮鎯K中,以完成所述實時數(shù)據(jù)的循環(huán)保存;
[0012]以預(yù)定的第二循環(huán)周期清除至少一個所述第二存儲塊中保存的所述歸并數(shù)據(jù),并將新產(chǎn)生的所述歸并數(shù)據(jù)依序?qū)懭胍驯磺蹇盏乃龅诙鎯K中,以完成所述歸并數(shù)據(jù)的循環(huán)保存。
[0013]優(yōu)選的,該數(shù)據(jù)存儲方法,其中,對所述實時數(shù)據(jù)進行歸并計算的方法包括:
[0014]將預(yù)設(shè)的存儲時段內(nèi)保存的一類所有所述實時數(shù)據(jù)的平均值作為相應(yīng)的所述歸并數(shù)據(jù);或者
[0015]將需要進行歸并計算的連續(xù)多個所述第一存儲塊中保存的所有所述實時數(shù)據(jù)中的最小值作為相應(yīng)的所述歸并數(shù)據(jù);或者
[0016]將需要進行歸并計算的連續(xù)多個所述第一存儲塊中保存的所有所述實時數(shù)據(jù)中的最大值作為相應(yīng)的所述歸并數(shù)據(jù);或者
[0017]將需要進行歸并計算的連續(xù)多個所述第一存儲塊中保存的所有所述實時數(shù)據(jù)中最后一個被保存的所述實時數(shù)據(jù)作為相應(yīng)的所述歸并數(shù)據(jù);或者
[0018]將需要進行歸并計算的連續(xù)多個所述第一存儲塊中保存的所有所述實時數(shù)據(jù)的總和值作為相應(yīng)的所述歸并數(shù)據(jù)。
[0019]優(yōu)選的,該數(shù)據(jù)存儲方法,其中,于相應(yīng)的一個所述第一存儲區(qū)域中保存同一類所述實時數(shù)據(jù)。
[0020]優(yōu)選的,該數(shù)據(jù)存儲方法,其中,于所述存儲空間中劃分出至少一個第二存儲區(qū)域;
[0021]所述第二存儲區(qū)域與所述第一存儲區(qū)域一一對應(yīng);
[0022]于每個所述第二存儲區(qū)域中保存對應(yīng)于所述第一存儲區(qū)域中保存的數(shù)據(jù)的相關(guān)信息;
[0023]所述相關(guān)信息包括:
[0024]對應(yīng)所述第一存儲區(qū)域中保存的所述實時數(shù)據(jù)的分類信息;
[0025]對應(yīng)于所述第一存儲區(qū)域中保存的所述實時數(shù)據(jù)的來源信息;
[0026]對應(yīng)于所述第一存儲區(qū)域中保存的所述實時數(shù)據(jù)的存儲地址偏移信息;
[0027]對應(yīng)于所述第一存儲區(qū)域中保存的所述實時數(shù)據(jù)的歸并計算方法信息。
[0028]優(yōu)選的,該數(shù)據(jù)存儲方法,其中,所述歸并計算方法信息中包括:
[0029]用于表示每個所述第一存儲塊的存儲容量的信息;
[0030]用于表示進行一次歸并計算對應(yīng)的所述第一存儲塊的數(shù)量的信息;
[0031]用于表示對應(yīng)采用的歸并計算方法的信息;
[0032]用于表示依照被采用的歸并計算方法形成的歸并計算函數(shù)的信息。
[0033]優(yōu)選的,該數(shù)據(jù)存儲方法,其中,根據(jù)外部輸入的刪除指令,刪除相應(yīng)的所述第二存儲區(qū)域內(nèi)保存的信息,以刪除保存于相應(yīng)的所述第一存儲區(qū)域中的所有所述實時數(shù)據(jù)以及對應(yīng)的所述歸并數(shù)據(jù)。
[0034]上述技術(shù)方案的有益效果是:解決現(xiàn)有技術(shù)中大數(shù)據(jù)量保存不便的問題,降低了存儲容量的需求,減輕系統(tǒng)負載以及系統(tǒng)資源的占用。
【附圖說明】
[0035]圖1-3是本發(fā)明的較佳的實施例中,存儲空間的劃分示意圖;
[0036]圖4是本發(fā)明的一個較佳的實施例中,采用本發(fā)明技術(shù)方案所述的數(shù)據(jù)存儲方法與采用傳統(tǒng)的數(shù)據(jù)存儲方法之間的比較示意圖表。
【具體實施方式】
[0037]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0038]需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
[0039]下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明,但不作為本發(fā)明的限定。
[0040]對于大數(shù)據(jù)量的存儲,尤其是基于時間序列不斷產(chǎn)生并被保存的數(shù)據(jù),在現(xiàn)有技術(shù)中還存在著較大的缺陷。以監(jiān)控數(shù)據(jù)為例,由于監(jiān)控軟件在執(zhí)行監(jiān)控時,其所監(jiān)控的節(jié)點規(guī)??赡軓膸资綆浊В總€節(jié)點上的監(jiān)控指標,也就是所監(jiān)控的項目通常也在幾十到上百左右,采集監(jiān)控數(shù)據(jù)的間隔一般在1-5分鐘,因此,每次監(jiān)控都會產(chǎn)生海量的監(jiān)控數(shù)據(jù)。
[0041]現(xiàn)有技術(shù)中,對于能夠產(chǎn)生如上文中所述的大量基于時間序列排列的數(shù)據(jù)的數(shù)據(jù)產(chǎn)生軟件,其存儲方案通常會采用:
[0042]一些專用數(shù)據(jù)庫執(zhí)行,例如MRTG或者RRDTool配備的專用數(shù)據(jù)庫;或者
[0043]一些專用的關(guān)系型數(shù)據(jù)庫例如 RDBMS (Relat1nal Database ManagementSystem,關(guān)系數(shù)據(jù)庫管理系統(tǒng));或者
[0044]非關(guān)系型的數(shù)據(jù)庫(NotOnly SQL,NoSQL),例如 LevelDB 或者 RockDB。
[0045]現(xiàn)有技術(shù)中,對于上述專用數(shù)據(jù)庫而言,其單個數(shù)據(jù)庫文件僅能保存一個指標的數(shù)據(jù)。同樣以監(jiān)控數(shù)據(jù)為例,單個數(shù)據(jù)庫文件僅能保存一個監(jiān)控指標相關(guān)的數(shù)據(jù),例如僅能保存關(guān)于處理器監(jiān)控的數(shù)據(jù),而在一個監(jiān)控軟件運行的過程中,至少會產(chǎn)生上萬個監(jiān)控指標,因此會造成文件存儲系統(tǒng)的碎片化,從而使得數(shù)據(jù)查詢和數(shù)據(jù)備份的過程比較復(fù)雜,存儲擴展性也較差。
[0046]而對于上述關(guān)系型數(shù)據(jù)庫而言,由于需要支持ACID特性,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolat1n)、持久性(Durability),因此在并發(fā)寫入數(shù)據(jù)時性能損失比較大,系統(tǒng)資源占用也較高,在日常維護時也需要定時做一些歷史數(shù)據(jù)刪除等工作。
[0047]本發(fā)明的較佳的實施例中,基于現(xiàn)有技術(shù)中存在的上述問題,現(xiàn)提供一種數(shù)據(jù)存儲方法。本發(fā)明的較佳的實施例中,該數(shù)據(jù)存儲方法適用于基于時間序列存儲的數(shù)據(jù),例如上文中所述的監(jiān)控數(shù)據(jù)。
[0048]本發(fā)明的較佳的實施例中,上述數(shù)據(jù)存儲方法的內(nèi)容具體包括:
[0049]將數(shù)據(jù)保存于一存儲空間中。
[