欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種多源時間序列數(shù)據(jù)壓縮存儲方法

文檔序號:6494300閱讀:536來源:國知局
一種多源時間序列數(shù)據(jù)壓縮存儲方法
【專利摘要】本發(fā)明公開了一種多源時間序列數(shù)據(jù)壓縮存儲方法,包含以下步驟:對各部署對象分組;將各部署對象組劃分內(nèi)部組;在內(nèi)存中為每個內(nèi)部組分配一個用于緩存的內(nèi)存文件;在收到某量測點的時間序列數(shù)據(jù)時,進行第一級有損壓縮,并根據(jù)該量測點所屬的部署對象組和內(nèi)部組,找到其對應(yīng)的內(nèi)存文件,將壓縮后的數(shù)據(jù)緩存到內(nèi)存文件中;在內(nèi)存文件寫滿或達到預(yù)設(shè)的時間限制時,將內(nèi)存文件映射到硬盤,進行第二級無損壓縮,將壓縮后的數(shù)據(jù)塊存儲到關(guān)系型數(shù)據(jù)庫中。使得數(shù)據(jù)緩存時能夠快速找到對應(yīng)的內(nèi)存文件,并快速定位存儲位置,提高了緩存效率;采用分塊壓縮方式,提高了壓縮效率,并且有效地節(jié)約了硬盤容量;而且,通過關(guān)系型數(shù)據(jù)庫,提高了數(shù)據(jù)讀取速度。
【專利說明】一種多源時間序列數(shù)據(jù)壓縮存儲方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)壓縮存儲方法,尤其涉及一種多源時間序列數(shù)據(jù)壓縮存儲方法。
【背景技術(shù)】
[0002]對于電力、石油和連鎖經(jīng)營等大型企業(yè),其分站或經(jīng)營場所分布在全國、甚至全球各地,它們的每個分站或經(jīng)營場所又包含許多的量測點,這些大型企業(yè)的數(shù)據(jù)中心,隨時隨刻都要對這些量測點產(chǎn)生的數(shù)據(jù)進行存儲,需要的時候,還要從存儲的眾多數(shù)據(jù)中讀取所需的數(shù)據(jù)。而這些工業(yè)數(shù)據(jù)有一個共同點:數(shù)據(jù)量比較大、數(shù)據(jù)來源比較廣泛。通常,工業(yè)數(shù)據(jù)是各個量測點一段連續(xù)的量,其存儲的數(shù)據(jù)都帶有時間戳。工業(yè)數(shù)據(jù)具有明顯的時間特性,其結(jié)構(gòu)可以用VQT (Value、Quality、Timestamp,數(shù)據(jù)值、質(zhì)量碼、時間戳)來表示。同時工業(yè)數(shù)據(jù)是不斷產(chǎn)生的,從而具有海量數(shù)據(jù)、以及來源廣泛的特點。針對這些特點,怎樣更快速地對數(shù)據(jù)進行存儲,而且有效地利用存儲空間是需要亟待解決的問題。
[0003]在實時數(shù)據(jù)庫中,索引策略決定數(shù)據(jù)庫快速定位數(shù)據(jù)的效率,索引可以提高數(shù)據(jù)存儲和查詢的效率。索引的作用相當于圖書的目錄,可以根據(jù)目錄中的頁碼快速找到所需的內(nèi)容。當表中有大量記錄時,若要對表進行查詢,第一種搜索信息方式是全表搜索,是將所有記錄一一取出,和查詢條件進行一一對比,然后返回滿足條件的記錄,這樣做會消耗大量數(shù)據(jù)庫系統(tǒng)時間,并造成大量磁盤I/o操作;第二種就是在表中建立索引,然后在索引中找到符合查詢條件的索引值,最后通過保存在索引中的ROWID (相當于頁碼)快速找到表中對應(yīng)的記錄。
[0004]高效的索引不僅取決于索引策略,還取決于數(shù)據(jù)的存儲方式,以及待存儲的數(shù)據(jù)的特性。對于數(shù)量大、來源范圍廣的工業(yè)數(shù)據(jù),采用通用的存儲和索引方式存在以下問題:
[0005]由于工業(yè)數(shù)據(jù)是隨著時間推移逐漸產(chǎn)生、進行存儲的,即不同的數(shù)據(jù)源(量測點)均是陸續(xù)不規(guī)律地生成數(shù)據(jù);傳統(tǒng)的存儲方式一般都是預(yù)先為每個量測點分配一較大的存儲空間,在收到屬于該量測點的數(shù)據(jù)時,將其存到對應(yīng)空間。然而這種數(shù)據(jù)存儲方式所需預(yù)留的存儲空間極大,而每個量測點的數(shù)據(jù)量是不可預(yù)測的,在部分量測點沒有數(shù)據(jù)需要存儲、或存儲數(shù)據(jù)比較少時,會造成存儲空間的很大浪費。并且,在量測點的數(shù)量是成千上萬、甚至更多的情況下,采用這種存儲方式,所需要的索引時間依然較多,需要進一步改進。
[0006]為了節(jié)省存儲空間提高存儲效率,現(xiàn)有技術(shù)還會通過數(shù)據(jù)壓縮和自定義存儲結(jié)構(gòu)的方式來提高存儲效率,從而提高系統(tǒng)整體處理速度及性能。對實時數(shù)據(jù)庫而言,數(shù)據(jù)壓縮可以帶來兩方面的好處:一是,占用硬盤容量減??;二是,系統(tǒng)整體處理速度提高。目前,很多實時數(shù)據(jù)庫的存儲方案大多采用二級壓縮技術(shù)。通常的具體做法是第一級采用有損壓縮,如PI中使用的旋轉(zhuǎn)門壓縮算法,IH中使用的死區(qū)壓縮算法;第二級采用無損壓縮,針對具體的量測點數(shù)據(jù)項(VQT),對相鄰的數(shù)據(jù)項之間的值(Value)、質(zhì)量碼(Quality)、時間戳(Timestamp)采用適當降低數(shù)據(jù)精度以及編碼壓縮等方法。在實際系統(tǒng)中,這類方法也存在制約因素,如壓縮、解壓的難度和時間消耗,數(shù)據(jù)壓縮率與數(shù)據(jù)量大小有一定關(guān)系,即在一定量范圍內(nèi),壓縮率順著數(shù)據(jù)量的增大而迅速增大,超過一定范圍后,壓縮率增大不明顯。
[0007]另外,由于上述方法常結(jié)合自定義格式的文件來實現(xiàn)自定義結(jié)構(gòu)的存儲,自定義存儲結(jié)構(gòu)雖然能夠提高存儲速度降低存儲空間,但其查詢速度通常要比傳統(tǒng)的關(guān)系型數(shù)據(jù)庫慢,在一定程度上限制了數(shù)據(jù)讀取的速度。

