两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種實時更正數(shù)據(jù)的存儲與緩存讀取方法與流程

文檔序號:11729398閱讀:369來源:國知局

本發(fā)明涉及一種實時更正數(shù)據(jù)的存儲與緩存讀取方法,屬于計算機數(shù)據(jù)管理技術(shù)領(lǐng)域。



背景技術(shù):

實時數(shù)據(jù)是指從過程控制系統(tǒng)中實時采集的數(shù)據(jù)、向過程控制系統(tǒng)實時發(fā)送的數(shù)據(jù)以及對實時數(shù)據(jù)進行各種實時計算直接產(chǎn)生的中間數(shù)據(jù)。實時數(shù)據(jù)可來自傳感器(如gps等)、攝像頭、新聞消息、衛(wèi)星、雷達、股票行情、服務(wù)器日志、傳統(tǒng)緩存或者分布式系統(tǒng)(如hadoop、spark)中的數(shù)據(jù)。實時數(shù)據(jù)具有時效性,隨著時間的推移,實時數(shù)據(jù)值就會逐漸失去價值。眾多行業(yè)及工作都能夠從實時數(shù)據(jù)的處理方案中獲得助益,例如天氣預(yù)報通過實時氣象數(shù)據(jù)提高預(yù)報準確率、工業(yè)設(shè)備通過實時監(jiān)控數(shù)據(jù)提高健康狀況等等。實時數(shù)據(jù)能夠通過管理數(shù)據(jù)實時變化迅速建立起形勢判斷,最終將其轉(zhuǎn)化為能夠提升企業(yè)業(yè)績的決策工具。

在現(xiàn)實生活中,對于實時數(shù)據(jù)的讀取,典型的需求為按照時間維度讀取。例如:中國氣象局觀測到全球氣溫的實時情況;春運期間客流群體的流向情況。對于此類需求,為加快讀取速度,在存儲的時候就將數(shù)據(jù)按照時間維度存儲較為合適,存取的粒度較粗,可以是該時間的全量數(shù)據(jù)或部分數(shù)據(jù)。但由于觀測設(shè)備或網(wǎng)絡(luò)傳輸?shù)脑?,?jīng)常會發(fā)現(xiàn)小部分數(shù)據(jù)是錯誤的,需要進行及時更正。例如某些車輛的傳感器出現(xiàn)誤差,氣溫觀測儀出現(xiàn)故障。因此,會有部分數(shù)據(jù)需要進行更正(通常情況下此類數(shù)據(jù)只是全量數(shù)據(jù)的一小部分),且數(shù)據(jù)更正的時間并不相同、更正請求隨時可能出現(xiàn)。因此,存儲實時更正數(shù)據(jù)變得相當困難,既要能夠支持按時間維度的全量讀取,又要滿足小量數(shù)據(jù)的更正。

此外,由于實時數(shù)據(jù)的全量讀取數(shù)據(jù)量相當大,為了加快讀取的時間,需要能夠設(shè)計一種緩存讀取的方式,根據(jù)用戶的讀取習慣,當讀取當前數(shù)據(jù)的時候,提前緩存下一份數(shù)據(jù),以提供給用戶更好的存取速度和體驗。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是提出一種實時更正數(shù)據(jù)的存儲與緩存讀取方法,解決目前分布式系統(tǒng)中,實時更正數(shù)據(jù)的存儲和讀取性能無法達到多數(shù)工業(yè)級應(yīng)用要求的問題。

本發(fā)明提出的實時更正數(shù)據(jù)的存儲與緩存讀取方法,包括以下步驟:

(1)數(shù)據(jù)存儲,具體步驟如下:

(1-1)建立數(shù)據(jù)存儲表t1和更新數(shù)據(jù)存儲表t2,所述的數(shù)據(jù)存儲表t1用于存儲設(shè)定時刻下的數(shù)據(jù),數(shù)據(jù)存儲表t1以該設(shè)定時刻為主鍵或索引項,數(shù)據(jù)存儲表t1中相鄰數(shù)據(jù)的時刻間隔為tt,存儲數(shù)據(jù)的有效時間為tm,所述的更新數(shù)據(jù)存儲表t2用于存儲對數(shù)據(jù)存儲表t1中存儲的數(shù)據(jù)進行更新的信息,以數(shù)據(jù)的更新時刻tu為主鍵或索引項;

