一種應(yīng)用于智能糧庫(kù)的數(shù)據(jù)存儲(chǔ)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及流程工業(yè)實(shí)時(shí)數(shù)據(jù)庫(kù)存檔技術(shù)領(lǐng)域,更具體地說,涉及一種應(yīng)用于智能糧庫(kù)的數(shù)據(jù)存儲(chǔ)方法及裝置。
【背景技術(shù)】
[0002]隨著流程工業(yè)的發(fā)展,實(shí)時(shí)數(shù)據(jù)庫(kù)需要存儲(chǔ)的數(shù)據(jù)量也越來越大。以智能糧庫(kù)為例,針對(duì)智能糧庫(kù)的多參數(shù)糧情監(jiān)控?cái)?shù)據(jù)、多參數(shù)糧情報(bào)警數(shù)據(jù)等均需要存儲(chǔ)到實(shí)時(shí)數(shù)據(jù)庫(kù)中。這里的數(shù)據(jù)量增大主要體現(xiàn)在:存儲(chǔ)的位號(hào)的點(diǎn)數(shù)要求越來越來多,需要同時(shí)處理幾十萬個(gè)位號(hào)的歷史數(shù)據(jù)存儲(chǔ);存儲(chǔ)的數(shù)據(jù)時(shí)間跨度要求也越來越長(zhǎng),需要存儲(chǔ)兩年以上的歷史數(shù)據(jù)。其中,位號(hào)為數(shù)據(jù)存儲(chǔ)的最小單位實(shí)體,通常由q(質(zhì)量碼)、t(時(shí)間戳)、v(歷史數(shù)據(jù))組成。
[0003]現(xiàn)有的數(shù)據(jù)庫(kù)存檔方式采用動(dòng)態(tài)存儲(chǔ)方式,也即針對(duì)某個(gè)位號(hào)的存儲(chǔ)請(qǐng)求,隨機(jī)選擇空閑的存儲(chǔ)區(qū)域來存儲(chǔ)位號(hào)的歷史數(shù)據(jù),然后在存檔的某個(gè)固定位置中記錄位號(hào)ID與存儲(chǔ)區(qū)域索引信息間的對(duì)應(yīng)關(guān)系,以便后續(xù)查詢。
[0004]可以理解的是,在存儲(chǔ)數(shù)量眾多的位號(hào)時(shí),需要在數(shù)據(jù)庫(kù)的存檔中記錄各個(gè)位號(hào)ID與存儲(chǔ)區(qū)域索引信息間的對(duì)應(yīng)關(guān)系,這將會(huì)占用存檔的很大一部分空間,降低了數(shù)據(jù)庫(kù)存儲(chǔ)能力。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本申請(qǐng)?zhí)峁┝艘环N應(yīng)用于智能糧庫(kù)的數(shù)據(jù)存儲(chǔ)方法及裝置,用于解決現(xiàn)有技術(shù)需要在存檔內(nèi)記錄位號(hào)ID與存儲(chǔ)該位號(hào)的歷史數(shù)據(jù)的存儲(chǔ)區(qū)域的索引信息間的對(duì)應(yīng)關(guān)系,從而降低數(shù)據(jù)庫(kù)存儲(chǔ)能力的問題。
[0006]為了實(shí)現(xiàn)上述目的,現(xiàn)提出的方案如下:
[0007]—種應(yīng)用于智能糧庫(kù)的數(shù)據(jù)存儲(chǔ)方法,包括:
[0008]接收位號(hào)的存儲(chǔ)請(qǐng)求,所述存儲(chǔ)請(qǐng)求包括位號(hào)ID、歷史數(shù)據(jù)和時(shí)間戳;
[0009]在存檔的根目錄下查詢預(yù)置的索引頁(yè)分配策略、記錄塊分配策略,其中,所述索引頁(yè)分配策略規(guī)定了位號(hào)ID及對(duì)應(yīng)索引頁(yè)位置,所述記錄塊分配策略規(guī)定了位號(hào)ID及對(duì)應(yīng)記錄塊位置,所述存檔預(yù)先按照頁(yè)進(jìn)行了劃分,所述記錄塊由若干頁(yè)組成;
[0010]按照所述記錄塊分配策略,查找與所述位號(hào)ID對(duì)應(yīng)的目標(biāo)記錄塊;
[0011 ]將所述歷史數(shù)據(jù)填充到所述目標(biāo)記錄塊;
[0012]按照所述索引頁(yè)分配策略,查找與所述位號(hào)ID對(duì)應(yīng)的目標(biāo)索引頁(yè);
[0013]將所述目標(biāo)記錄塊的索引信息和所述時(shí)間戳記錄在所述目標(biāo)索引頁(yè)。
[0014]優(yōu)選地,所述將所述歷史數(shù)據(jù)填充到所述目標(biāo)記錄塊,包括:
[0015]將所述歷史數(shù)據(jù)進(jìn)行實(shí)時(shí)無損壓縮,得到實(shí)時(shí)壓縮數(shù)據(jù);
[0016]將所述實(shí)時(shí)壓縮數(shù)據(jù)填充到緩存的記錄頁(yè)中;
[0017]判斷所述記錄頁(yè)的填充狀態(tài)是否達(dá)到預(yù)置填充狀態(tài),若是,則將所述記錄頁(yè)進(jìn)行靜態(tài)文本壓縮,得到壓縮塊;
[0018]將所述壓縮塊填充到所述目標(biāo)記錄塊中。
[0019]優(yōu)選地,還包括:
[0020]判斷所述目標(biāo)索引頁(yè)是否已經(jīng)存滿;
[0021]若是,按照所述索引頁(yè)分配策略,為所述位號(hào)分配新的索引頁(yè),并將新的索引頁(yè)的索引信息添加至上一索引頁(yè)中。
[0022]優(yōu)選地,還包括:
[0023]判斷與所述位號(hào)對(duì)應(yīng)的索引頁(yè)的個(gè)數(shù)是否達(dá)到閾值,其中,與所述位號(hào)對(duì)應(yīng)的索引頁(yè)作為所述位號(hào)的一級(jí)索引頁(yè);
[0024]若是,為所述位號(hào)創(chuàng)建二級(jí)索引頁(yè),所述二級(jí)索引頁(yè)中記錄有所述位號(hào)的一級(jí)索引頁(yè)的索引信息。
[0025]優(yōu)選地,還包括:
[0026]將所述位號(hào)的二級(jí)索引頁(yè)與所述位號(hào)的首個(gè)一級(jí)索引頁(yè)進(jìn)行位置交換。
[0027]—種應(yīng)用于智能糧庫(kù)的數(shù)據(jù)存儲(chǔ)裝置,包括:
[0028]存儲(chǔ)請(qǐng)求接收單元,用于接收位號(hào)的存儲(chǔ)請(qǐng)求,所述存儲(chǔ)請(qǐng)求包括位號(hào)ID、歷史數(shù)據(jù)和時(shí)間戳;
[0029]根目錄查詢單元,用于在存檔的根目錄下查詢預(yù)置的索引頁(yè)分配策略、記錄塊分配策略,其中,所述索引頁(yè)分配策略規(guī)定了位號(hào)ID及對(duì)應(yīng)索弓I頁(yè)位置,所述記錄塊分配策略規(guī)定了位號(hào)ID及對(duì)應(yīng)記錄塊位置,所述存檔預(yù)先按照頁(yè)進(jìn)行了劃分,所述記錄塊由若干頁(yè)組成;
[0030]目標(biāo)記錄塊查找單元,用于按照所述記錄塊分配策略,查找與所述位號(hào)ID對(duì)應(yīng)的目標(biāo)記錄塊;
[0031 ]歷史數(shù)據(jù)填充單元,用于將所述歷史數(shù)據(jù)填充到所述目標(biāo)記錄塊;
[0032]目標(biāo)索引頁(yè)查找單元,用于按照所述索引頁(yè)分配策略,查找與所述位號(hào)ID對(duì)應(yīng)的目標(biāo)索引頁(yè);
[0033]目標(biāo)索引頁(yè)記錄單元,用于將所述目標(biāo)記錄塊的索引信息和所述時(shí)間戳記錄在所述目標(biāo)索引頁(yè)。
[0034]優(yōu)選地,所述歷史數(shù)據(jù)填充單元包括:
[0035]無損壓縮單元,用于將所述歷史數(shù)據(jù)進(jìn)行實(shí)時(shí)無損壓縮,得到實(shí)時(shí)壓縮數(shù)據(jù);
[0036]實(shí)時(shí)壓縮數(shù)據(jù)填充單元,用于將所述實(shí)時(shí)壓縮數(shù)據(jù)填充到緩存的記錄頁(yè)中;
[0037]記錄頁(yè)狀態(tài)判斷單元,用于判斷所述記錄頁(yè)的填充狀態(tài)是否達(dá)到預(yù)置填充狀態(tài);
[0038]靜態(tài)壓縮單元,用于在所述記錄頁(yè)狀態(tài)判斷單元的判斷結(jié)果為是時(shí),將所述記錄頁(yè)進(jìn)行靜態(tài)文本壓縮,得到壓縮塊;
[0039]壓縮塊填充單元,用于將所述壓縮塊填充到所述目標(biāo)記錄塊中。
[0040]優(yōu)選地,還包括:
[0041]目標(biāo)索引頁(yè)判斷單元,用于判斷所述目標(biāo)索引頁(yè)是否已經(jīng)存滿;
[0042]新索引頁(yè)分配單元,用于在所述目標(biāo)索引頁(yè)判斷單元的判斷結(jié)果為是時(shí),按照所述索引頁(yè)分配策略,為所述位號(hào)分配新的索引頁(yè),并將新的索引頁(yè)的索引信息添加至上一索引頁(yè)中。
[0043]優(yōu)選地,還包括:
[0044]索引頁(yè)個(gè)數(shù)判斷單元,用于判斷與所述位號(hào)對(duì)應(yīng)的索引頁(yè)的個(gè)數(shù)是否達(dá)到閾值,其中,與所述位號(hào)對(duì)應(yīng)的索引頁(yè)作為所述位號(hào)的一級(jí)索引頁(yè);
[0045]二級(jí)索引頁(yè)創(chuàng)建單元,用于在所述索引頁(yè)個(gè)數(shù)判斷單元的判斷結(jié)果為是時(shí),為所述位號(hào)創(chuàng)建二級(jí)索引頁(yè),所述二級(jí)索引頁(yè)中記錄有所述位號(hào)的一級(jí)索引頁(yè)的索引信息。
[0046]優(yōu)選地,還包括:
[0047]索引頁(yè)位置交換單元,用于將所述位號(hào)的二級(jí)索引頁(yè)與所述位號(hào)的首個(gè)一級(jí)索引頁(yè)進(jìn)行位置交換。
[0048]從上述的技術(shù)方案可以看出,本申請(qǐng)實(shí)施例提供的應(yīng)用于智能糧庫(kù)的數(shù)據(jù)存儲(chǔ)方法,預(yù)先將存檔按照頁(yè)進(jìn)行了劃分,并在存檔的根目錄下預(yù)先存儲(chǔ)了索引頁(yè)分配策略和記錄塊分配策略,其中,索引頁(yè)分配策略規(guī)定了位號(hào)ID及對(duì)應(yīng)索引頁(yè)位置,記錄塊分配策略規(guī)定了位號(hào)ID及對(duì)應(yīng)記錄塊位置,記錄塊由若干頁(yè)組成。在收到攜帶有位號(hào)ID、歷史數(shù)據(jù)和時(shí)間戳的位號(hào)的存儲(chǔ)請(qǐng)求時(shí),在存檔的根目錄下查詢預(yù)置的索引頁(yè)分配策略和記錄塊分配策略,按照記錄塊分配策略,從存檔的空閑區(qū)查找與位號(hào)ID對(duì)應(yīng)的目標(biāo)記錄塊,將歷史數(shù)據(jù)填充到目標(biāo)記錄塊,按照索引頁(yè)分配策略,查找與位號(hào)ID對(duì)應(yīng)的目標(biāo)索引頁(yè),將目標(biāo)記錄塊的索引信息和時(shí)間戳記錄在目標(biāo)索引頁(yè)。本申請(qǐng)的數(shù)據(jù)存儲(chǔ)方法,預(yù)先規(guī)定了索引頁(yè)分配策略和記錄塊分配策略,存儲(chǔ)位號(hào)時(shí)按照上述兩個(gè)策略確定記錄塊和索引頁(yè),在記錄塊中存儲(chǔ)歷史數(shù)據(jù),在索引頁(yè)中存儲(chǔ)記錄塊的索引信息和時(shí)間戳,后續(xù)查詢位號(hào)歷史數(shù)據(jù)時(shí)可以按照位號(hào)ID以及索引頁(yè)分配策略和記錄塊分配策略,查詢位號(hào)ID對(duì)應(yīng)的歷史數(shù)據(jù)。由于本申請(qǐng)不需要在存檔中記錄每個(gè)位號(hào)ID與記錄塊的索引信息間的對(duì)應(yīng)關(guān)系,節(jié)省了存檔的空間,提升了數(shù)據(jù)庫(kù)的存儲(chǔ)能力。
【附圖說明】
[0049]為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0050]圖1為本申請(qǐng)實(shí)施例公開的一種存檔結(jié)構(gòu)示意圖;
[0051 ]圖2為本申請(qǐng)實(shí)施例公開的一種應(yīng)用于智能糧庫(kù)的數(shù)據(jù)存儲(chǔ)方法流程圖;
[0052]圖3為本申請(qǐng)實(shí)施例公開的另一種應(yīng)用于智能糧庫(kù)的數(shù)據(jù)存儲(chǔ)方法流程圖;
[0053]圖4為本申請(qǐng)實(shí)施例公開的又一種應(yīng)用于智能糧庫(kù)的數(shù)據(jù)存儲(chǔ)方法流程圖;
[0054]圖5為本申請(qǐng)實(shí)施例公開的又