【發(fā)明內(nèi)容】

[0008]本發(fā)明主要解決的技術(shù)問題是提供一種多源時間序列數(shù)據(jù)壓縮存儲方法,使得提高了數(shù)據(jù)壓縮存儲過程中的緩存效率和壓縮效率,從而提高了數(shù)據(jù)整體存儲效率,并且有效地節(jié)約了硬盤容量,加快了數(shù)據(jù)查詢速度。
[0009]為了解決上述技術(shù)問題,本發(fā)明提供了一種多源時間序列數(shù)據(jù)壓縮存儲方法,多源時間序列數(shù)據(jù)來自不同部署對象的不同量測點,包含以下步驟:
[0010]根據(jù)各部署對象所包含的量測點數(shù)量,對各部署對象分組,將所包含量測點數(shù)量總和小于預(yù)設(shè)值的至少兩個部署對象分為一組,將其余的每個部署對象分別分為一組;
[0011]對各部署對象組進行組內(nèi)劃分,以預(yù)設(shè)值為界限,每達到預(yù)設(shè)值數(shù)量的量測點劃分為一內(nèi)部組,對應(yīng)一組內(nèi)標識,其余不足預(yù)設(shè)值數(shù)量的量測點劃分為一內(nèi)部組;
[0012]在內(nèi)存中為每個部署對象組中的每個內(nèi)部組分配一個用于緩存的內(nèi)存文件,并進行內(nèi)存鏡像處理;
[0013]在收到來自一部署對象轄下量測點的時間序列數(shù)據(jù)時,對該數(shù)據(jù)進行第一級有損壓縮,并根據(jù)該量測點所屬的部署對象組和內(nèi)部組,找到該量測點對應(yīng)的內(nèi)存文件,將該壓縮后的時間序列數(shù)據(jù)緩存到該內(nèi)存文件中;
[0014]在內(nèi)存文件寫滿或達到預(yù)設(shè)的時間限制時,對該內(nèi)存文件進行第二級無損壓縮,將壓縮后的數(shù)據(jù)塊存儲到關(guān)系型數(shù)據(jù)庫中。
[0015]作為進一步改進,第二級無損壓縮為LZW壓縮;和/或內(nèi)存文件對應(yīng)的存儲空間為512K至2M之間;和/或預(yù)設(shè)的時間限制為30分鐘。
[0016]作為進一步改進,內(nèi)存文件的文件體由固定大小、連續(xù)的數(shù)據(jù)片組成,包含索引區(qū)和數(shù)據(jù)區(qū),索引區(qū)中保存每個量測點在該內(nèi)存文件中存儲位置的索引,數(shù)據(jù)區(qū)中各連續(xù)的數(shù)據(jù)片對應(yīng)不同的量測點,單個數(shù)據(jù)片保存同一量測點的數(shù)據(jù)。
[0017]作為進一步改進,將壓縮后的時間序列數(shù)據(jù)緩存到內(nèi)存文件中的步驟中,包含以下子步驟:
[0018]根據(jù)該數(shù)據(jù)所屬量測點的本地標識找到該量測點對應(yīng)的存儲位置索引,如果該索引表示當前未在數(shù)據(jù)區(qū)中為該量測點分配數(shù)據(jù)片、或所分配的數(shù)據(jù)片已存滿,則在數(shù)據(jù)區(qū)中為該量測點分配一空白數(shù)據(jù)片,所分配的數(shù)據(jù)片與該數(shù)據(jù)區(qū)中已分配的數(shù)據(jù)片連續(xù),將量測點數(shù)據(jù)存儲在該新分配的數(shù)據(jù)片中;反之,則將量測點的數(shù)據(jù)存儲在該索引指示的數(shù)據(jù)片的相應(yīng)位置;
[0019]如果在存儲過程中,當前數(shù)據(jù)片已存滿,則為該量測點新分配一數(shù)據(jù)片進行存儲,所分配的數(shù)據(jù)片與該數(shù)據(jù)區(qū)中已分配的數(shù)據(jù)片連續(xù)。
[0020]作為進一步改進,該方法還包含以下步驟:
[0021]在接收到來自部署對象轄下量測點的時間序列數(shù)據(jù)之前,在內(nèi)存文件的數(shù)據(jù)區(qū)中為該內(nèi)存文件對應(yīng)的內(nèi)部組的所有量測點預(yù)分配一數(shù)據(jù)片進行數(shù)據(jù)緩存,在索引區(qū)中保存各量測點對應(yīng)的數(shù)據(jù)片的位置;或者
[0022]在初次收到一量測點數(shù)據(jù)時,在內(nèi)存文件數(shù)據(jù)區(qū)中為該量測點分配一數(shù)據(jù)片進行數(shù)據(jù)緩存,在索引區(qū)中保存該量測點對應(yīng)的數(shù)據(jù)片的位置。
[0023]作為進一步改進,該方法還包含以下步驟:
[0024]為每個部署對象組的內(nèi)部組中的各量測點分配唯一對應(yīng)一本地標識,該本地標識為連續(xù)的序列;
[0025]索引區(qū)中以本地標識為順序,依次保存每個量測點在該存儲文件中存儲位置的索弓I ;
[0026]根據(jù)該數(shù)據(jù)所屬量測點的本地標識找到該量測點對應(yīng)的存儲位置索引的步驟中,根據(jù)量測點的本地標識和單個索引的長度直接定位該量測點對應(yīng)的索引位置、確定該量測點數(shù)據(jù)在該內(nèi)存文件中的存儲位置。
[0027]作為進一步改進,待存儲的量測點數(shù)據(jù)包含:數(shù)據(jù)值、質(zhì)量碼、和時間戳;
[0028]數(shù)據(jù)片包含頁面頭和頁面體,將量測點數(shù)據(jù)存儲在數(shù)據(jù)片的步驟中,將量測點數(shù)據(jù)存儲在數(shù)據(jù)片的頁面體中;在將量測點數(shù)據(jù)存儲在數(shù)據(jù)片中的步驟之后,將該數(shù)據(jù)片中保存的數(shù)據(jù)的起始時間和結(jié)束時間存儲在該數(shù)據(jù)片的頁面頭中。
[0029]作為進一步改進,對內(nèi)存文件進行第二級無損壓縮的步驟中,以數(shù)據(jù)片為單位分別進行無損壓縮,得到壓縮后的各數(shù)據(jù)塊;
[0030]將壓縮后的數(shù)據(jù)塊存儲到關(guān)系型數(shù)據(jù)庫中的步驟中,在關(guān)系型數(shù)據(jù)庫中保存該數(shù)據(jù)塊對應(yīng)的量測點的標識、該數(shù)據(jù)塊中所存儲數(shù)據(jù)的起始時間、結(jié)束時間或相對于起始時間的時間跨度、數(shù)據(jù)塊長度、和該壓縮后的數(shù)據(jù)塊。
[0031]作為進一步改進,將量測點的數(shù)據(jù)存儲在該索引指示的數(shù)據(jù)片或新分配的數(shù)據(jù)片的步驟之后,還包含以下步驟:
[0032]提取該數(shù)據(jù)片的統(tǒng)計數(shù)據(jù),統(tǒng)計數(shù)據(jù)至少包含以下之一:該數(shù)據(jù)片對應(yīng)的量測點標識、該數(shù)據(jù)片中保存的數(shù)據(jù)的起始時間和結(jié)束時間、結(jié)束時間或相對于起始時間的時間跨度、數(shù)據(jù)片中保存的最大值、該最大值對應(yīng)的時間、數(shù)據(jù)片中保存的最小值、該最小值對應(yīng)的時間、數(shù)據(jù)片中保存的平均值、數(shù)據(jù)片中保存的值總和;
[0033]將壓縮后的數(shù)據(jù)塊存儲到關(guān)系型數(shù)據(jù)庫中的步驟中,還在關(guān)系型數(shù)據(jù)庫中保存該數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)片的統(tǒng)計數(shù)據(jù)。
[0034]作為進一步改進,該方法還包含以下步驟:在部署對象新增量測點時,優(yōu)先將新增的量測點分配到其所屬部署對象組中已有的不足預(yù)設(shè)值數(shù)量的內(nèi)部組,超出預(yù)設(shè)值數(shù)量的部分量測點,劃分為該部署對象組中一新內(nèi)部組,對應(yīng)一新存儲文件。
[0035]本發(fā)明實施方式與現(xiàn)有技術(shù)相比,主要區(qū)別及其效果在于:根據(jù)各部署對象所包含的量測點數(shù)量,對各部署對象分組,將所包含量測點數(shù)量總和小于預(yù)設(shè)值的至少兩個部署對象分為一組,將其余的每個部署對象分別分為一組;對各部署對象組進行組內(nèi)劃分,以預(yù)設(shè)值為界限,每達到預(yù)設(shè)值數(shù)量的量測點劃分為一內(nèi)部組,對應(yīng)一組內(nèi)標識,其余不足預(yù)設(shè)值數(shù)量的量測點劃分為一內(nèi)部組;在內(nèi)存中為每個部署對象組中的每個內(nèi)部組分配一個用于緩存的內(nèi)存文件;在收到來自一部署對象轄下量測點的時間序列數(shù)據(jù)時,對該數(shù)據(jù)進行第一級有損壓縮,并根據(jù)該量測點所屬的部署對象組和內(nèi)部組,找到該量測點對應(yīng)的內(nèi)存文件,將該壓縮后的時間序列數(shù)據(jù)緩存到該內(nèi)存文件中;在內(nèi)存文件寫滿或達到預(yù)設(shè)的時間限制時,對內(nèi)存文件進行第二級無損壓縮,將壓縮后的數(shù)據(jù)塊存儲到關(guān)系型數(shù)據(jù)庫中。通過部署對象組和內(nèi)部組的劃分,能夠快速找到每個量測點所對應(yīng)的緩存文件,從而提高了量測點數(shù)據(jù)緩存的效率;通過將內(nèi)存中自定義格式文件存儲與硬盤上關(guān)系型數(shù)據(jù)庫存儲相結(jié)合,使得在實現(xiàn)快速緩存的同時,提高了后期數(shù)據(jù)查詢速度;通過在將數(shù)據(jù)存儲到關(guān)系型數(shù)據(jù)庫之前,先進行分塊的第二級無損壓縮,使得在提高了壓縮效率、節(jié)約存儲空間的同時,為數(shù)據(jù)庫后期的數(shù)據(jù)查詢提供了便利。
[0036]通過為每個部署對象組的內(nèi)部組中的各量測點分配一連續(xù)序列的本地標識,并且在索引區(qū)中以該本地標識為順序,依次保存每個量測點在內(nèi)存文件中存儲位置的索引的方式,使得在進行數(shù)據(jù)緩存時,能夠根據(jù)量測點本地標識快速定位每個量測點在內(nèi)存文件中的存儲位置,從而進一步提高了量測點數(shù)據(jù)緩存的效率。
[0037]按需為量測點分配數(shù)據(jù)片進行數(shù)據(jù)存儲,每次分配的數(shù)據(jù)片很小,一般只有4K左右,在當前數(shù)據(jù)片存儲滿后再分配新的數(shù)據(jù)片,使得每個量測點對應(yīng)的存儲空間與其對應(yīng)的數(shù)據(jù)量成正比,有效利用了內(nèi)存存儲空間,不會造成存儲空間的浪費。
[0038]在將數(shù)據(jù)存儲到關(guān)系型數(shù)據(jù)庫之前,對內(nèi)存文件進行第二級無損壓縮時,以數(shù)據(jù)片為單位分別進行無損壓縮,使得在用戶進行數(shù)據(jù)查詢時,可以從關(guān)系型數(shù)據(jù)庫中直接檢索到符合查詢條件的數(shù)據(jù)塊,將壓縮的數(shù)據(jù)塊直接傳輸?shù)娇蛻舳诉M行解壓讀取,而無需先進行解壓再判斷是否符合查詢條件,從而提高了數(shù)據(jù)讀取速度。
【專利附圖】