(1-2)按照時刻間隔tt,獲取當前時刻tc的待處理實時數(shù)據(jù),將當前時刻tc獲取的待處理實時數(shù)據(jù)存成一個文件,以文件形式存放在t1表中,同時刪除數(shù)據(jù)存儲表t1和更新數(shù)據(jù)存儲表t2中數(shù)據(jù)獲取時刻小于tc-tm的數(shù)據(jù);

(1-3)獲取更新的數(shù)據(jù),若數(shù)據(jù)的更新時刻tu大于tc-tm,則把新數(shù)據(jù)存儲在更新數(shù)據(jù)存儲表t2中;

(2)數(shù)據(jù)讀取,具體步驟如下:

數(shù)據(jù)直接讀?。?/p>

(2-1)從數(shù)據(jù)存儲表t1中讀取設(shè)定時刻ta的數(shù)據(jù)d1;

(2-2)從更新數(shù)據(jù)存儲表t2讀取設(shè)定時刻ta的更新數(shù)據(jù)d2;

(2-3)用更新數(shù)據(jù)d2中的更新數(shù)據(jù)替代數(shù)據(jù)d1中相對應(yīng)的數(shù)據(jù);

(2-4)將讀取數(shù)據(jù)d1返回用戶;

或數(shù)據(jù)緩存讀?。?/p>

(2-5)建立一個預(yù)讀取隊列qc和一個緩存c1,其中預(yù)讀取隊列qc存儲緩存時刻,緩存c1用于存儲該緩存時刻的數(shù)據(jù);

(2-6)從緩存c1中讀取設(shè)定時刻ta的數(shù)據(jù),判斷緩存c1中是否存在設(shè)定時刻ta的數(shù)據(jù),若設(shè)定時刻ta的數(shù)據(jù)在緩存c1中,則讀取緩存c1中設(shè)定時刻ta的數(shù)據(jù),返回給用戶,進行步驟(2-11),若設(shè)定時刻ta的數(shù)據(jù)不在緩存c1中,則進行步驟(2-7);

(2-7)從數(shù)據(jù)存儲表t1中讀取設(shè)定時刻ta的數(shù)據(jù)d1;

(2-8)從更新數(shù)據(jù)存儲表t2讀取設(shè)定時刻ta的更新數(shù)據(jù)d2;

(2-9)用更新數(shù)據(jù)d2中的更新數(shù)據(jù)替代數(shù)據(jù)d1中相對應(yīng)的數(shù)據(jù),記更新后的數(shù)據(jù)為d1;

(2-10)將上述步驟(2-9)中更新后的數(shù)據(jù)d1返回給用戶,并將數(shù)據(jù)d1存入緩存c1中,進行步驟(2-11);

(2-11)將設(shè)定時刻ta的前、后在時段(ta-tn)~(ta+tn)內(nèi)的所有時刻放入預(yù)讀取隊列qc,其中tn為一個設(shè)定時段,取值為上述步驟(1-1)中時刻間隔tt的2~5倍;

(2-12)對預(yù)讀取隊列qc進行判斷,若預(yù)讀取隊列qc為空,則進行步驟(2-18),若預(yù)讀取隊列qc不為空,則進行步驟(2-13);

(2-13)對預(yù)讀取隊列qc中的每一個緩存時刻tg進行判斷,若與緩存時刻tg相對應(yīng)的數(shù)據(jù)不在緩存c1中,且緩存時刻tg在時段(ta-tn)~(ta+tn)中,則進行步驟(2-14),若與緩存時刻tg相對應(yīng)的數(shù)據(jù)不在緩存c1中,且緩存時刻tg不在時段(ta-tn)~(ta+tn),或與緩存時刻tg相對應(yīng)的數(shù)據(jù)在緩存c1中,且緩存時刻tg在時段(ta-tn)~(ta+tn),或與緩存時刻tg相對應(yīng)的數(shù)據(jù)在緩存c1中,且緩存時刻tg不在時段(ta-tn)~(ta+tn),則進行步驟(2-18);

(2-14)從數(shù)據(jù)存儲表t1中讀取設(shè)定時刻tg的數(shù)據(jù)d1,

(2-15)從更新數(shù)據(jù)存儲表t2讀取設(shè)定時刻tg的更新數(shù)據(jù)d2;

