本申請(qǐng)涉及數(shù)據(jù)匯總技術(shù)領(lǐng)域,特別是涉及數(shù)據(jù)匯總方法及裝置。
背景技術(shù):
在電子商務(wù)交易平臺(tái)中,通常會(huì)部署分布式系統(tǒng),各個(gè)系統(tǒng)各自完成自己的任務(wù),并且,相關(guān)的數(shù)據(jù)在各個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)之間進(jìn)行同步。例如,一個(gè)典型的分布式系統(tǒng)應(yīng)用場(chǎng)景中可以包括:前端交易系統(tǒng)、計(jì)算引擎、匯總引擎。其中,負(fù)責(zé)與前端買家用戶進(jìn)行交互,在買家用戶產(chǎn)生購(gòu)買行為后,可以生成相應(yīng)的交易訂單;計(jì)算引擎根據(jù)交易系統(tǒng)產(chǎn)生的交易訂單,進(jìn)行數(shù)據(jù)的初步匯總,但是,由于計(jì)算引擎的存儲(chǔ)容量通常是很有限的,因此,計(jì)算引擎通常只能在一定的時(shí)間窗口內(nèi)進(jìn)行匯總,例如,如果時(shí)間窗口為一天,則計(jì)算引擎可以將前端交易系統(tǒng)在一天內(nèi)產(chǎn)生的交易訂單進(jìn)行分段匯總,如,可以統(tǒng)計(jì)出某倉(cāng)庫(kù)中的某貨品的購(gòu)買量,需要發(fā)貨的數(shù)量等。之后,計(jì)算引擎的匯總結(jié)果回流到匯總引擎,由匯總引擎對(duì)計(jì)算引擎回流的分段匯總結(jié)果進(jìn)行匯總,例如,可以統(tǒng)計(jì)出某貨品在一段時(shí)間內(nèi)的銷量等,以此來(lái)進(jìn)行銷售預(yù)測(cè),或者,在預(yù)售的場(chǎng)景中,商家或者賣家用戶可以根據(jù)一段時(shí)間內(nèi)的預(yù)售銷量進(jìn)行備貨,等等。
其中,計(jì)算引擎通??梢苑譃閷?shí)時(shí)計(jì)算引擎以及離線計(jì)算引擎兩種,并且在實(shí)際應(yīng)用中,兩種計(jì)算引擎通常是共存的。其中,前端業(yè)務(wù)系統(tǒng)每生成一筆訂單,就可以向?qū)崟r(shí)計(jì)算引擎發(fā)出消息,在消息體征保存商品id、收貨地址、發(fā)貨倉(cāng)庫(kù)等信息,實(shí)時(shí)計(jì)算引擎每收到一條消息,就可以執(zhí)行一次分段匯總,也即對(duì)所在時(shí)間窗口內(nèi)產(chǎn)生的數(shù)據(jù)總量進(jìn)行分段匯總運(yùn)算,并將分段匯總數(shù)據(jù)實(shí)時(shí)回流到匯總系統(tǒng)。而離線計(jì)算引擎則通常是在每個(gè)時(shí)間窗口的固定時(shí)間點(diǎn)(例如,當(dāng)前時(shí)間窗口即將結(jié)束時(shí)),從前端業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)中拉取該時(shí)間窗口內(nèi)產(chǎn)生的訂單數(shù)據(jù),然后,在該時(shí)間窗口內(nèi)做分段匯總計(jì)算,之后再將分段匯總結(jié)果回流到匯總系統(tǒng)。
現(xiàn)有技術(shù)中,如果匯總引擎僅利用離線計(jì)算引擎的分段匯總結(jié)果進(jìn)行匯總,則通常采取的方案是:對(duì)于n個(gè)分段匯總結(jié)果,從第一個(gè)開(kāi)始,依次累加,到第n個(gè)。也即:
s總=s1+s2+…+sn(1)
其中,sn即為第n個(gè)分段匯總結(jié)果。也就是說(shuō),在第一個(gè)時(shí)間窗口,需要執(zhí)行的匯總操作為:s總=s1,在第二個(gè)時(shí)間窗口,需要執(zhí)行的匯總操作為:s總=s1+s2,在第三個(gè)時(shí)間窗口,需要執(zhí)行的匯總操作為:s總=s1+s2+s3,以此類推。
但是,在存在實(shí)時(shí)計(jì)算引擎的情況下,匯總系統(tǒng)可能需要優(yōu)先利用實(shí)時(shí)計(jì)算引擎的匯總結(jié)果,并且,在每個(gè)時(shí)間窗口的任意時(shí)間點(diǎn),都可能具有匯總需求,每個(gè)時(shí)間點(diǎn)獲得的分段匯總結(jié)果可能都是不同的,因此,顯然是無(wú)法利用上述公式進(jìn)行匯總的。即使可以在每個(gè)時(shí)間窗口結(jié)束時(shí),都分別保存當(dāng)前窗口的最新分段結(jié)果,則也只能表達(dá)為:
s總=s1+s2+…+sn+s當(dāng)(2)
其中,s當(dāng)為當(dāng)前時(shí)間窗口內(nèi)當(dāng)前時(shí)間點(diǎn)獲得的實(shí)時(shí)分段匯總結(jié)果。
然而,在上述公式中,隨著n的增加,算法的復(fù)雜度線性增長(zhǎng),最終算法的復(fù)雜為o(n)。如果隨著n的增加,超過(guò)了計(jì)算機(jī)的處理能力,這個(gè)統(tǒng)計(jì)將無(wú)法進(jìn)行。或者,即使沒(méi)有超過(guò)計(jì)算能力,但是耗時(shí)很長(zhǎng),不能滿足匯總數(shù)據(jù)使用者的期望。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)?zhí)峁┝藬?shù)據(jù)匯總方法及裝置,能夠降低運(yùn)算的時(shí)間復(fù)雜度。
本申請(qǐng)?zhí)峁┝巳缦路桨福?/p>
一種數(shù)據(jù)匯總方法,包括:
保存第一參數(shù)值以及第二參數(shù)值,其中,第一參數(shù)值代表從第一個(gè)時(shí)間窗 口到第i-2個(gè)時(shí)間窗口結(jié)束時(shí)間點(diǎn)的歷史匯總值,第二參數(shù)值代表第i-1個(gè)時(shí)間窗口結(jié)束時(shí)間點(diǎn)上的分段匯總結(jié)果;其中,i為當(dāng)前時(shí)間窗口;
在計(jì)算從第一個(gè)時(shí)間窗口到當(dāng)前時(shí)間窗口內(nèi)任一時(shí)間點(diǎn)的總匯總值時(shí),根據(jù)所述保存的信息確定第一參數(shù)值以及第二參數(shù)值,并根據(jù)實(shí)時(shí)計(jì)算引擎的實(shí)時(shí)數(shù)據(jù)回流結(jié)果,確定第三參數(shù)值,所述第三參數(shù)值代表當(dāng)前時(shí)間窗口內(nèi)當(dāng)前時(shí)間點(diǎn)上的實(shí)時(shí)分段匯總結(jié)果;
將所述第一參數(shù)值、第二參數(shù)值以及第三參數(shù)值相加,確定所述總匯總值;
在當(dāng)前時(shí)間窗口的結(jié)束時(shí)間點(diǎn),將所述第一參數(shù)值與第二參數(shù)值相加,利用相加的結(jié)果更新所述保存的第一參數(shù)值,并利用當(dāng)前時(shí)間窗口結(jié)束時(shí)間點(diǎn)上的分段匯總結(jié)果更新所述保存的第二參數(shù)值。
一種數(shù)據(jù)匯總裝置,包括:
第一參數(shù)值保存單元,用于保存第一參數(shù)值以及第二參數(shù)值,其中,第一參數(shù)值代表從第一個(gè)時(shí)間窗口到第i-2個(gè)時(shí)間窗口結(jié)束時(shí)間點(diǎn)的歷史匯總值,第二參數(shù)值代表第i-1個(gè)時(shí)間窗口結(jié)束時(shí)間點(diǎn)上的分段匯總結(jié)果;其中,i為當(dāng)前時(shí)間窗口;
參數(shù)值確定單元,用于在計(jì)算從第一個(gè)時(shí)間窗口到當(dāng)前時(shí)間窗口內(nèi)任一時(shí)間點(diǎn)的總匯總值時(shí),根據(jù)所述保存的信息確定第一參數(shù)值以及第二參數(shù)值,并根據(jù)實(shí)時(shí)計(jì)算引擎的實(shí)時(shí)數(shù)據(jù)回流結(jié)果,確定第三參數(shù)值,所述第三參數(shù)值代表當(dāng)前時(shí)間窗口內(nèi)當(dāng)前時(shí)間點(diǎn)上的實(shí)時(shí)分段匯總結(jié)果;
運(yùn)算單元,用于將所述第一參數(shù)值、第二參數(shù)值以及第三參數(shù)值相加,確定所述總匯總值;
參數(shù)值更新單元,用于在當(dāng)前時(shí)間窗口的結(jié)束時(shí)間點(diǎn),將所述第一參數(shù)值與第二參數(shù)值相加,利用相加的結(jié)果更新所述保存的第一參數(shù)值,并利用當(dāng)前時(shí)間窗口結(jié)束時(shí)間點(diǎn)上的分段匯總結(jié)果更新所述保存的第二參數(shù)值。
根據(jù)本申請(qǐng)?zhí)峁┑木唧w實(shí)施例,本申請(qǐng)公開(kāi)了以下技術(shù)效果:
通過(guò)本申請(qǐng)實(shí)施例,通過(guò)保存歷史匯總值以及上一個(gè)時(shí)間窗口的分段匯總 結(jié)果,并在每個(gè)時(shí)間窗口的結(jié)束時(shí)間點(diǎn)對(duì)這兩個(gè)值進(jìn)行更新,就可以使得在計(jì)算總匯總值時(shí),只需要將歷史匯總值與上一時(shí)間窗口的分段匯總結(jié)果以及當(dāng)前時(shí)間窗口當(dāng)前時(shí)刻的實(shí)時(shí)分段匯總結(jié)果進(jìn)行相加,即可確定出從第一個(gè)時(shí)間窗口當(dāng)前時(shí)間窗口當(dāng)前時(shí)刻的總匯總值。這樣,可以實(shí)現(xiàn)在任意時(shí)間窗口的任一時(shí)間點(diǎn)都可以進(jìn)行總匯總量的計(jì)算,并且,每次計(jì)算時(shí),都只需要執(zhí)行兩次加法運(yùn)算,因此,使得時(shí)間復(fù)雜度為o(1)。
另外,當(dāng)數(shù)據(jù)源發(fā)生不穩(wěn)定狀態(tài),也即實(shí)時(shí)計(jì)算引擎發(fā)生故障時(shí),也可以進(jìn)行數(shù)據(jù)的匯總運(yùn)算,并且,在運(yùn)算的過(guò)程中,同樣可以通過(guò)一些公式,使得計(jì)算的時(shí)間復(fù)雜度控制為o(1)。
當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
附圖說(shuō)明
為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本申請(qǐng)實(shí)施例提供的方法的流程圖;
圖2是本申請(qǐng)實(shí)施例提供的裝置示意圖。
具體實(shí)施方式
下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
在本申請(qǐng)實(shí)施例中,為了能夠在每個(gè)時(shí)間窗口內(nèi)的任意時(shí)間點(diǎn)都能夠根據(jù)實(shí)時(shí)計(jì)算引擎的回流結(jié)果進(jìn)行數(shù)據(jù)匯總,并且,在進(jìn)行匯總計(jì)算的過(guò)程中,降低算法的時(shí)間復(fù)雜度,可以保存兩個(gè)參數(shù)值,其中第一參數(shù)值代表從第一個(gè)時(shí) 間窗口到第i-2個(gè)時(shí)間窗口結(jié)束時(shí)間點(diǎn)的歷史匯總值,第二參數(shù)值代表第i-1個(gè)時(shí)間窗口結(jié)束時(shí)間點(diǎn)上的分段匯總結(jié)果;其中,i為正整數(shù),第i個(gè)時(shí)間窗口代表當(dāng)前時(shí)間窗口,這樣,就可以利用第一參數(shù)值、第二參數(shù)值以及代表當(dāng)前時(shí)間窗口內(nèi)當(dāng)前時(shí)間點(diǎn)上的實(shí)時(shí)分段匯總結(jié)果的第三參數(shù)值,計(jì)算出總的匯總值,之后,再通過(guò)將所述第一參數(shù)值與第二參數(shù)值相加,利用相加的結(jié)果更新所述保存的第一參數(shù)值,并利用當(dāng)前時(shí)間窗口結(jié)束時(shí)間點(diǎn)上的分段匯總結(jié)果更新所述保存的第二參數(shù)值。也就是說(shuō),在本申請(qǐng)實(shí)施例中,每次計(jì)算總的匯總值時(shí),都是三個(gè)參數(shù)值的相加運(yùn)算,每次對(duì)參數(shù)值進(jìn)行更新時(shí),都是兩個(gè)參數(shù)值的相加計(jì)算,加法運(yùn)算的參數(shù)數(shù)量都是有限的,因此,可以使得計(jì)算的時(shí)間復(fù)雜度為o(1)。下面對(duì)具體的實(shí)現(xiàn)方式進(jìn)行詳細(xì)介紹。
參見(jiàn)圖1,本申請(qǐng)實(shí)施例首先提供了一種數(shù)據(jù)匯總方法,該方法可以包括以下步驟:
s101:保存第一參數(shù)值以及第二參數(shù)值,其中,第一參數(shù)值代表從第一個(gè)時(shí)間窗口到第i-2個(gè)時(shí)間窗口結(jié)束時(shí)間點(diǎn)的歷史匯總值,第二參數(shù)值代表第i-1個(gè)時(shí)間窗口結(jié)束時(shí)間點(diǎn)上的分段匯總結(jié)果;其中,i為當(dāng)前時(shí)間窗口;
例如,第一參數(shù)可以表示為:s歷,第二參數(shù)可以表示為s上,也就是說(shuō),第二參數(shù)為上一時(shí)間窗口結(jié)束時(shí)間點(diǎn)上的分段匯總結(jié)果,而第一參數(shù)是除去上一時(shí)間窗口的分段匯總結(jié)果之外的歷史匯總值。其中,所謂的第一時(shí)間窗口是指第一次產(chǎn)生某數(shù)據(jù)時(shí)所在的第一個(gè)時(shí)間窗口。例如,在某次預(yù)售活動(dòng)中,在預(yù)售開(kāi)始后,開(kāi)始產(chǎn)生參加預(yù)售的某商品對(duì)象的交易訂單,相應(yīng)的,需要對(duì)該商品對(duì)象在某倉(cāng)庫(kù)中對(duì)應(yīng)的需要出庫(kù)的庫(kù)庫(kù)存數(shù)量等數(shù)據(jù)進(jìn)行匯總,則產(chǎn)生該商品對(duì)象的第一個(gè)交易訂單時(shí)所在的時(shí)間窗口就是第一個(gè)時(shí)間窗口。本領(lǐng)域技術(shù)人員可根據(jù)需要設(shè)定不同的時(shí)間窗口,如一天、二天、三天、一周、一個(gè)月等,本申請(qǐng)對(duì)時(shí)間窗口的時(shí)間長(zhǎng)度不作限定。
為了便于介紹,本申請(qǐng)實(shí)施例中,以一天作為一個(gè)時(shí)間窗口,也就是說(shuō),預(yù)售活動(dòng)開(kāi)始后的第一天。假設(shè)某商品對(duì)象已經(jīng)產(chǎn)生了交易訂單,則該第一天就作為相應(yīng)的第一個(gè)時(shí)間窗口。接下來(lái),預(yù)售活動(dòng)可能會(huì)持續(xù)多天,則實(shí)時(shí)計(jì)算引擎分別對(duì)每天中各商品對(duì)象在各個(gè)倉(cāng)庫(kù)中的銷量進(jìn)行分段匯總,匯總系統(tǒng) 則將實(shí)時(shí)計(jì)算引擎每天產(chǎn)生的分段匯總結(jié)果再進(jìn)行總的匯總,例如,可以得出從預(yù)售活動(dòng)開(kāi)始到某一天,某商品對(duì)象在某倉(cāng)庫(kù)中總共產(chǎn)生的銷量總數(shù)。假設(shè)預(yù)售活動(dòng)從12月20日開(kāi)始,在12月29日進(jìn)行總的匯總時(shí),則第一參數(shù)值為從12月20日00:00到12月27日24:00之間的歷史匯總值,第二參數(shù)值為從12月28日00:00到24:00的分段匯總結(jié)果。
其中,對(duì)于第一參數(shù)值以及第二參數(shù)值,在初始狀態(tài)下,也即第一個(gè)時(shí)間窗口,其取值為0,隨著后續(xù)時(shí)間窗口的產(chǎn)生,這兩個(gè)參數(shù)會(huì)產(chǎn)生具體的取值,并且在每個(gè)時(shí)間窗口都可以對(duì)這兩個(gè)參數(shù)值進(jìn)行更新,并在數(shù)據(jù)庫(kù)中進(jìn)行保存。關(guān)于第一參數(shù)值以及第二參數(shù)值的保存以及更新情況,在后續(xù)步驟中會(huì)有詳細(xì)介紹。
s102:在計(jì)算從第一個(gè)時(shí)間窗口到當(dāng)前時(shí)間窗口內(nèi)某一時(shí)間點(diǎn)的總匯總值時(shí),根據(jù)所述保存的信息確定第一參數(shù)值以及第二參數(shù)值,并根據(jù)實(shí)時(shí)計(jì)算引擎的實(shí)時(shí)數(shù)據(jù)回流結(jié)果,確定第三參數(shù)值,所述第三參數(shù)值代表當(dāng)前時(shí)間窗口內(nèi)當(dāng)前時(shí)間點(diǎn)上的實(shí)時(shí)分段匯總結(jié)果;
由于在存在實(shí)時(shí)計(jì)算引擎的情況下,匯總系統(tǒng)可能在每個(gè)時(shí)間窗口的任意時(shí)刻都有總的匯總需求,因此,在本申請(qǐng)實(shí)施例中,在計(jì)算從第一個(gè)時(shí)間窗口到當(dāng)前時(shí)間窗口內(nèi)任一時(shí)間點(diǎn)的總匯總值時(shí),可以首先根據(jù)所述保存的信息確定第一參數(shù)值以及第二參數(shù)值,并且,還可以根據(jù)實(shí)時(shí)計(jì)算引擎的實(shí)時(shí)數(shù)據(jù)回流結(jié)果,確定第三參數(shù)值,該第三參數(shù)值代表當(dāng)前時(shí)間窗口內(nèi)當(dāng)前時(shí)間點(diǎn)上的實(shí)時(shí)分段匯總結(jié)果。假設(shè)第三參數(shù)值為s當(dāng),當(dāng)前的匯總時(shí)間為12月29日16:00,則s當(dāng)為從12月29日00:00到16:00的匯總值,該信息是由實(shí)時(shí)計(jì)算引擎實(shí)時(shí)回流到匯總系統(tǒng)的,因此,可以從實(shí)時(shí)計(jì)算引擎的回流數(shù)據(jù)庫(kù)中獲取到該第三參數(shù)值。
需要說(shuō)明的是,這里所謂的實(shí)時(shí)匯總值是指,在當(dāng)前時(shí)間窗口內(nèi),當(dāng)前時(shí)間點(diǎn)前產(chǎn)生的最新實(shí)時(shí)匯總值。例如,對(duì)于某商品對(duì)象在某倉(cāng)庫(kù)中的銷量這一數(shù)據(jù),業(yè)務(wù)系統(tǒng)最近一次產(chǎn)生交易訂單的時(shí)間點(diǎn)為15:30,則實(shí)時(shí)計(jì)算引擎最近回流的實(shí)時(shí)分段匯總結(jié)果應(yīng)該是在15:30分之后的某個(gè)時(shí)間點(diǎn),如果從此時(shí)開(kāi)始一直到16:00沒(méi)有再產(chǎn)生新的關(guān)于該商品對(duì)象在該倉(cāng)庫(kù)上的交易訂 單,則在16:00進(jìn)行總的匯總計(jì)算時(shí),取出的第三參數(shù)值就是該產(chǎn)生于15:30之后某時(shí)間點(diǎn)的實(shí)時(shí)分段匯總結(jié)果。
s103:將所述第一參數(shù)值、第二參數(shù)值以及第三參數(shù)值相加,確定所述總匯總值;
在確定出第一參數(shù)值、第二參數(shù)值以及第三參數(shù)值之后,就可以將三者相加,確定出總的匯總值。例如,如前文所述,假設(shè)第一參數(shù)值為s歷,第二參數(shù)值為s上,第三參數(shù)值為s當(dāng),總的匯總值為s總,則可以通過(guò)以下公式進(jìn)行計(jì)算:
s總=s歷+s上+s當(dāng)(3)
其中,等式右側(cè)的三個(gè)參數(shù)都是直接從數(shù)據(jù)庫(kù)中取出的固定的值,因此,無(wú)論從第一時(shí)間窗口到當(dāng)前時(shí)間窗口已經(jīng)經(jīng)歷了多少個(gè)時(shí)間窗口,也無(wú)論在當(dāng)前時(shí)間窗口的具體哪個(gè)時(shí)刻進(jìn)行計(jì)算,公式(3)中的加法運(yùn)算都是三個(gè)數(shù)值進(jìn)行相加,執(zhí)行兩次加法運(yùn)算即可,不會(huì)出現(xiàn)隨著經(jīng)歷的時(shí)間窗口數(shù)量的增加,執(zhí)行加法運(yùn)算的次數(shù)也逐漸增加的情況,因此,使得計(jì)算的時(shí)間復(fù)雜度為o(1)。
s104:在當(dāng)前時(shí)間窗口的結(jié)束時(shí)間點(diǎn),將所述第一參數(shù)值與第二參數(shù)值相加,利用相加的結(jié)果更新所述保存的第一參數(shù)值,并利用當(dāng)前時(shí)間窗口結(jié)束時(shí)間點(diǎn)上的分段匯總結(jié)果更新所述保存的第二參數(shù)值。
如前文所述,對(duì)于第一參數(shù)值以及第二參數(shù)值,在初始狀態(tài)下,也即第一個(gè)時(shí)間窗口,其取值為0,隨著后續(xù)時(shí)間窗口的產(chǎn)生,這兩個(gè)參數(shù)會(huì)產(chǎn)生具體的取值,并且在每個(gè)時(shí)間窗口都可以對(duì)這兩個(gè)參數(shù)值進(jìn)行更新。具體的,第一參數(shù)值以及第二參數(shù)值的更新時(shí)間可以發(fā)生在當(dāng)前時(shí)間窗口的結(jié)束時(shí)間點(diǎn),也即,在當(dāng)前時(shí)間窗口中已經(jīng)不會(huì)再執(zhí)行總的匯總值計(jì)算操作,并且,實(shí)時(shí)計(jì)算引擎也不會(huì)再產(chǎn)生新的實(shí)時(shí)分段匯總結(jié)果,此時(shí),就可以更新第一參數(shù)值以及第二參數(shù)值。其中,具體在更新第一參數(shù)值時(shí),就可以將當(dāng)前的第一參數(shù)值以及第二參數(shù)值相加,得到更新后的第一參數(shù)值,在更新第二參數(shù)值時(shí),就可以將當(dāng)前時(shí)間窗口結(jié)束時(shí)間點(diǎn)上的分段匯總結(jié)果確定為更新后的第二參數(shù)值,這樣,在下一個(gè)時(shí)間窗口中再計(jì)算總的匯總值時(shí),就可以利用更新后的第一參數(shù) 值以及第二參數(shù)值進(jìn)行計(jì)算。也就是說(shuō),第一參數(shù)值的更新運(yùn)算公式可以表示為:
s歷=s歷+s上(4)
為了便于理解,下面通過(guò)各參數(shù)值的變化狀態(tài)進(jìn)行介紹。
在第一個(gè)時(shí)間窗口,由于尚未產(chǎn)生歷史匯總數(shù)據(jù),也不存在“上一個(gè)時(shí)間窗口”,因此,s歷=0,s上=0,在該第一個(gè)時(shí)間窗口內(nèi)的任一時(shí)間點(diǎn)計(jì)算總的匯總值時(shí),s總=s當(dāng)。之后,在該時(shí)間窗口的結(jié)束時(shí)間點(diǎn),例如24:00等,對(duì)s歷以及s上進(jìn)行更新,其中,更新后的s歷=0+0=0,更新后的s上=s1,其中,s1為第一個(gè)時(shí)間窗口內(nèi)從起始時(shí)間點(diǎn)到結(jié)束時(shí)間點(diǎn)之間的分段匯總值。
在第二個(gè)時(shí)間窗口,s歷=0,s上=s1,在該第二個(gè)時(shí)間窗口內(nèi)的任一時(shí)間點(diǎn)計(jì)算總的匯總值時(shí),s總=s上+s當(dāng)=s1+s當(dāng)。之后,在該時(shí)間窗口的結(jié)束時(shí)間點(diǎn),對(duì)s歷以及s上進(jìn)行更新,其中,更新后的s歷=0+s1=s1,更新后的s上=s2,其中,s2為第二個(gè)時(shí)間窗口內(nèi)從起始時(shí)間點(diǎn)到結(jié)束時(shí)間點(diǎn)之間的分段匯總值。
在第三個(gè)時(shí)間窗口,s歷=s1,s上=s2,在該第三個(gè)時(shí)間窗口內(nèi)的任一時(shí)間點(diǎn)計(jì)算總的匯總值時(shí),s總=s歷+s上+s當(dāng)=s1+s2+s當(dāng)。之后,在該時(shí)間窗口的結(jié)束時(shí)間點(diǎn),對(duì)s歷以及s上進(jìn)行更新,其中,更新后的s歷=s1+s2=s12,更新后的s上=s3,其中,s3為第三個(gè)時(shí)間窗口內(nèi)從起始時(shí)間點(diǎn)到結(jié)束時(shí)間點(diǎn)之間的分段匯總值。
在第四個(gè)時(shí)間窗口,s歷=s12,s上=s3,在該第四個(gè)時(shí)間窗口內(nèi)的任一時(shí)間點(diǎn)計(jì)算總的匯總值時(shí),s總=s歷+s上+s當(dāng)=s12+s3+s當(dāng)。之后,在該時(shí)間窗口的結(jié)束時(shí)間點(diǎn),對(duì)s歷以及s上進(jìn)行更新,其中,更新后的s歷=s12+s3=s123,更新后的s上=s4,其中,s4為第四個(gè)時(shí)間窗口內(nèi)從起始時(shí)間點(diǎn)到結(jié)束時(shí)間點(diǎn)之間的分段匯總值。
以此類推,后續(xù)各時(shí)間窗口中都可以按照上述方式進(jìn)行總匯總值的計(jì)算,以及第一參數(shù)值與第二參數(shù)值的更新。
總之,通過(guò)公式(3)以及公式(4),使得總匯總值的計(jì)算過(guò)程中,加法 運(yùn)算次數(shù)為兩次,參數(shù)值的更新操作中的加法運(yùn)算次數(shù)為一次,因此,時(shí)間復(fù)雜度可以控制為o(1)。
需要說(shuō)明的是,前述公式(3)可以在當(dāng)前時(shí)間,計(jì)算所有時(shí)間窗口的總的匯總值,并且,在當(dāng)前時(shí)間窗口可以執(zhí)行任意次。例如,在12月29日,可以在10:00執(zhí)行一次總的匯總,還可以在16:00再執(zhí)行一次總的匯總,等等。
而公式(4)是在每個(gè)時(shí)間窗口期間,執(zhí)行且只能執(zhí)行一次,用于更新第一參數(shù)值,以進(jìn)行下個(gè)時(shí)間窗口期間總匯總值的計(jì)算。公式(4)執(zhí)行后,就不能在當(dāng)前時(shí)間窗口內(nèi)用公式(3)來(lái)計(jì)算所有時(shí)間窗口的匯總值了,所以,公式(4)是在當(dāng)前時(shí)間窗口的結(jié)束時(shí)間點(diǎn)執(zhí)行。當(dāng)然,這里的結(jié)束時(shí)間點(diǎn),可以理解為恰好是當(dāng)前時(shí)間窗口的結(jié)束時(shí)間點(diǎn),或者,還可以是在當(dāng)前時(shí)間窗口即將結(jié)束時(shí)的某個(gè)時(shí)間點(diǎn),例如,在結(jié)束前1分鐘時(shí)進(jìn)行更新,等等。
另外需要說(shuō)明的是,在具體實(shí)現(xiàn)時(shí),第一參數(shù)值可以進(jìn)行持久化保存在匯總系統(tǒng)的數(shù)據(jù)庫(kù)中,第二參數(shù)值可以保存在回流數(shù)據(jù)庫(kù)中,其中,回流數(shù)據(jù)庫(kù)中的數(shù)據(jù)來(lái)源就是計(jì)算引擎,由于第二參數(shù)值是不需要計(jì)算的,而是直接根據(jù)實(shí)時(shí)計(jì)算引擎在上一個(gè)時(shí)間窗口的結(jié)束時(shí)間點(diǎn)回流的實(shí)時(shí)分段匯總結(jié)果而定,因此,可以直接在回流數(shù)據(jù)庫(kù)中保存。也即,可以在回流數(shù)據(jù)庫(kù)中保存用于記錄第二參數(shù)值的記錄,該條記錄在每個(gè)時(shí)間窗口的結(jié)束時(shí)間點(diǎn)進(jìn)行更新。
總之,在本申請(qǐng)實(shí)施例中,通過(guò)保存歷史匯總值以及上一個(gè)時(shí)間窗口的分段匯總結(jié)果,并在每個(gè)時(shí)間窗口的結(jié)束時(shí)間點(diǎn)對(duì)這兩個(gè)值進(jìn)行更新,就可以使得在計(jì)算總匯總值時(shí),只需要將歷史匯總值與上一時(shí)間窗口的分段匯總結(jié)果以及當(dāng)前時(shí)間窗口當(dāng)前時(shí)刻的實(shí)時(shí)分段匯總結(jié)果進(jìn)行相加,即可確定出從第一個(gè)時(shí)間窗口當(dāng)前時(shí)間窗口當(dāng)前時(shí)刻的總匯總值。這樣,可以實(shí)現(xiàn)在任意時(shí)間窗口的任一時(shí)間點(diǎn)都可以進(jìn)行總匯總量的計(jì)算,并且,每次計(jì)算時(shí),都只需要執(zhí)行兩次加法運(yùn)算,因此,使得時(shí)間復(fù)雜度為o(1)。
當(dāng)然,在實(shí)際應(yīng)用中,還可能出現(xiàn)實(shí)時(shí)計(jì)算引擎發(fā)生故障的情況,這就可能會(huì)導(dǎo)致某個(gè)或者某些時(shí)間窗口內(nèi)匯總值丟失,針對(duì)這種情況,在本申請(qǐng)實(shí)施例中,可以對(duì)實(shí)時(shí)計(jì)算引擎的運(yùn)行狀態(tài)進(jìn)行監(jiān)控,如果所述實(shí)時(shí)計(jì)算引擎發(fā)生 故障時(shí),則利用離線計(jì)算引擎回流的分段匯總結(jié)果,計(jì)算發(fā)生故障期間的離線匯總值,在所述實(shí)時(shí)計(jì)算引擎恢復(fù)后,利用所述第一參數(shù)、所述離線匯總值以及所述第三參數(shù)值,確定所述總匯總值。其中,對(duì)實(shí)時(shí)計(jì)算引擎的運(yùn)行狀態(tài)進(jìn)行監(jiān)控的實(shí)現(xiàn)方式可以有多種,例如,在其中一種方式下,可以在保存第一參數(shù)值以及第二參數(shù)值時(shí),還保存第一參數(shù)值以及第二參數(shù)值的更新時(shí)間,在進(jìn)行運(yùn)行狀態(tài)判斷時(shí),可以首先確定出所述第一參數(shù)值以及第二參數(shù)值的更新時(shí)間信息所屬的時(shí)間窗口,然后判斷所述所屬的時(shí)間窗口是否為當(dāng)前時(shí)間窗口的上一相鄰時(shí)間窗口,如果不是,則確定所述實(shí)時(shí)計(jì)算引擎發(fā)生故障。
也就是說(shuō),假設(shè)實(shí)時(shí)計(jì)算引擎在12月26日至12月27日發(fā)生故障,12月28日00:00前恢復(fù),則在12月26日至12月27日之間,實(shí)時(shí)計(jì)算引擎是無(wú)法進(jìn)行階段性匯總,也無(wú)法向匯總系統(tǒng)進(jìn)行數(shù)據(jù)回流。這樣,公式(3)中的s歷只能更新到12月24日,s上只能更新到12月25日,也就是說(shuō),假設(shè)第一個(gè)時(shí)間窗口是12月20日,則s歷的值是從12月20日00:00到12月24日24:00之間的歷史匯總值,s上的值是從12月25日00:00到12月25日24:00之間的分段匯總結(jié)果。在12月26日無(wú)法從實(shí)時(shí)計(jì)算引擎獲得實(shí)時(shí)分段匯總結(jié)果,因此,只能從離線計(jì)算引擎獲取離線匯總結(jié)果,由于離線計(jì)算引擎通常在一個(gè)時(shí)間窗口內(nèi)只執(zhí)行一次分段匯總操作,例如,在每天的24:00對(duì)當(dāng)天從00:00到24:00之間產(chǎn)生的數(shù)據(jù)進(jìn)行匯總,因此,在12月26日只能執(zhí)行一次總的匯總運(yùn)算。
具體進(jìn)行匯總運(yùn)算時(shí),就可以首先從保存的值中確定出s歷和s上,然后,從離線計(jì)算引擎回流的數(shù)據(jù)中確定出12月26日的分段匯總值s離,然后將通過(guò)s歷+s上+s離計(jì)算出截止到12月26日的總匯總量,并且可以更新s歷=s歷+s上,也就是說(shuō),此時(shí),s歷的值表示從12月20日00:00到12月25日24:00之間的歷史匯總值。如果到了12月27日,實(shí)時(shí)計(jì)算引擎仍然沒(méi)有恢復(fù),則在12月27日獲取到離線計(jì)算引擎回流的數(shù)據(jù)后,可以通過(guò)s歷+s離1+s離2計(jì)算出截止到12月27日的總匯總量,其中,s離1為從12月26日00:00到24:00離線計(jì)算引擎計(jì)算出的分段匯總值,s離2為從12月27日00:00到24:00離線計(jì)算引擎計(jì)算出的分段匯總值。到了12月28日,由于實(shí)時(shí)計(jì)算引擎已經(jīng)恢復(fù),因此,可以通過(guò)以下公式計(jì)算出截止到12月28日任一時(shí)間點(diǎn)的總 匯總值:
s總=s歷+s離1+s離2+s當(dāng)(5)
當(dāng)然,從上述公式(5)可以看出,如果實(shí)時(shí)計(jì)算引擎發(fā)生故障的時(shí)間不可估計(jì),則公式(5)仍然可能出現(xiàn)時(shí)間復(fù)雜度為o(n)的情況,因?yàn)?,發(fā)生故障的時(shí)間窗口每增加一個(gè),需要執(zhí)行加法運(yùn)算的次數(shù)就增加一次。
為此,在本申請(qǐng)實(shí)施例中,如果所述實(shí)時(shí)計(jì)算引擎在連續(xù)多個(gè)時(shí)間窗口發(fā)生故障,則還可以保存第四參數(shù)值s離歷以及第五參數(shù)值s離上,其中,第四參數(shù)值s離歷代表從發(fā)生故障的第一個(gè)時(shí)間窗口到發(fā)生故障的第j-2個(gè)時(shí)間窗口期間的歷史離線匯總值,所述第五參數(shù)值s離上為發(fā)生故障的第j-1個(gè)時(shí)間窗口的離線分段匯總結(jié)果。則在發(fā)生故障的第j個(gè)時(shí)間窗口(j為正整數(shù),第j個(gè)時(shí)間窗口代表當(dāng)前時(shí)間窗口),可以根據(jù)所述保存的信息確定所述第四參數(shù)值以及第五參數(shù)值,并將所述第四參數(shù)值與所述第五參數(shù)值相加,確定出所述離線匯總值。也就是說(shuō),可以通過(guò)以下方式對(duì)s離歷進(jìn)行更新:
s離歷=s離歷+s離上(6)
這樣,在所述實(shí)時(shí)計(jì)算引擎恢復(fù)后,就可以利用以下方式計(jì)算截止到任一時(shí)間點(diǎn)的總匯總值:
s總=s歷+s離歷+s當(dāng)(7)
在當(dāng)前時(shí)間窗口結(jié)束時(shí)間點(diǎn),可以將所述第四參數(shù)值與第五參數(shù)值相加,利用相加的結(jié)果更新所述保存的第四參數(shù)值,也就是說(shuō),可以通過(guò)以下方式對(duì)s歷進(jìn)行更新:
s歷=s歷+s離歷(8)
并且,還可以利用當(dāng)前時(shí)間窗口內(nèi)獲取到的離線計(jì)算引擎回流的分段匯總結(jié)果,更新第五參數(shù)值s離上。
需要說(shuō)明的是,公式(6)可以在實(shí)時(shí)計(jì)算引擎故障期間執(zhí)行,每個(gè)時(shí)間窗口執(zhí)行且只能執(zhí)行一次。
公式(7)是在實(shí)時(shí)計(jì)算引擎恢復(fù)后,可以在當(dāng)前時(shí)間,計(jì)算所有窗口的業(yè)務(wù)匯總值。在當(dāng)前時(shí)間窗口可以執(zhí)行任意次。
公式(8)可以在當(dāng)前窗口期間,執(zhí)行且只能執(zhí)行一次。用于更新歷史匯總值,用于下次計(jì)算。下次計(jì)算的時(shí)間,有可能是下個(gè)時(shí)間窗口,也有可能因?yàn)楣收系脑?,到了若干個(gè)時(shí)間窗口之后。公式(8)執(zhí)行后,就不能用公式(7)在當(dāng)前時(shí)間窗口計(jì)算匯總值了,所以,公式(8)可以在當(dāng)前時(shí)間窗口的結(jié)束時(shí)間點(diǎn)執(zhí)行。
其中,s離1、s離2等是通過(guò)離線計(jì)算引擎獲取,然后存儲(chǔ)在回流數(shù)據(jù)庫(kù)中的,是實(shí)時(shí)計(jì)算引擎發(fā)生故障時(shí),每個(gè)時(shí)間窗口的業(yè)務(wù)匯總數(shù)據(jù)。s離歷為故障期間所有時(shí)間窗口的歷史匯總值,可以進(jìn)行持久化保存,初始值為0。s歷也可以在數(shù)據(jù)庫(kù)中進(jìn)行持久化保存,并在每個(gè)時(shí)間窗口的結(jié)束點(diǎn)進(jìn)行更新。s當(dāng)同樣可以存儲(chǔ)在回流數(shù)據(jù)庫(kù)中,是當(dāng)前時(shí)間窗口下的實(shí)時(shí)匯總數(shù)據(jù)。
總之,在本申請(qǐng)實(shí)施例中,當(dāng)數(shù)據(jù)源發(fā)生不穩(wěn)定狀態(tài),也即實(shí)時(shí)計(jì)算引擎發(fā)生故障時(shí),也可以進(jìn)行數(shù)據(jù)的匯總運(yùn)算,并且,在運(yùn)算的過(guò)程中,同樣可以通過(guò)一些公式,使得計(jì)算的時(shí)間復(fù)雜度控制為o(1)。
與本申請(qǐng)實(shí)施例提供的數(shù)據(jù)匯總方法相對(duì)應(yīng),本申請(qǐng)實(shí)施例還提供了一種數(shù)據(jù)匯總裝置,參見(jiàn)圖2,該裝置可以包括:
第一參數(shù)值保存單元201,用于保存第一參數(shù)值以及第二參數(shù)值,其中,第一參數(shù)值代表從第一個(gè)時(shí)間窗口到第i-2個(gè)時(shí)間窗口結(jié)束時(shí)間點(diǎn)的歷史匯總值,第二參數(shù)值代表第i-1個(gè)時(shí)間窗口結(jié)束時(shí)間點(diǎn)上的分段匯總結(jié)果;其中,i為當(dāng)前時(shí)間窗口;
參數(shù)值確定單元202,用于在計(jì)算從第一個(gè)時(shí)間窗口到當(dāng)前時(shí)間窗口內(nèi)任一時(shí)間點(diǎn)的總匯總值時(shí),根據(jù)所述保存的信息確定第一參數(shù)值以及第二參數(shù)值,并根據(jù)實(shí)時(shí)計(jì)算引擎的實(shí)時(shí)數(shù)據(jù)回流結(jié)果,確定第三參數(shù)值,所述第三參數(shù)值代表當(dāng)前時(shí)間窗口內(nèi)當(dāng)前時(shí)間點(diǎn)上的實(shí)時(shí)分段匯總結(jié)果;
運(yùn)算單元203,用于將所述第一參數(shù)值、第二參數(shù)值以及第三參數(shù)值相加, 確定所述總匯總值;
參數(shù)值更新單元204,用于在當(dāng)前時(shí)間窗口的結(jié)束時(shí)間點(diǎn),將所述第一參數(shù)值與第二參數(shù)值相加,利用相加的結(jié)果更新所述保存的第一參數(shù)值,并利用當(dāng)前時(shí)間窗口結(jié)束時(shí)間點(diǎn)上的分段匯總結(jié)果更新所述保存的第二參數(shù)值。
其中,可以持久化保存所述第一參數(shù)值,所述第二參數(shù)值以及第三參數(shù)值保存在回流數(shù)據(jù)庫(kù)中。
具體實(shí)現(xiàn)時(shí),該裝置還可以包括:
監(jiān)控單元,用于對(duì)實(shí)時(shí)計(jì)算引擎的運(yùn)行狀態(tài)進(jìn)行監(jiān)控;
離線匯總值計(jì)算單元,用于如果所述實(shí)時(shí)計(jì)算引擎發(fā)生故障時(shí),則利用離線計(jì)算引擎回流的分段匯總結(jié)果,計(jì)算發(fā)生故障期間的離線匯總值;
總匯總值計(jì)算單元,用于在所述實(shí)時(shí)計(jì)算引擎恢復(fù)后,利用所述第一參數(shù)、所述離線匯總值以及所述第三參數(shù)值,確定所述總匯總值。
其中,如果所述實(shí)時(shí)計(jì)算引擎在連續(xù)多個(gè)時(shí)間窗口發(fā)生故障,則所述裝置還包括:
第二參數(shù)值保存單元,用于保存第四參數(shù)值以及第五參數(shù)值,其中,第四參數(shù)值代表從發(fā)生故障的第一個(gè)時(shí)間窗口到發(fā)生故障的第j-2個(gè)時(shí)間窗口期間的歷史離線匯總值,所述第五參數(shù)值為第j-1個(gè)時(shí)間窗口的離線分段匯總結(jié)果;
所述離線匯總值計(jì)算單元包括:
計(jì)算子單元,用于在發(fā)生故障的第j個(gè)時(shí)間窗口,根據(jù)所述保存的信息確定所述第四參數(shù)值以及第五參數(shù)值,并將所述第四參數(shù)值與所述第五參數(shù)值相加,確定所述離線匯總值;
更新子單元,用于在所述第j個(gè)時(shí)間窗口的結(jié)束時(shí)間點(diǎn),將所述第四參數(shù)值與第五參數(shù)值相加,利用相加的結(jié)果更新所述保存的第四參數(shù)值,并利用當(dāng)前時(shí)間窗口獲得的離線分段匯總結(jié)果更新所述保存的第五參數(shù)值。
具體實(shí)現(xiàn)時(shí),可以持久化保存所述第一參數(shù)值以及第四參數(shù)值,所述第三參數(shù)值以及第五參數(shù)值保存在回流數(shù)據(jù)庫(kù)中。
其中,所述保存第一參數(shù)值以及第二參數(shù)值時(shí),還包括第一參數(shù)值以及第二參數(shù)值的更新時(shí)間,此時(shí),所述監(jiān)控單元包括:
時(shí)間窗口確定子單元,用于確定所述第一參數(shù)值以及第二參數(shù)值的更新時(shí)間信息所屬的時(shí)間窗口;
判斷子單元,用于判斷所述所屬的時(shí)間窗口是否為當(dāng)前時(shí)間窗口的上一相鄰時(shí)間窗口,如果不是,則確定所述實(shí)時(shí)計(jì)算引擎發(fā)生故障。
總之,在本申請(qǐng)實(shí)施例中,通過(guò)保存歷史匯總值以及上一個(gè)時(shí)間窗口的分段匯總結(jié)果,并在每個(gè)時(shí)間窗口的結(jié)束時(shí)間點(diǎn)對(duì)這兩個(gè)值進(jìn)行更新,就可以使得在計(jì)算總匯總值時(shí),只需要將歷史匯總值與上一時(shí)間窗口的分段匯總結(jié)果以及當(dāng)前時(shí)間窗口當(dāng)前時(shí)刻的實(shí)時(shí)分段匯總結(jié)果進(jìn)行相加,即可確定出從第一個(gè)時(shí)間窗口當(dāng)前時(shí)間窗口當(dāng)前時(shí)刻的總匯總值。這樣,可以實(shí)現(xiàn)在任意時(shí)間窗口的任一時(shí)間點(diǎn)都可以進(jìn)行總匯總量的計(jì)算,并且,每次計(jì)算時(shí),都只需要執(zhí)行兩次加法運(yùn)算,因此,使得時(shí)間復(fù)雜度為o(1)。
另外,當(dāng)數(shù)據(jù)源發(fā)生不穩(wěn)定狀態(tài),也即實(shí)時(shí)計(jì)算引擎發(fā)生故障時(shí),也可以進(jìn)行數(shù)據(jù)的匯總運(yùn)算,并且,在運(yùn)算的過(guò)程中,同樣可以通過(guò)一些公式,使得計(jì)算的時(shí)間復(fù)雜度控制為o(1)。
通過(guò)以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)。基于這樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)或系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述 得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的系統(tǒng)及系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
以上對(duì)本申請(qǐng)所提供的數(shù)據(jù)匯總方法及裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處。綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。