一種數(shù)據(jù)處理的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及計算機(jī)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理的方法及裝置。
【背景技術(shù)】
[0002]在計算機(jī)技術(shù)不斷發(fā)展的今天,實(shí)際應(yīng)用場景中需要對產(chǎn)生的事件信息進(jìn)行實(shí)時的處理,得到結(jié)果數(shù)據(jù),并將結(jié)果數(shù)據(jù)存儲在數(shù)據(jù)庫中,以便后續(xù)查詢。
[0003]具體的,可通過實(shí)時計算系統(tǒng)接收并實(shí)時處理事件信息,再將處理得到的結(jié)果數(shù)據(jù)寫入數(shù)據(jù)庫。
[0004]例如,在物流信息處理場景中,一條某物流機(jī)構(gòu)的發(fā)貨信息、攬收信息、派送信息等都是一條事件信息。而結(jié)果數(shù)據(jù)則可以是對某物流機(jī)構(gòu)在某個時間段(如,當(dāng)天)內(nèi)的發(fā)貨量、攬收量、派送量等進(jìn)行統(tǒng)計的結(jié)果。
[0005]具體的,當(dāng)物流信息系統(tǒng)生成了一個事件信息后,則將該事件信息發(fā)送給實(shí)時計算系統(tǒng)。實(shí)時計算系統(tǒng)則可將該事件信息分配給自身的某個處理進(jìn)程進(jìn)行處理,該處理進(jìn)程根據(jù)該事件信息中攜帶的屬性信息,以及預(yù)設(shè)的屬性信息與數(shù)據(jù)標(biāo)識的對應(yīng)關(guān)系,確定該屬性信息對應(yīng)的結(jié)果數(shù)據(jù)的數(shù)據(jù)標(biāo)識,再根據(jù)之前得到的該數(shù)據(jù)標(biāo)識的結(jié)果數(shù)據(jù),對該數(shù)據(jù)標(biāo)識的結(jié)果數(shù)據(jù)進(jìn)行更新,最后將更新后的結(jié)果數(shù)據(jù)寫入到數(shù)據(jù)庫中。
[0006]然而,對于數(shù)據(jù)庫而言,單位時間內(nèi)可以向該數(shù)據(jù)庫寫入數(shù)據(jù)的次數(shù)是有限制的,而對于實(shí)時計算系統(tǒng)而言,實(shí)時計算系統(tǒng)中的每個處理進(jìn)程都是串行處理各事件信息的,只有在將當(dāng)前的事件信息對應(yīng)的結(jié)果數(shù)據(jù)寫入到數(shù)據(jù)庫中之后,才會對下一個事件信息進(jìn)行處理,因此,一旦實(shí)時計算系統(tǒng)在單位時間內(nèi)向數(shù)據(jù)庫寫入數(shù)據(jù)的次數(shù)大于數(shù)據(jù)庫的限制,就將導(dǎo)致事件信息的堆積,降低了事件信息的處理效率,甚至?xí)?dǎo)致實(shí)時計算系統(tǒng)故障。
[0007]例如,對于一個數(shù)據(jù)庫而言,每秒可以向該數(shù)據(jù)庫寫入數(shù)據(jù)的次數(shù)最大是10000次,假設(shè)每個事件信息會導(dǎo)致4個結(jié)果數(shù)據(jù)的更新,則實(shí)時計算系統(tǒng)最多只能支持每秒10000/4=2500個事件信息的處理。如果實(shí)時計算系統(tǒng)在I秒內(nèi)接收到了 2501個事件信息,則由于數(shù)據(jù)庫寫入數(shù)據(jù)的限制(每秒10000次)而導(dǎo)致的實(shí)時計算系統(tǒng)每秒只能處理2500個事件信息,就會使2501-2500=1個事件信息的堆積。顯然,如果實(shí)時計算系統(tǒng)在I秒內(nèi)接收到的事件信息遠(yuǎn)大于2500個,就會造成大量的事件信息堆積,降低了事件信息的處理效率,甚至?xí)?dǎo)致實(shí)時計算系統(tǒng)故障。
【發(fā)明內(nèi)容】
[0008]本申請實(shí)施例提供一種數(shù)據(jù)處理的方法及裝置,用以解決現(xiàn)有技術(shù)中由于單位時間內(nèi)向數(shù)據(jù)庫寫入數(shù)據(jù)的次數(shù)存在限制而導(dǎo)致事件信息堆積,事件信息的處理效率較低,甚至導(dǎo)致實(shí)時計算系統(tǒng)故障的問題。
[0009]本申請實(shí)施例提供的一種數(shù)據(jù)處理的方法,包括:
[0010]對當(dāng)前事件信息進(jìn)行處理,得到結(jié)果數(shù)據(jù),并保存在本地;
[0011]根據(jù)所述結(jié)果數(shù)據(jù)攜帶的數(shù)據(jù)標(biāo)識,確定記錄的所述數(shù)據(jù)標(biāo)識對應(yīng)的寫入時刻,所述寫入時刻為上一次將攜帶所述數(shù)據(jù)標(biāo)識的結(jié)果數(shù)據(jù)寫入到數(shù)據(jù)庫中的時刻;
[0012]判斷所述寫入時刻到當(dāng)前時刻的時間長度是否超過設(shè)定時間長度;
[0013]若是,則將本地保存的所述結(jié)果數(shù)據(jù)寫入到數(shù)據(jù)庫中,并將所述數(shù)據(jù)標(biāo)識對應(yīng)的寫入時刻更新為當(dāng)前時刻;
[0014]否則,繼續(xù)在本地保存所述結(jié)果數(shù)據(jù),并對下一個事件信息進(jìn)行處理。
[0015]本申請實(shí)施例提供的一種數(shù)據(jù)處理的裝置,包括:
[0016]事件處理模塊,用于對當(dāng)前事件信息進(jìn)行處理,得到結(jié)果數(shù)據(jù),并保存在本地;
[0017]確定模塊,用于根據(jù)所述結(jié)果數(shù)據(jù)攜帶的數(shù)據(jù)標(biāo)識,確定記錄的所述數(shù)據(jù)標(biāo)識對應(yīng)的寫入時刻,所述寫入時刻為上一次將攜帶所述數(shù)據(jù)標(biāo)識的結(jié)果數(shù)據(jù)寫入到數(shù)據(jù)庫中的時刻;
[0018]判斷模塊,用于判斷所述寫入時刻到當(dāng)前時刻的時間長度是否超過設(shè)定時間長度;
[0019]寫入模塊,用于當(dāng)所述判斷模塊的判斷結(jié)果為是時,將本地保存的所述結(jié)果數(shù)據(jù)寫入到數(shù)據(jù)庫中,并將所述數(shù)據(jù)標(biāo)識對應(yīng)的寫入時刻更新為當(dāng)前時刻;
[0020]所述事件處理模塊還用于,當(dāng)所述判斷模塊的判斷結(jié)果為否時,繼續(xù)在本地保存所述結(jié)果數(shù)據(jù),并對下一個事件信息進(jìn)行處理。
[0021]本申請實(shí)施例提供一種數(shù)據(jù)處理的方法及裝置,該方法實(shí)時計算系統(tǒng)對當(dāng)前事件信息處理得到結(jié)果數(shù)據(jù)后,根據(jù)該結(jié)果數(shù)據(jù)攜帶的數(shù)據(jù)標(biāo)識,判斷記錄的該數(shù)據(jù)標(biāo)識對應(yīng)的寫入時刻到當(dāng)前時刻的時間長度是否超過設(shè)定時間長度,若是,則將該結(jié)果數(shù)據(jù)寫入到數(shù)據(jù)庫中,并將該數(shù)據(jù)標(biāo)識對應(yīng)的寫入時刻更新為當(dāng)前時刻,否則繼續(xù)在本地保存該結(jié)果數(shù)據(jù),并處理下一個事件信息。上述方法由于實(shí)時計算系統(tǒng)只有在寫入時刻到當(dāng)前時刻的時間長度超過設(shè)定時間長度時才將結(jié)果數(shù)據(jù)寫入到數(shù)據(jù)庫,其余時間實(shí)時計算系統(tǒng)可處理后續(xù)的事件信息,因此可在保證實(shí)時計算系統(tǒng)和數(shù)據(jù)庫中的數(shù)據(jù)一致的前提下,有效提高事件信息的處理效率,不會造成事件信息的堆積,可有效降低因事件信息堆積而出現(xiàn)故障的幾率。
【附圖說明】
[0022]此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
[0023]圖1為本申請實(shí)施例提供的數(shù)據(jù)處理的過程;
[0024]圖2為本申請實(shí)施例提供的正常情況下數(shù)據(jù)處理過程的示意圖;
[0025]圖3為本申請實(shí)施例提供的異常情況下數(shù)據(jù)處理過程的示意圖;
[0026]圖4為本申請實(shí)施例提供的數(shù)據(jù)處理的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0027]由于在實(shí)際應(yīng)用場景中,對于某些業(yè)務(wù)而言,實(shí)時計算系統(tǒng)在對當(dāng)前事件信息處理得到結(jié)果數(shù)據(jù)后,延遲一段時間再將結(jié)果數(shù)據(jù)寫入到數(shù)據(jù)庫中并不會對業(yè)務(wù)造成很大影響,因此,延遲一段時間再將結(jié)果數(shù)據(jù)寫入到數(shù)據(jù)庫中是完全可以接受的,而在延遲的這段時間內(nèi),實(shí)時計算系統(tǒng)就可以處理下一個事件信息,這樣就可以突破由于數(shù)據(jù)庫單位時間寫入數(shù)據(jù)的次數(shù)限制而導(dǎo)致的實(shí)時計算系統(tǒng)處理事件信息的速度瓶頸,從而可在保證實(shí)時計算系統(tǒng)和數(shù)據(jù)庫中的數(shù)據(jù)一致的前提下,提高事件信息處理效率,降低由于事件信息堆積而出現(xiàn)故障的幾率。
[0028]為使本申請的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請具體實(shí)施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
[0029]圖1為本申請實(shí)施例提供的數(shù)據(jù)處理的過程,具體包括以下步驟:
[0030]SlOl:對當(dāng)前事件信息進(jìn)行處理,得到結(jié)果數(shù)據(jù),并保存在本地。
[0031]在本申請實(shí)施例中,實(shí)時計算系統(tǒng)可通過自身的處理進(jìn)程對當(dāng)前事件信息進(jìn)行處理,得到相應(yīng)的結(jié)果數(shù)據(jù),并保存在本地的存儲介質(zhì)中,如保存在本地的內(nèi)存或硬盤中。其中,當(dāng)前事件信息中攜帶屬性信息,結(jié)果數(shù)據(jù)中攜帶數(shù)據(jù)標(biāo)識,還可攜帶結(jié)果值,數(shù)據(jù)標(biāo)識用于唯一標(biāo)識該結(jié)果數(shù)據(jù)。
[0032]具體的,由于實(shí)時計算系統(tǒng)可通過多個處理進(jìn)程分別處理不同的事件信息,用以并發(fā)處理事件信息,提高事件信息的處理效率,因此,本申請實(shí)施例中可預(yù)設(shè)屬性信息、處理進(jìn)程以及數(shù)據(jù)標(biāo)識這三者之間的對應(yīng)關(guān)系。其中,一個處理進(jìn)程可對應(yīng)多個屬性信息,一個處理進(jìn)程可對應(yīng)多個數(shù)據(jù)標(biāo)識,但一個屬性信息只能對應(yīng)一個處理進(jìn)程,一個數(shù)據(jù)標(biāo)識只能對應(yīng)一個處理進(jìn)程,使得一個處理進(jìn)程處理的事件信息為攜帶與該處理進(jìn)程對應(yīng)的屬性信息的事件信息,得到的結(jié)果數(shù)據(jù)為攜帶該處理進(jìn)程對應(yīng)的數(shù)據(jù)標(biāo)識的結(jié)果數(shù)據(jù)。也即,一個處理進(jìn)程只處理攜帶與該處理進(jìn)程對應(yīng)的屬性信息的事件信息,一個處理進(jìn)程只能得到攜帶與該處理進(jìn)程對應(yīng)的數(shù)據(jù)標(biāo)識的結(jié)果數(shù)據(jù)。
[0033]從而