(2-16)用更新數(shù)據(jù)d2中的更新數(shù)據(jù)替代數(shù)據(jù)d1中相對應(yīng)的數(shù)據(jù);

(2-17)將更新后的設(shè)定時刻tg的數(shù)據(jù)d1存入緩存c1中;

(2-18)遍歷緩存c1中的所有數(shù)據(jù),對與該數(shù)據(jù)相對應(yīng)的時刻進行判斷,若該數(shù)據(jù)時刻不在(ta-tn)~(ta+tn)中,則在緩存c1中刪除該數(shù)據(jù),若該數(shù)據(jù)時刻在(ta-tn)~(ta+tn)中,則在緩存c1中保留該數(shù)據(jù)。

本發(fā)明提出的實時更正數(shù)據(jù)的存儲與緩存讀取方法,其優(yōu)點是:

1、本發(fā)明方法可以針對實時更正數(shù)據(jù)提出一種存儲與緩存讀取方法,解決了有更正需求的實時數(shù)據(jù)存儲難的問題,既能支持快速的讀取,又能保證實時更新的數(shù)據(jù)立即生效。

2、本發(fā)明通過緩存讀取的方式,大幅提高了讀取的速度,給用戶更好的讀取體驗,緩存數(shù)據(jù)的大小可由用戶根據(jù)實際情況進行指定,配置靈活方便。

3、本發(fā)明既可運行在傳統(tǒng)關(guān)系型緩存,又可以運行在nosql等分布式緩存上,使其具備應(yīng)對大數(shù)據(jù)中實時更正數(shù)據(jù)的存儲與處理能力。

4、本發(fā)明方法具有很強的適應(yīng)性,能夠適用于工業(yè)物聯(lián)網(wǎng)數(shù)據(jù)、氣象信息網(wǎng)數(shù)據(jù)等多種常見的實時更正數(shù)據(jù)。

附圖說明

圖1是本發(fā)明方法中涉及的數(shù)據(jù)緩存讀取流程框圖。

具體實施方式

本發(fā)明提出的實時更正數(shù)據(jù)的存儲與緩存讀取方法,包括以下步驟:

(1)數(shù)據(jù)存儲,具體步驟如下:

(1-1)建立數(shù)據(jù)存儲表t1和更新數(shù)據(jù)存儲表t2,所述的數(shù)據(jù)存儲表t1用于存儲設(shè)定時刻下的數(shù)據(jù),數(shù)據(jù)存儲表t1以該設(shè)定時刻為主鍵或索引項,數(shù)據(jù)存儲表t1中相鄰數(shù)據(jù)的時刻間隔為tt,存儲數(shù)據(jù)的有效時間為tm,所述的更新數(shù)據(jù)存儲表t2用于存儲對數(shù)據(jù)存儲表t1中存儲的數(shù)據(jù)進行更新的信息,以數(shù)據(jù)的更新時刻tu為主鍵或索引項;

(1-2)按照時刻間隔tt,獲取當前時刻tc的待處理實時數(shù)據(jù),將當前時刻tc獲取的待處理實時數(shù)據(jù)存成一個文件,以文件形式存放在t1表中,同時刪除數(shù)據(jù)存儲表t1和更新數(shù)據(jù)存儲表t2中數(shù)據(jù)獲取時刻小于tc-tm的數(shù)據(jù);

(1-3)獲取更新的數(shù)據(jù),若數(shù)據(jù)的更新時刻tu大于tc-tm,則把新數(shù)據(jù)存儲在更新數(shù)據(jù)存儲表t2中;

(2)數(shù)據(jù)讀取,具體步驟如下:

數(shù)據(jù)直接讀?。?/p>

(2-1)從數(shù)據(jù)存儲表t1中讀取設(shè)定時刻ta的數(shù)據(jù)d1;

(2-2)從更新數(shù)據(jù)存儲表t2讀取設(shè)定時刻ta的更新數(shù)據(jù)d2;

(2-3)用更新數(shù)據(jù)d2中的更新數(shù)據(jù)替代數(shù)據(jù)d1中相對應(yīng)的數(shù)據(jù);

(2-4)將讀取數(shù)據(jù)d1返回用戶;

或數(shù)據(jù)緩存讀?。?/p>

