一種用于嵌入式系統(tǒng)中的數(shù)據(jù)查詢方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及計算機數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種用于嵌入式系統(tǒng)中的數(shù)據(jù)查詢方法和裝置。
【背景技術(shù)】
[0002]隨著應(yīng)用系統(tǒng)的日益復(fù)雜,對系統(tǒng)存儲和讀寫能力的要求也越來越高,傳統(tǒng)嵌入式系統(tǒng)在大容量數(shù)據(jù)存儲領(lǐng)域多采用空間索引查詢法,一般能支持KB到幾MB的數(shù)據(jù)容量。傳統(tǒng)的空間索引查法是為每條數(shù)據(jù)點建立一個索引值,查詢數(shù)據(jù)時由索引值查詢獲取符合條件的數(shù)據(jù)內(nèi)容。但是這種傳統(tǒng)的空間索引查詢法,索引數(shù)據(jù)需要占據(jù)大量的存儲空間,例如某個系統(tǒng)項目需求是每秒鐘采樣一次數(shù)據(jù)(100個字節(jié)),并實時存儲本次采樣數(shù)據(jù),要求系統(tǒng)能存儲最近72小時的數(shù)據(jù)量。根據(jù)項目需求,在每次保存采樣數(shù)據(jù)時先為本次存儲數(shù)據(jù)建立一個數(shù)據(jù)索引值(假若6個字節(jié)),分別進(jìn)行保存。根據(jù)需求72個小時的數(shù)據(jù)索引占用存儲空間是6*72*60*60 = 1518.75KB,對于嵌入式系統(tǒng)本來就十分珍貴有限的存儲空間資源來說無疑是一個非常大的開銷。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明實施例的主要目的在于提供一種數(shù)據(jù)查詢方法,可以有效節(jié)省存儲器的存儲資源。
[0004]本發(fā)明實施例是這樣實現(xiàn)的,一種用于嵌入式系統(tǒng)中的數(shù)據(jù)查詢方法,包括:在所述嵌入式系統(tǒng)中的存儲器中建立數(shù)據(jù)索引區(qū);獲取待查詢數(shù)據(jù)的查詢數(shù)據(jù)索引;將所述查詢數(shù)據(jù)索引導(dǎo)入數(shù)據(jù)索引區(qū);計算有效數(shù)據(jù)索引并根據(jù)所述有效數(shù)據(jù)索引進(jìn)行數(shù)據(jù)讀取。
[0005]進(jìn)一步地,所述建立數(shù)據(jù)索引區(qū)包括:所述數(shù)據(jù)索引區(qū)為記錄一段或整段數(shù)據(jù)的第一個數(shù)據(jù)的數(shù)據(jù)索引值和最后一個數(shù)據(jù)的數(shù)據(jù)索引值。
[0006]進(jìn)一步地,所述計算有效數(shù)據(jù)索引包括使用交集原理確定查詢數(shù)據(jù)索引與數(shù)據(jù)索引區(qū)的交集區(qū)域,所述有效數(shù)據(jù)索引為所述交集區(qū)域索引值。
[0007]進(jìn)一步地,所述查詢數(shù)據(jù)索引由數(shù)據(jù)區(qū)域日期字段轉(zhuǎn)換而成。
[0008]進(jìn)一步地,所述方法還包括如下步驟:所述查詢數(shù)據(jù)索引導(dǎo)入數(shù)據(jù)索引區(qū)后不存在有效數(shù)據(jù)索引,則直接返回FALSE。
[0009]進(jìn)一步地,所述待查詢數(shù)據(jù)為單條數(shù)據(jù)記錄或者多條數(shù)據(jù)記錄塊。
[0010]根據(jù)本發(fā)明實施例的另外一方面,本發(fā)明實施例還提供一種用于嵌入式系統(tǒng)中的數(shù)據(jù)查詢裝置,包括:
[0011]數(shù)據(jù)索引區(qū)建立單元,用于在所述嵌入式系統(tǒng)中的存儲器中建立數(shù)據(jù)索引區(qū);
[0012]查詢數(shù)據(jù)索引獲取單元,用于獲取待查詢數(shù)據(jù)的查詢數(shù)據(jù)索引;
[0013]導(dǎo)入單元,將所述查詢數(shù)據(jù)索引導(dǎo)入數(shù)據(jù)索引區(qū);
[0014]計算單元,用于計算有效數(shù)據(jù)索引并根據(jù)所述有效數(shù)據(jù)索引進(jìn)行數(shù)據(jù)讀取。
[0015]進(jìn)一步地,所述建立數(shù)據(jù)索引區(qū)包括:所述數(shù)據(jù)索引區(qū)為記錄一段或整段數(shù)據(jù)的第一個數(shù)據(jù)的數(shù)據(jù)索引值和最后一個數(shù)據(jù)的數(shù)據(jù)索引值。
[0016]進(jìn)一步地,所述計算單元為交集計算單元,用于使用交集原理確定查詢數(shù)據(jù)索引與數(shù)據(jù)索引區(qū)的交集區(qū)域,所述有效數(shù)據(jù)索引為所述交集區(qū)域索引值。
[0017]進(jìn)一步地,所述裝置還包括錯誤返回單元,用于當(dāng)所述查詢數(shù)據(jù)索引導(dǎo)入數(shù)據(jù)索引區(qū)后不存在有效數(shù)據(jù)索引時則直接返回FALSE。
[0018]根據(jù)上述技術(shù)方案,本發(fā)明實施例具有如下效果:本發(fā)明提出了數(shù)據(jù)索引區(qū)的概念,并且只設(shè)置了兩個索引,起始索引值和終止索引值,節(jié)省了存儲數(shù)據(jù)空間,并通過以時間序列或時間間隔轉(zhuǎn)換而成的數(shù)據(jù)索引值與數(shù)據(jù)索引區(qū)采用交集計算方式查找到有效數(shù)據(jù)索引或索引區(qū),再由數(shù)據(jù)索引或數(shù)據(jù)索引塊在數(shù)據(jù)存儲初始地址空間上作正向偏移來獲取實際數(shù)據(jù)存儲地址,加快數(shù)據(jù)查詢的速度。
【附圖說明】
[0019]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
[0020]圖1示出了本申請?zhí)峁┑臄?shù)據(jù)查詢方法一種實施例的流程圖;
[0021]圖2示出了本申請?zhí)峁┑臄?shù)據(jù)查詢方法另一實施例的流程圖;
[0022]圖3示出了本申請?zhí)峁┑臄?shù)據(jù)查詢裝置的一種實施例的結(jié)構(gòu)圖。
【具體實施方式】
[0023]下面結(jié)合附圖和實施例對本申請作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實施例僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
[0024]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細(xì)說明本申請。
[0025]如圖1所示,為發(fā)明實施例提供的一種用于嵌入式系統(tǒng)中的數(shù)據(jù)查詢方法,包括如下步驟:
[0026]S101,在所述嵌入式系統(tǒng)中的存儲器中建立數(shù)據(jù)索引區(qū);
[0027]S102,獲取待查詢數(shù)據(jù)的查詢數(shù)據(jù)索引;
[0028]S103,將所述查詢數(shù)據(jù)索引導(dǎo)入數(shù)據(jù)索引區(qū);
[0029]S104,計算有效數(shù)據(jù)索引并根據(jù)所述有效數(shù)據(jù)索引進(jìn)行數(shù)據(jù)讀取。
[0030]首先明確本申請中可能涉及的幾個概念,索引區(qū)是由兩個索引值組成。索引值是指讀取某條數(shù)據(jù)記錄時所使用的一個數(shù)據(jù)目錄項用來指定該條數(shù)據(jù)記錄存儲的位置。時間序列是指日期時間按時、分或秒持續(xù)遞增或持續(xù)遞減規(guī)律。
[0031]本發(fā)明實施例提供了一種命名為索引區(qū),在每個索引區(qū)中,記錄包含了某段或整段采集的數(shù)據(jù)索引值。在普通算法中大容量的數(shù)據(jù)量必定有相對應(yīng)容量比例的數(shù)據(jù)索引,但使用本發(fā)明實施例提供的索引區(qū),則可以很好的解決數(shù)據(jù)索引本身的存儲空間容量問題。所述索引區(qū),在檢索FLASH存儲空間對象數(shù)據(jù)時,用于快速判斷數(shù)據(jù)查詢條件是否落入檢索索引區(qū)內(nèi)。索引區(qū),也進(jìn)一步適用于在某個有用時間段內(nèi)查詢大容量數(shù)據(jù)方案中,利用索引區(qū)能快速劃分時間段查詢條件中無效時間數(shù)據(jù)索引區(qū)間和有效時間數(shù)據(jù)索引區(qū)間,從而為后面正確數(shù)據(jù)讀取及讀取數(shù)據(jù)速度提供了快速的步調(diào)。
[0032]數(shù)據(jù)索引區(qū)是由兩個數(shù)據(jù)索引值組成即第一個數(shù)據(jù)索引值和最后加入的數(shù)據(jù)索引值。對于數(shù)據(jù)時序連續(xù)的待存儲數(shù)據(jù)塊,無論存儲數(shù)據(jù)塊內(nèi)容多大對于數(shù)據(jù)索引區(qū)自身占用存儲區(qū)大小來說,數(shù)據(jù)索引區(qū)總保持在兩個數(shù)據(jù)索引值所占用的存儲空間大小。數(shù)據(jù)索引區(qū)的這種結(jié)構(gòu)突出了兩大優(yōu)勢:其一是最大程度上因存儲數(shù)據(jù)量越來越龐大,而帶來的數(shù)據(jù)索引值自身所占用的存儲空間也以一定比例的變大。其二是查詢數(shù)據(jù)時不需要先搜索數(shù)據(jù)索引、比較數(shù)