【附圖說明】
[0039]圖1是本發(fā)明一較佳實施方式中的一種多源時間序列數(shù)據(jù)壓縮存儲方法的流程圖。
【具體實施方式】
[0040]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明的實施方式作進一步地詳細描述。
[0041]本發(fā)明一較佳實施方式涉及一種多源時間序列數(shù)據(jù)壓縮存儲方法,多源時間序列數(shù)據(jù)來自不同部署對象的不同量測點,該方法的具體流程圖如圖1所示。
[0042]步驟101中,根據(jù)各部署對象所包含的量測點數(shù)量,對各部署對象分組。本步驟中,將所包含量測點數(shù)量總和小于預(yù)設(shè)值的兩個或兩個以上部署對象分為一組,將其余的每個部署對象分別分為一組。
[0043]舉例而言,預(yù)設(shè)值為20000,部署對象I有量測點10000個,部署對象2有量測點9000個,部署對象3有量測點6000個,部署對象4有量測點7000個,部署對象5有量測點5000個,部署對象6有量測點30000個,部署對象7有量測點18000個……,就可以把部署對象I和部署對象2分為一組,即部署對象組I ;部署對象3、部署對象4和部署對象5分為一組,即部署對象組2 ;部署對象6為一組,即部署對象組3 ;部署對象7為一組,即部署對象組4 ;......[0044]步驟102中,對各部署對象組進行組內(nèi)劃分。本步驟中,以預(yù)設(shè)值為界限,每達到預(yù)設(shè)值數(shù)量的量測 點劃分為一內(nèi)部組,對應(yīng)一組內(nèi)標識,其余不足預(yù)設(shè)值數(shù)量的量測點劃分為一內(nèi)部組。[0045]針對步驟101中的例子,部署對象組I中共有19000個量測點,沒有達到預(yù)設(shè)值20000個,故部署對象組I只能劃分一個內(nèi)部組,即部署對象組1-內(nèi)部組I ;同樣,部署對象組2和部署對象組4也只能劃分一個內(nèi)部組,即部署對象組2-內(nèi)部組I和部署對象組4-內(nèi)部組I ;部署對象組3中有30000個量測點,超過了預(yù)設(shè)值20000個,但少于40000個,故部署對象組3劃分兩個內(nèi)部組,其中前20000個為一個內(nèi)部組,即部署對象組3-內(nèi)部組1,后10000個為一個內(nèi)部組,即部署對象組3-內(nèi)部組2?!?br> [0046]步驟103中,為每個部署對象組的內(nèi)部組中的各量測點分配唯一對應(yīng)一本地標識。本步驟中,為每個部署對象組的內(nèi)部組中的各量測點分配的本地標識為連續(xù)的;各量測點標識由部署對象組標識、內(nèi)部組標識和本地標識三部分構(gòu)成,例如,部署對象組I的內(nèi)部組I中有20000個量測點,則這20000個量測點的標識依次為:部署對象組1-內(nèi)部組1_1,部署對象組1-內(nèi)部組1-2,……,部署對象組1-內(nèi)部組1-20000。
[0047]需要進一步說明的是,在部署對象新增量測點時,優(yōu)先將新增的量測點分配到其所屬部署對象組中已有的不足預(yù)設(shè)值數(shù)量的內(nèi)部組,超出預(yù)設(shè)值數(shù)量的部分量測點,劃分為該部署對象組中一新內(nèi)部組。
[0048]步驟104中,在內(nèi)存中為每個部署對象組中的每個內(nèi)部組分配一個用于緩存的內(nèi)存文件,并采用內(nèi)存鏡像文件來進行臨時持久化處理,設(shè)置塊緩存與鏡像文件共用內(nèi)存區(qū)。
[0049]需要進一步說明的是,各部署對象組中各內(nèi)部組對應(yīng)的內(nèi)存文件的名稱中包含該部署對象組和該內(nèi)部組標識;內(nèi)存文件的文件體由固定大小、連續(xù)的數(shù)據(jù)片組成,包含索引區(qū)和數(shù)據(jù)區(qū),索引區(qū)中保存每個量測點在該內(nèi)存文件中存儲位置的索引,數(shù)據(jù)區(qū)中各連續(xù)的數(shù)據(jù)片對應(yīng)不同的量測點,單個數(shù)據(jù)片保存同一量測點的數(shù)據(jù)。
[0050]針對步驟103,若部署對象中新增量測點時劃分了新的內(nèi)部組,則新的內(nèi)部組對應(yīng)新的內(nèi)存文件。
[0051]步驟105中,在內(nèi)存文件的數(shù)據(jù)區(qū)中為該內(nèi)存文件對應(yīng)的內(nèi)部組的所有量測點預(yù)分配一數(shù)據(jù)片進行數(shù)據(jù)緩存。本步驟中,由于每個數(shù)據(jù)片的大小只有4K,所以即使部分量測點在一定時間內(nèi)沒有存入數(shù)據(jù),也不會造成內(nèi)存空間的浪費。
[0052]步驟106中,在索引區(qū)中保存各量測點對應(yīng)的數(shù)據(jù)片的位置。本步驟中,索引區(qū)中以本地標識為順序,依次保存每個量測點在該存儲文件中存儲位置的索引。
[0053]針對步驟103中的例子,量測點:部署對象組1-內(nèi)部組1-1,部署對象組1-內(nèi)部組1-2,……,部署對象組1-內(nèi)部組1-20000在該存儲文件索引區(qū)中的索引依次為:第一個8
字節(jié)(即O至8字節(jié)),第二個8字節(jié)(即9至16字節(jié)),......,第20000個8字節(jié)(即159993
至160000字節(jié))。
[0054]在具體實施過程中,也可以在初次收到一量測點數(shù)據(jù)時,在內(nèi)存文件數(shù)據(jù)區(qū)中為該量測點分配一數(shù)據(jù)片進行數(shù)據(jù)緩存,在索引區(qū)中保存該量測點對應(yīng)的數(shù)據(jù)片的位置。
[0055]步驟107中,收到來自一部署對象轄下量測點的時間序列數(shù)據(jù)。該數(shù)據(jù)包含:數(shù)據(jù)值、質(zhì)量碼、和時間戳。
[0056]步驟108中,對該數(shù)據(jù)進行第一級有損壓縮。
[0057]步驟109中,根據(jù)該量測點所屬的部署對象組和內(nèi)部組,找到該量測點對應(yīng)的內(nèi)存文件。 [0058]通過這種方式,使得在數(shù)據(jù)存儲過程中能夠快速找到對應(yīng)的存儲文件對數(shù)據(jù)進行存儲,從而提高了數(shù)據(jù)存儲效率。
[0059] 步驟110中,根據(jù)該數(shù)據(jù)所屬量測點的本地標識找到該量測點對應(yīng)的存儲位置索引。本步驟中,根據(jù)量測點的本地標識和單個索引的長度直接定位該量測點對應(yīng)的索引位置、確定該量測點數(shù)據(jù)在該內(nèi)存文件中的存儲位置。
[0060]針 對步驟106中的例子,本地標識為部署對象組1-內(nèi)部組1-n (I ^ n ^ 20000)的量測點索引開始位置為:索引區(qū)中第[(η-1)Χ8+1]個字節(jié)。比如,本地標識為部署對象組1-內(nèi)部組1-30的量測點,其索引在索引區(qū)中的開始位置為:第[(30-1) Χ8+1] = 233個字節(jié)。
[0061]通過這種方式,使得能夠快速定位量測點在存儲文件中的存儲位置,從而進一步提高了數(shù)據(jù)存儲效率。
[0062]步驟111中,將該壓縮后的時間序列數(shù)據(jù)緩存到該內(nèi)存文件中,并采用內(nèi)存鏡像的方式進行持久化處理。通過設(shè)置塊緩存與鏡像文件共用內(nèi)存區(qū),既簡化緩存管理,又滿足實時數(shù)據(jù)庫對數(shù)據(jù)災(zāi)難恢復(fù)的設(shè)計需要,也兼顧系統(tǒng)的存儲性能要求。
[0063]需要進一步說明的是,如果步驟110中量測點索引表示當前未在數(shù)據(jù)區(qū)中為該量測點分配數(shù)據(jù)片、或所分配的數(shù)據(jù)片已存滿,則在數(shù)據(jù)區(qū)中為該量測點分配一空白數(shù)據(jù)片,所分配的數(shù)據(jù)片與該數(shù)據(jù)區(qū)中已分配的數(shù)據(jù)片連續(xù),將量測點數(shù)據(jù)存儲在該新分配的數(shù)據(jù)片中;反之,則將量測點的數(shù)據(jù)存儲在索引指示的數(shù)據(jù)片的相應(yīng)位置;如果在存儲過程中,當前數(shù)據(jù)片已存滿,則為該量測點新分配一數(shù)據(jù)片進行存儲,所分配的數(shù)據(jù)片與該數(shù)據(jù)區(qū)中已分配的數(shù)據(jù)片連續(xù)。
[0064]本實施方式中,數(shù)據(jù)片包含頁面頭和頁面體,將量測點數(shù)據(jù)存儲在數(shù)據(jù)片的頁面體中;在將量測點數(shù)據(jù)存儲在數(shù)據(jù)片中后,將該數(shù)據(jù)片中保存的數(shù)據(jù)的起始時間和結(jié)束時間存儲在該數(shù)據(jù)片的頁面頭中;而后,提取該數(shù)據(jù)片的統(tǒng)計數(shù)據(jù),統(tǒng)計數(shù)據(jù)可以包含:該數(shù)據(jù)片對應(yīng)的量測點標識、該數(shù)據(jù)片中保存的數(shù)據(jù)的起始時間和結(jié)束時間、結(jié)束時間或相對于起始時間的時間跨度、數(shù)據(jù)片中保存的最大值、該最大值對應(yīng)的時間、數(shù)據(jù)片中保存的最小值、該最小值對應(yīng)的時間、數(shù)據(jù)片中保存的平均值、數(shù)據(jù)片中保存的值總和等。
[0065]由于緩存的時間序列數(shù)據(jù)具有不穩(wěn)定性,本實施方式對這些數(shù)據(jù)采用內(nèi)存鏡像的方式進行持久化處理。
[0066]步驟112中,判斷內(nèi)存文件是否寫滿或達到預(yù)設(shè)的時間限制。如果是,進入步驟113,如果不是,則進入步驟110。由于數(shù)據(jù)壓縮率與數(shù)據(jù)量大小有一定關(guān)系,即在一定量范圍內(nèi),壓縮率順著數(shù)據(jù)量的增大而迅速增大,超過一定范圍后,壓縮率增大不明顯??紤]到實時數(shù)據(jù)庫系統(tǒng)整體的性能需求,本實施方式中數(shù)據(jù)塊的大小控制在512Κ - 2Μ,數(shù)據(jù)塊時間跨度控制在30分鐘左右。
[0067]步驟113中,將內(nèi)存文件拷入壓縮區(qū)。
[0068]舉例而言,步驟112中,內(nèi)存文件對應(yīng)的存儲空間為1Μ,預(yù)設(shè)的時間限制為30分鐘,則當內(nèi)存文件已寫入IM數(shù)據(jù)時,或內(nèi)存文件雖然沒有寫入IM數(shù)據(jù),但從該內(nèi)存文件上次拷入壓縮區(qū)已達到30分鐘的時間限制,就會將該內(nèi)存文件拷入壓縮區(qū)。
[0069]通過這種方式,可以提高數(shù)據(jù)壓縮存儲過程中的壓縮效率,從而又可以進一步提高數(shù)據(jù)存儲效率,并且有效地節(jié)約硬盤容量。
[0070]步驟114中,以數(shù)據(jù)片為單位,對壓縮區(qū)內(nèi)的數(shù)據(jù)進行第二級無損壓縮。[0071]需要進一步說明的是,每個數(shù)據(jù)片的大小只有4K,拷入壓縮區(qū)的內(nèi)存文件中可能包含幾百個數(shù)據(jù)片,第二級無損壓縮以每個數(shù)據(jù)片為單位分別進行LZW壓縮,得到壓縮后的各數(shù)據(jù)塊,即該內(nèi)存文件中有多少個數(shù)據(jù)片,就會壓縮成多少個數(shù)據(jù)塊,壓縮后各數(shù)據(jù)塊信息的基本表如表1所不。
[0072]
【權(quán)利要求】
1.一種多源時間序列數(shù)據(jù)壓縮存儲方法,所述多源時間序列數(shù)據(jù)來自不同部署對象的不同量測點,其特征在于,包含以下步驟: 根據(jù)各部署對象所包含的量測點數(shù)量,對所述各部署對象分組,將所包含量測點數(shù)量總和小于預(yù)設(shè)值的至少兩個部署對象分為一組,將其余的每個部署對象分別分為一組; 對各部署對象組進行組內(nèi)劃分,以所述預(yù)設(shè)值為界限,每達到預(yù)設(shè)值數(shù)量的量測點劃分為一內(nèi)部組,對應(yīng)一組內(nèi)標識,其余不足預(yù)設(shè)值數(shù)量的量測點劃分為一內(nèi)部組; 在內(nèi)存中為每個部署對象組中的每個內(nèi)部組分配一個用于緩存的內(nèi)存文件,并進行內(nèi)存鏡像處理; 在收到來自一部署對象轄下量測點的時間序列數(shù)據(jù)時,對該數(shù)據(jù)進行第一級有損壓縮,并根據(jù)該量測點所屬的部署對象組和內(nèi)部組,找到該量測點對應(yīng)的內(nèi)存文件,將該壓縮后的時間序列數(shù)據(jù)緩存到該內(nèi)存文件中; 在所述內(nèi)存文件寫滿或達到預(yù)設(shè)的時間限制時,對該內(nèi)存文件進行第二級無損壓縮,將壓縮后的數(shù)據(jù)塊存儲到關(guān)系型數(shù)據(jù)庫中。
2.根據(jù)權(quán)利要求1所述的多源時間序列數(shù)據(jù)壓縮存儲方法,其特征在于,所述第二級無損壓縮為LZW壓縮;和/或 所述內(nèi)存文件對 應(yīng)的存儲空間為512K至2M之間;和/或 所述預(yù)設(shè)的時間限制為30分鐘。
3.根據(jù)權(quán)利要求1所述的多源時間序列數(shù)據(jù)壓縮存儲方法,其特征在于, 所述內(nèi)存文件的文件體由固定大小、連續(xù)的數(shù)據(jù)片組成,包含索引區(qū)和數(shù)據(jù)區(qū),所述索引區(qū)中保存每個所述量測點在該內(nèi)存文件中存儲位置的索引,所述數(shù)據(jù)區(qū)中各連續(xù)的數(shù)據(jù)片對應(yīng)不同的量測點,單個數(shù)據(jù)片保存同一量測點的數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的多源時間序列數(shù)據(jù)壓縮存儲方法,其特征在于,所述將壓縮后的時間序列數(shù)據(jù)緩存到內(nèi)存文件中的步驟中,包含以下子步驟: 根據(jù)該數(shù)據(jù)所屬量測點的本地標識找到該量測點對應(yīng)的存儲位置索引,如果該索引表示當前未在數(shù)據(jù)區(qū)中為該量測點分配數(shù)據(jù)片、或所分配的數(shù)據(jù)片已存滿,則在所述數(shù)據(jù)區(qū)中為該量測點分配一空白數(shù)據(jù)片,所分配的數(shù)據(jù)片與該數(shù)據(jù)區(qū)中已分配的數(shù)據(jù)片連續(xù),將所述量測點數(shù)據(jù)存儲在該新分配的數(shù)據(jù)片中;反之,則將所述量測點的數(shù)據(jù)存儲在該索引指示的數(shù)據(jù)片的相應(yīng)位置; 如果在存儲過程中,當前數(shù)據(jù)片已存滿,則為該量測點新分配一數(shù)據(jù)片進行存儲,所分配的數(shù)據(jù)片與該數(shù)據(jù)區(qū)中已分配的數(shù)據(jù)片連續(xù)。
5.根據(jù)權(quán)利要求4所述的多源時間序列數(shù)據(jù)壓縮存儲方法,其特征在于,還包含以下步驟: 在接收到來自部署對象轄下量測點的時間序列數(shù)據(jù)之前,在所述內(nèi)存文件的數(shù)據(jù)區(qū)中為該內(nèi)存文件對應(yīng)的內(nèi)部組的所有量測點預(yù)分配一數(shù)據(jù)片進行數(shù)據(jù)緩存,在所述索引區(qū)中保存各量測點對應(yīng)的數(shù)據(jù)片的位置;或者 在初次收到一量測點數(shù)據(jù)時,在所述內(nèi)存文件數(shù)據(jù)區(qū)中為該量測點分配一數(shù)據(jù)片進行數(shù)據(jù)緩存,在所述索引區(qū)中保存該量測點對應(yīng)的數(shù)據(jù)片的位置。
6.根據(jù)權(quán)利要求4所述的多源時間序列數(shù)據(jù)壓縮存儲方法,其特征在于,還包含以下步驟:為每個部署對象組的內(nèi)部組中的各量測點分配唯一對應(yīng)一本地標識,所述本地標識為連續(xù)的序列; 所述索引區(qū)中以所述本地標識為順序,依次保存每個所述量測點在該內(nèi)存文件中存儲位置的索引; 所述根據(jù)該數(shù)據(jù)所屬量測點的本地標識找到該量測點對應(yīng)的存儲位置索引的步驟中,根據(jù)所述量測點的本地標識和單個索引的長度直接定位該量測點對應(yīng)的索引位置、確定該量測點數(shù)據(jù)在該內(nèi)存文件中的存儲位置。
7.根據(jù)權(quán)利要求4所述的多源時間序列數(shù)據(jù)壓縮存儲方法,其特征在于,所述待存儲的量測點數(shù)據(jù)包含:數(shù)據(jù)值、質(zhì)量碼、和時間戳; 所述數(shù)據(jù)片包含頁面頭和頁面體,所述將量測點數(shù)據(jù)存儲在數(shù)據(jù)片的步驟中,將量測點數(shù)據(jù)存儲在數(shù)據(jù)片的頁面體中;在將量測點數(shù)據(jù)存儲在數(shù)據(jù)片中的步驟之后,將該數(shù)據(jù)片中保存的數(shù)據(jù)的起始時間和結(jié)束時間存儲在該數(shù)據(jù)片的頁面頭中。
8.根據(jù)權(quán)利要求1至7中任意一項所述的多源時間序列數(shù)據(jù)壓縮存儲方法,其特征在于,所述內(nèi)存文件進行第二級無損壓縮的步驟中,以數(shù)據(jù)片為單位分別進行無損壓縮,得到壓縮后的各數(shù)據(jù)塊; 所述將壓縮后的數(shù)據(jù)塊存儲到關(guān)系型數(shù)據(jù)庫中的步驟中,在所述關(guān)系型數(shù)據(jù)庫中保存該數(shù)據(jù)塊對應(yīng)的量測點的標識、該數(shù)據(jù)塊中所存儲數(shù)據(jù)的起始時間、結(jié)束時間或相對于起始時間的時間跨度、數(shù)據(jù)塊長度、和該壓縮后的數(shù)據(jù)塊。
9.根據(jù)權(quán)利要求8所述的多源時間序列數(shù)據(jù)壓縮存儲方法,其特征在于,所述將量測點的數(shù)據(jù)存儲在該索引指示的數(shù)據(jù)片或新分配的數(shù)據(jù)片的步驟之后,還包含以下步驟: 提取該數(shù)據(jù)片的統(tǒng)計數(shù)據(jù),所述統(tǒng)計數(shù)據(jù)至少包含以下之一:該數(shù)據(jù)片對應(yīng)的量測點標識、該數(shù)據(jù)片中保存的數(shù)據(jù)的起始時間和結(jié)束時間、結(jié)束時間或相對于起始時間的時間跨度、數(shù)據(jù)片中保存的最大值、該最大值對應(yīng)的時間、數(shù)據(jù)片中保存的最小值、該最小值對應(yīng)的時間、數(shù)據(jù)片中保存的平均值、數(shù)據(jù)片中保存的值總和; 所述將壓縮后的數(shù)據(jù)塊存儲到關(guān)系型數(shù)據(jù)庫中的步驟中,還在所述關(guān)系型數(shù)據(jù)庫中保存該數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)片的統(tǒng)計數(shù)據(jù)。
10.根據(jù)權(quán)利要求1至8中任意一項所述的多源時間序列數(shù)據(jù)壓縮存儲方法,其特征在于,還包含以下步驟: 在所述部署對象新增量測點時,優(yōu)先將所述新增的量測點分配到其所屬部署對象組中已有的不足預(yù)設(shè)值數(shù)量的內(nèi)部組,超出預(yù)設(shè)值數(shù)量的部分量測點,劃分為該部署對象組中一新內(nèi)部組,對應(yīng)一新內(nèi)存文件。
【文檔編號】G06F17/30GK103914449SQ201210591238
【公開日】2014年7月9日 申請日期:2012年12月29日 優(yōu)先權(quán)日:2012年12月29日
【發(fā)明者】俞高宇, 張曉華, 梁俊 申請人:上??婶斚到y(tǒng)軟件有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
屏东县| 休宁县| 喀喇沁旗| 合水县| 鄯善县| 报价| 海口市| 柳林县| 合山市| 达孜县| 汉阴县| 宕昌县| 牙克石市| 望奎县| 襄樊市| 吉林市| 仙游县| 大名县| 若羌县| 怀远县| 紫阳县| 新巴尔虎左旗| 曲沃县| 类乌齐县| 蕲春县| 齐河县| 林芝县| 神木县| 察雅县| 陵水| 周宁县| 米泉市| 平武县| 广东省| 慈利县| 乌拉特中旗| 册亨县| 保康县| 砀山县| 依兰县| 虹口区|