(2-5)建立一個預(yù)讀取隊列qc和一個緩存c1,其中預(yù)讀取隊列qc存儲緩存時刻,緩存c1用于存儲該緩存時刻的數(shù)據(jù);

(2-6)從緩存c1中讀取設(shè)定時刻ta的數(shù)據(jù),判斷緩存c1中是否存在設(shè)定時刻ta的數(shù)據(jù),若設(shè)定時刻ta的數(shù)據(jù)在緩存c1中,則讀取緩存c1中設(shè)定時刻ta的數(shù)據(jù),返回給用戶,進行步驟(2-11),若設(shè)定時刻ta的數(shù)據(jù)不在緩存c1中,則進行步驟(2-7);

(2-7)從數(shù)據(jù)存儲表t1中讀取設(shè)定時刻ta的數(shù)據(jù)d1;

(2-8)從更新數(shù)據(jù)存儲表t2讀取設(shè)定時刻ta的更新數(shù)據(jù)d2;

(2-9)用更新數(shù)據(jù)d2中的更新數(shù)據(jù)替代數(shù)據(jù)d1中相對應(yīng)的數(shù)據(jù),記更新后的數(shù)據(jù)為d1;

(2-10)將上述步驟(2-9)中更新后的數(shù)據(jù)d1返回給用戶,并將數(shù)據(jù)d1存入緩存c1中,進行步驟(2-11);

(2-11)將設(shè)定時刻ta的前、后在時段(ta-tn)~(ta+tn)內(nèi)的所有時刻放入預(yù)讀取隊列qc,其中tn為一個設(shè)定時段,取值為上述步驟(1-1)中時刻間隔tt的2~5倍;

(2-12)對預(yù)讀取隊列qc進行判斷,若預(yù)讀取隊列qc為空,則進行步驟(2-18),若預(yù)讀取隊列qc不為空,則進行步驟(2-13);

(2-13)對預(yù)讀取隊列qc中的每一個緩存時刻tg進行判斷,若與緩存時刻tg相對應(yīng)的數(shù)據(jù)不在緩存c1中,且緩存時刻tg在時段(ta-tn)~(ta+tn)中,則進行步驟(2-14),若與緩存時刻tg相對應(yīng)的數(shù)據(jù)不在緩存c1中,且緩存時刻tg不在時段(ta-tn)~(ta+tn),或與緩存時刻tg相對應(yīng)的數(shù)據(jù)在緩存c1中,且緩存時刻tg在時段(ta-tn)~(ta+tn),或與緩存時刻tg相對應(yīng)的數(shù)據(jù)在緩存c1中,且緩存時刻tg不在時段(ta-tn)~(ta+tn),則進行步驟(2-18);

(2-14)從數(shù)據(jù)存儲表t1中讀取設(shè)定時刻tg的數(shù)據(jù)d1,

(2-15)從更新數(shù)據(jù)存儲表t2讀取設(shè)定時刻tg的更新數(shù)據(jù)d2;

(2-16)用更新數(shù)據(jù)d2中的更新數(shù)據(jù)替代數(shù)據(jù)d1中相對應(yīng)的數(shù)據(jù);

(2-17)將更新后的設(shè)定時刻tg的數(shù)據(jù)d1存入緩存c1中;

(2-18)遍歷緩存c1中的所有數(shù)據(jù),對與該數(shù)據(jù)相對應(yīng)的時刻進行判斷,若該數(shù)據(jù)時刻不在(ta-tn)~(ta+tn)中,則在緩存c1中刪除該數(shù)據(jù),若該數(shù)據(jù)時刻在(ta-tn)~(ta+tn)中,則在緩存c1中保留該數(shù)據(jù)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
沈丘县| 雷波县| 临城县| 乌拉特后旗| 临夏县| 泽库县| 宁武县| 韩城市| 江华| 偃师市| 沂源县| 凭祥市| 萨嘎县| 永州市| 仪征市| 晋中市| 永靖县| 恭城| 虞城县| 鄯善县| 灵丘县| 东乡族自治县| 逊克县| 尼玛县| 驻马店市| 页游| 三亚市| 珠海市| 景宁| 通榆县| 江门市| 舞阳县| 大兴区| 神木县| 海兴县| 嘉兴市| 高唐县| 长丰县| 元阳县| 广南县| 津南区|