欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種維度數(shù)據(jù)處理方法及裝置與流程

文檔序號(hào):12818930閱讀:398來(lái)源:國(guó)知局
一種維度數(shù)據(jù)處理方法及裝置與流程

本申請(qǐng)涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種維度數(shù)據(jù)處理方法及裝置。



背景技術(shù):

隨著信息技術(shù)的不斷發(fā)展,基于互聯(lián)網(wǎng)的業(yè)務(wù)呈現(xiàn)爆炸式增長(zhǎng)。一種互聯(lián)網(wǎng)業(yè)務(wù)通常有與之對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)。當(dāng)業(yè)務(wù)數(shù)據(jù)達(dá)到較大規(guī)模時(shí),為便于管理,通常采用基于維度建模的數(shù)據(jù)倉(cāng)庫(kù)技術(shù)對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行存儲(chǔ)。

基于維度建模的數(shù)據(jù)倉(cāng)庫(kù)技術(shù)將業(yè)務(wù)的業(yè)務(wù)數(shù)據(jù)劃分為多個(gè)維度。比如,當(dāng)業(yè)務(wù)數(shù)據(jù)體現(xiàn)為業(yè)務(wù)的多個(gè)屬性及對(duì)應(yīng)的值時(shí),可以將一類(lèi)屬性及其對(duì)應(yīng)的值作為一個(gè)維度,該屬性及其對(duì)應(yīng)的值稱為與該維度對(duì)應(yīng)的維度數(shù)據(jù)。然后在數(shù)據(jù)倉(cāng)庫(kù)中采用數(shù)據(jù)表的形式保存該維度對(duì)應(yīng)的維度數(shù)據(jù)。

在實(shí)際應(yīng)用中,同一筆業(yè)務(wù)隨著時(shí)間變化,可能接收到用于變更該筆業(yè)務(wù)的狀態(tài)的業(yè)務(wù)信息,進(jìn)而可能要根據(jù)該業(yè)務(wù)消息,通過(guò)對(duì)數(shù)據(jù)表中保存的該筆業(yè)務(wù)的某些維度的維度數(shù)據(jù)進(jìn)行變更,實(shí)現(xiàn)對(duì)該筆業(yè)務(wù)的狀態(tài)的變更。這種隨著時(shí)間變化可能發(fā)生變更的維度可以稱為緩慢變化維(slowlychangingdimensions,scd)。

在現(xiàn)有技術(shù)中,當(dāng)要變更該筆業(yè)務(wù)的狀態(tài)時(shí),會(huì)對(duì)數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)表內(nèi)保存的這種緩慢變化維的維度數(shù)據(jù)記錄進(jìn)行相應(yīng)變更,維度數(shù)據(jù)記錄變更完成即意味著該筆業(yè)務(wù)的狀態(tài)變更完成,并用變更后的維度數(shù)據(jù)記錄表示該筆業(yè)務(wù)的最新?tīng)顟B(tài)。

但是,上述處理方式無(wú)法記錄緩慢變化維的變化過(guò)程。



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

本申請(qǐng)實(shí)施例提供一種維度數(shù)據(jù)處理方法及裝置,用以解決現(xiàn)有技術(shù)中的維度數(shù)據(jù)處理方式無(wú)法記錄緩慢變化維的變化過(guò)程的問(wèn)題。

本申請(qǐng)實(shí)施例提供的一種維度數(shù)據(jù)處理方法,包括:

接收用于變更業(yè)務(wù)的狀態(tài)的業(yè)務(wù)消息;

根據(jù)所述業(yè)務(wù)消息,向數(shù)據(jù)表中插入所述業(yè)務(wù)的變更后狀態(tài)的維度數(shù)據(jù)記錄,所述維度數(shù)據(jù)記錄具有與之對(duì)應(yīng)的標(biāo)記信息,所述數(shù)據(jù)表用于保存所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄;

根據(jù)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表,對(duì)數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄的標(biāo)記信息進(jìn)行更新;

其中,所述標(biāo)記信息用于表示與之對(duì)應(yīng)的維度數(shù)據(jù)記錄是否反映所述業(yè)務(wù)的最新?tīng)顟B(tài)。

本申請(qǐng)實(shí)施例提供的一種維度數(shù)據(jù)處理裝置,包括:

接收模塊,用于接收用于變更業(yè)務(wù)的狀態(tài)的業(yè)務(wù)消息;

變更模塊,用于根據(jù)所述業(yè)務(wù)消息,向數(shù)據(jù)表中插入所述業(yè)務(wù)的變更后狀態(tài)的維度數(shù)據(jù)記錄,所述維度數(shù)據(jù)記錄具有與之對(duì)應(yīng)的標(biāo)記信息,所述數(shù)據(jù)表用于保存所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄;

更新模塊,用于根據(jù)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表,對(duì)數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄的標(biāo)記信息進(jìn)行更新;

其中,所述標(biāo)記信息用于表示與之對(duì)應(yīng)的維度數(shù)據(jù)記錄是否反映所述業(yè)務(wù)的最新?tīng)顟B(tài)。

本申請(qǐng)實(shí)施例提供另一種維度數(shù)據(jù)處理方法及裝置,用以解決現(xiàn)有技術(shù)中的維度數(shù)據(jù)處理方式無(wú)法記錄緩慢變化維的變化過(guò)程的問(wèn)題。

本申請(qǐng)實(shí)施例提供的一種維度數(shù)據(jù)處理方法,包括:

接收用于變更業(yè)務(wù)的狀態(tài)的業(yè)務(wù)消息;

根據(jù)所述業(yè)務(wù)消息,創(chuàng)建并執(zhí)行事務(wù),其中,所述事務(wù)中包含的各步驟是按照如下順序執(zhí)行的:

根據(jù)所述業(yè)務(wù)消息,向數(shù)據(jù)表中插入所述業(yè)務(wù)的變更后狀態(tài)的維度數(shù)據(jù)記錄,所述維度數(shù)據(jù)記錄具有與之對(duì)應(yīng)的標(biāo)記信息,所述數(shù)據(jù)表用于保存所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄;

針對(duì)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄,將包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄的標(biāo)記信息更新為第一值,所述第一值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄反映所述業(yè)務(wù)的最新?tīng)顟B(tài);

針對(duì)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄,將除了包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄以外的、其他維度數(shù)據(jù)記錄的標(biāo)記信息更新為第二值,所述第二值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄不反映所述業(yè)務(wù)的最新?tīng)顟B(tài)。

本申請(qǐng)實(shí)施例提供的一種維度數(shù)據(jù)處理裝置,包括:

接收模塊,用于接收用于變更業(yè)務(wù)的狀態(tài)的業(yè)務(wù)消息;

處理模塊,用于根據(jù)所述業(yè)務(wù)消息,創(chuàng)建并執(zhí)行事務(wù),其中,所述事務(wù)中包含的各步驟是按照如下順序執(zhí)行的:

根據(jù)所述業(yè)務(wù)消息,向數(shù)據(jù)表中插入所述業(yè)務(wù)的變更后狀態(tài)的維度數(shù)據(jù)記錄,所述維度數(shù)據(jù)記錄具有與之對(duì)應(yīng)的標(biāo)記信息,所述數(shù)據(jù)表用于保存所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄;

針對(duì)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄,將包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄的標(biāo)記信息更新為第一值,所述第一值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄反映所述業(yè)務(wù)的最新?tīng)顟B(tài);

針對(duì)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄,將除了包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄以外的、其他維度數(shù)據(jù)記錄的標(biāo)記信息更新為第二值,所述第二值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄不反映所述業(yè)務(wù)的最新?tīng)顟B(tài)。

本申請(qǐng)實(shí)施例通過(guò)上述至少一種技術(shù)方案,在緩慢變化維的變化過(guò)程中,同一張數(shù)據(jù)表不僅可以保存最新維度數(shù)據(jù)記錄,而且可以保存各歷史維度數(shù)據(jù) 記錄,從而解決了現(xiàn)有技術(shù)中的問(wèn)題。此外,在本申請(qǐng)的技術(shù)方案中,還存在基于維度數(shù)據(jù)記錄的標(biāo)記信息,通過(guò)該標(biāo)記信息可以區(qū)分歷史維度數(shù)據(jù)記錄和最新維度數(shù)據(jù)記錄,從而有利于分析緩慢變化維的變化過(guò)程。

附圖說(shuō)明

此處所說(shuō)明的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:

圖1為本申請(qǐng)實(shí)施例提供的維度數(shù)據(jù)處理方法的過(guò)程;

圖2為本申請(qǐng)實(shí)施例提供的另一種維度數(shù)據(jù)處理方法的過(guò)程;

圖3為本申請(qǐng)實(shí)施例提供的對(duì)應(yīng)于圖1的維度數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖;

圖4為本申請(qǐng)實(shí)施例提供的對(duì)應(yīng)于圖2的維度數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖。

具體實(shí)施方式

為使本申請(qǐng)的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)具體實(shí)施例及相應(yīng)的附圖對(duì)本申請(qǐng)技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。

為了便于理解,下面用以電子商務(wù)業(yè)務(wù)為例,對(duì)背景技術(shù)中提到的問(wèn)題進(jìn)行說(shuō)明。

例如,對(duì)于一筆電子商務(wù)業(yè)務(wù),可以根據(jù)該業(yè)務(wù)的屬性類(lèi)別將其劃分為訂單、時(shí)間、商戶等多個(gè)維度,訂單維度就是一種緩慢變化維。每筆電子商務(wù)業(yè)務(wù)一般可以有訂單創(chuàng)建、訂單支付中和訂單支付完成三種狀態(tài),以訂單維度而言:當(dāng)業(yè)務(wù)初始化為訂單創(chuàng)建狀態(tài)時(shí),會(huì)向數(shù)據(jù)表中插入一條訂單維度的維度數(shù)據(jù)記錄;當(dāng)業(yè)務(wù)要由訂單創(chuàng)建狀態(tài)變更為訂單支付中狀態(tài)時(shí),可以對(duì)該維度 數(shù)據(jù)記錄相應(yīng)地進(jìn)行第一次變更,第一次變更完成后,業(yè)務(wù)處于訂單支付中狀態(tài);當(dāng)業(yè)務(wù)要由訂單支付中狀態(tài)變更為訂單支付完成狀態(tài)時(shí),可以對(duì)第一次變更后的維度數(shù)據(jù)記錄進(jìn)行第二次變更,第二次變更完成后,業(yè)務(wù)處于訂單支付完成狀態(tài)。

可以看到,對(duì)于一筆電子商務(wù)業(yè)務(wù)的訂單維度,任意時(shí)間數(shù)據(jù)表中只存在一條對(duì)應(yīng)于訂單維度的維度數(shù)據(jù)記錄,這條維度數(shù)據(jù)記錄可以反映業(yè)務(wù)的最新?tīng)顟B(tài),但是無(wú)法記錄訂單維度的變化過(guò)程。

為了解決現(xiàn)有技術(shù)中的問(wèn)題,在本申請(qǐng)實(shí)施例中,對(duì)于業(yè)務(wù)的各狀態(tài)中的每種狀態(tài),當(dāng)業(yè)務(wù)要變更為該狀態(tài)時(shí),可以向數(shù)據(jù)表中新插入一條與該狀態(tài)對(duì)應(yīng)的維度數(shù)據(jù)記錄(簡(jiǎn)稱為:該狀態(tài)的維度數(shù)據(jù)記錄),而不是像現(xiàn)有技術(shù)那樣只在原有維度數(shù)據(jù)記錄上進(jìn)行變更;并且可以為維度數(shù)據(jù)記錄增加標(biāo)記信息,該標(biāo)記信息可以用于表示該維度數(shù)據(jù)是否反映業(yè)務(wù)的最新?tīng)顟B(tài)(是否反映該業(yè)務(wù)的緩慢變化維的維度數(shù)據(jù)的最新?tīng)顟B(tài)),進(jìn)一步地,還可以用標(biāo)記信息對(duì)各維度數(shù)據(jù)記錄進(jìn)行區(qū)分,從而,可以在一張數(shù)據(jù)表中保存緩慢變化維在業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄,進(jìn)而根據(jù)各維度數(shù)據(jù)記錄,可以分析緩慢變化維的變化過(guò)程。

不僅如此,本申請(qǐng)實(shí)施例還考慮了在實(shí)際應(yīng)用中,用于變更業(yè)務(wù)的狀態(tài)的業(yè)務(wù)消息可能會(huì)發(fā)生亂序和/或并發(fā)的特殊場(chǎng)景,并提供了可以應(yīng)對(duì)這些特殊場(chǎng)景的維度數(shù)據(jù)處理方案,從而可以進(jìn)一步地提高本申請(qǐng)的方案的適用性和可靠性。

下面對(duì)本申請(qǐng)的方案進(jìn)行具體說(shuō)明。

圖1為本申請(qǐng)實(shí)施例提供的維度數(shù)據(jù)處理方法的過(guò)程,該過(guò)程的執(zhí)行主體可以是終端或服務(wù)器。所述終端包括但不限于:個(gè)人計(jì)算機(jī)、手機(jī)、平板電腦、智能手表、車(chē)載移動(dòng)臺(tái)等;所述服務(wù)器包括但不限于:個(gè)人計(jì)算機(jī)、大中型計(jì)算機(jī)、計(jì)算機(jī)集群等。執(zhí)行主體并不構(gòu)成對(duì)本申請(qǐng)的限定。為了便于描述,本申請(qǐng)實(shí)施例以執(zhí)行主體是服務(wù)器為例進(jìn)行說(shuō)明。

在本申請(qǐng)實(shí)施例中,所述的維度可以是可能隨著時(shí)間變化或業(yè)務(wù)狀態(tài)變化而變化的維度,如緩慢變化維等。

圖1中的過(guò)程具體可以包括以下步驟:

s101:接收用于變更業(yè)務(wù)的狀態(tài)的業(yè)務(wù)消息。

在本申請(qǐng)實(shí)施例中,所述業(yè)務(wù)可以是電子商務(wù)業(yè)務(wù)、金融業(yè)務(wù)、通信業(yè)務(wù)等任意類(lèi)型的業(yè)務(wù),相應(yīng)地,服務(wù)器可以是該業(yè)務(wù)的服務(wù)器。業(yè)務(wù)具有至少兩種狀態(tài),所述業(yè)務(wù)消息可以是任意用于將業(yè)務(wù)初始化(這也屬于一種變更)為一種狀態(tài),或者,用于將業(yè)務(wù)從一種狀態(tài)變更為另一種狀態(tài)的消息。本申請(qǐng)實(shí)施例對(duì)業(yè)務(wù)消息的格式和內(nèi)容并不做限定。

例如,對(duì)于一筆電子商務(wù)業(yè)務(wù),業(yè)務(wù)消息可以是請(qǐng)求創(chuàng)建訂單的消息,用于將創(chuàng)建該筆電子商務(wù)業(yè)務(wù),并將該筆電子商務(wù)業(yè)務(wù)初始化為訂單創(chuàng)建狀態(tài);也可以是請(qǐng)求支付訂單的消息,用于將該筆電子商務(wù)業(yè)務(wù)從訂單創(chuàng)建狀態(tài)變更為訂單支付中狀態(tài);也可以是確定訂單支付完成的消息,用于將該筆電子商務(wù)業(yè)務(wù)從訂單支付中狀態(tài)變更為訂單支付完成狀態(tài)。

又例如,對(duì)于一筆金融(假定為轉(zhuǎn)賬)業(yè)務(wù),可以是請(qǐng)求轉(zhuǎn)賬的消息,用于將該筆金融業(yè)務(wù)初始化為轉(zhuǎn)出方已扣款轉(zhuǎn)入方尚未收款的狀態(tài);也可以是確定轉(zhuǎn)賬完成的消息,用于將該筆金融業(yè)務(wù)從轉(zhuǎn)出方已扣款轉(zhuǎn)入方尚未收款的狀態(tài),變更為轉(zhuǎn)出方已扣款轉(zhuǎn)入方已收款的狀態(tài)。

s102:根據(jù)所述業(yè)務(wù)消息,向數(shù)據(jù)表中插入所述業(yè)務(wù)的變更后狀態(tài)的維度數(shù)據(jù)記錄,所述維度數(shù)據(jù)記錄具有與之對(duì)應(yīng)的標(biāo)記信息,所述數(shù)據(jù)表用于保存所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄。

在本申請(qǐng)實(shí)施例中,所述業(yè)務(wù)消息中可以攜帶用于對(duì)生成或變更維度數(shù)據(jù)的參數(shù),也可以攜帶用于請(qǐng)求任意設(shè)備生成或變更維度數(shù)據(jù)的指令。

在背景技術(shù)中已提到,在現(xiàn)有技術(shù)中,當(dāng)業(yè)務(wù)狀態(tài)變更時(shí),是對(duì)數(shù)據(jù)表中已保存的、對(duì)應(yīng)的維度數(shù)據(jù)記錄進(jìn)行變更,用變更后的維度數(shù)據(jù)記錄反映業(yè)務(wù)的最新?tīng)顟B(tài),可以看到,這種方案實(shí)質(zhì)上是用變更后狀態(tài)的維度數(shù)據(jù)記錄替換 掉變更前狀態(tài)的維度數(shù)據(jù)記錄。

而在本申請(qǐng)實(shí)施例中,每當(dāng)變更業(yè)務(wù)的狀態(tài)時(shí),可以通過(guò)向數(shù)據(jù)表中插入變更后狀態(tài)的一條維度數(shù)據(jù)記錄,實(shí)現(xiàn)變更業(yè)務(wù)的狀態(tài),這樣的話,業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄都得以保存在數(shù)據(jù)表中。其中,插入的維度數(shù)據(jù)記錄可以是基于接收的業(yè)務(wù)消息生成的。

沿用上例的電子商務(wù)業(yè)務(wù)進(jìn)行說(shuō)明。假定某筆電子商務(wù)業(yè)務(wù)處于訂單支付完成,根據(jù)前面的說(shuō)明可知,服務(wù)器至少接收過(guò)針對(duì)該筆電子商務(wù)業(yè)務(wù)的三條業(yè)務(wù)信息,導(dǎo)致該筆電子商務(wù)業(yè)務(wù)的狀態(tài)至少變更三次,相應(yīng)地,向數(shù)據(jù)表中至少插入過(guò)屬于訂單維度的三條維度數(shù)據(jù)記錄。

所述標(biāo)記信息在現(xiàn)有技術(shù)中是沒(méi)有的,而是本申請(qǐng)的方案新增的,在步驟s103中對(duì)其進(jìn)行具體說(shuō)明。

s103:根據(jù)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表,對(duì)數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄的標(biāo)記信息進(jìn)行更新;其中,所述標(biāo)記信息用于表示與之對(duì)應(yīng)的維度數(shù)據(jù)記錄是否反映所述業(yè)務(wù)的最新?tīng)顟B(tài)。

在本申請(qǐng)實(shí)施例中,由于對(duì)于一筆業(yè)務(wù)的維度,數(shù)據(jù)表中可能要保存屬于該維度的多條維度數(shù)據(jù)記錄,因此,可以對(duì)所述多條維度數(shù)據(jù)記錄進(jìn)行區(qū)分,以便于查詢及分析。

具體的,每條維度數(shù)據(jù)記錄可以分別具有與之對(duì)應(yīng)標(biāo)記信息,具體的,每條維度數(shù)據(jù)記錄可以包含或者關(guān)聯(lián)一個(gè)標(biāo)記信息,作為與該條維度數(shù)據(jù)記錄對(duì)應(yīng)的標(biāo)記信息。為了便于描述,可以將維度數(shù)據(jù)記錄包含或者關(guān)聯(lián)的標(biāo)記信息稱為:維度數(shù)據(jù)記錄的標(biāo)記信息。本申請(qǐng)實(shí)施例對(duì)維度數(shù)據(jù)記錄包含或關(guān)聯(lián)標(biāo)記信息的方式并不做限定。例如,可以為針對(duì)預(yù)先對(duì)維度數(shù)據(jù)記錄的格式進(jìn)行修改,增加一個(gè)預(yù)先字段,用該預(yù)定字段保存標(biāo)記信息,這種方案只需針對(duì)數(shù)據(jù)表中的維度增加一個(gè)屬性列(該屬性列的屬性即為該預(yù)定字段)即可,優(yōu)點(diǎn)是實(shí)施成本??;或者,也可以用單獨(dú)的文件,記錄各維度數(shù)據(jù)記錄關(guān)聯(lián)的標(biāo)記信息,這種方案是優(yōu)點(diǎn)是對(duì)數(shù)據(jù)表的影響較?。坏鹊?。

在本申請(qǐng)實(shí)施例中,標(biāo)記信息可以用于區(qū)分歷史維度數(shù)據(jù)記錄(業(yè)務(wù)的當(dāng)前狀態(tài)之前的各狀態(tài)的維度數(shù)據(jù)記錄)和最新維度數(shù)據(jù)記錄(業(yè)務(wù)的當(dāng)前狀態(tài)的維度數(shù)據(jù)記錄)。在這種情況下,維度數(shù)據(jù)記錄的標(biāo)記信息可以有兩種取值(分別稱為第一值、第二值):第一值可以表示該維度數(shù)據(jù)記錄是最新維度數(shù)據(jù)記錄,也即,該維度記錄反映業(yè)務(wù)的最新?tīng)顟B(tài);第二值可以表示該維度數(shù)據(jù)記錄是歷史維度數(shù)據(jù)記錄,也即,該維度記錄不反映業(yè)務(wù)的最新?tīng)顟B(tài)。

標(biāo)記信息還可以用于對(duì)各歷史維度數(shù)據(jù)記錄進(jìn)一步地區(qū)分。在這種情況下,維度數(shù)據(jù)記錄的標(biāo)記信息可能的取值的數(shù)量,可以與業(yè)務(wù)可能的狀態(tài)的數(shù)量相同,每一種取值可以對(duì)應(yīng)于一種狀態(tài)。從而,對(duì)于一筆業(yè)務(wù)的一個(gè)維度的各維度數(shù)據(jù)記錄,每個(gè)維度數(shù)據(jù)記錄的標(biāo)記信息都是不相同的,因此,可以根據(jù)標(biāo)記信息將所述各維度數(shù)據(jù)記錄一一區(qū)分開(kāi)來(lái)。這樣的話,可以提高以后分析該維度的變化過(guò)程的效率。

在本申請(qǐng)實(shí)施例中,每當(dāng)針對(duì)某筆業(yè)務(wù),向數(shù)據(jù)表中插入了新的維度數(shù)據(jù)記錄時(shí),可以說(shuō)明該筆業(yè)務(wù)的狀態(tài)發(fā)生了變更,因此,可以對(duì)屬于該筆業(yè)務(wù)的、與插入的新的維度數(shù)據(jù)記錄屬于同一維度的、部分或全部維度數(shù)據(jù)記錄的標(biāo)記信息相應(yīng)地進(jìn)行更新。在實(shí)際應(yīng)用中,所述更新的操作的實(shí)時(shí)性越高,則標(biāo)記信息的實(shí)時(shí)性和可靠性也越高。

在本申請(qǐng)實(shí)施例中,針對(duì)步驟s103中的各維度數(shù)據(jù)記錄的標(biāo)記信息執(zhí)行的更新操作,也可以不全在步驟s103中執(zhí)行,其中的一部分也可以在步驟s102中或步驟s102之前執(zhí)行,所述其中的一部分可以指業(yè)務(wù)的各歷史維度數(shù)據(jù)記錄。

通過(guò)圖1中的方法,在緩慢變化維的變化過(guò)程中,同一張數(shù)據(jù)表不僅可以保存最新維度數(shù)據(jù)記錄,而且可以保存各歷史維度數(shù)據(jù)記錄,從而解決了現(xiàn)有技術(shù)中的問(wèn)題。此外,在本申請(qǐng)的技術(shù)方案中,還存在基于維度數(shù)據(jù)記錄的標(biāo)記信息,通過(guò)該標(biāo)記信息可以區(qū)分歷史維度數(shù)據(jù)記錄和最新維度數(shù)據(jù)記錄,從而有利于分析緩慢變化維的變化過(guò)程。

為了便于理解,下面對(duì)圖1中的步驟進(jìn)一步地說(shuō)明。

前面已經(jīng)提到,維度數(shù)據(jù)記錄包含或關(guān)聯(lián)標(biāo)記信息的方式可以有多種。本申請(qǐng)實(shí)施例主要針對(duì)預(yù)定字段的方式進(jìn)行說(shuō)明。具體的,所述維度數(shù)據(jù)記錄的標(biāo)記信息可以通過(guò)所述維度數(shù)據(jù)記錄的預(yù)定字段進(jìn)行保存。

例如,可以針對(duì)維度增加一個(gè)屬性行,該屬性行的屬性即為該預(yù)定字段,假定該預(yù)定字段的名稱為“tag”(為了便于,將該預(yù)定字段稱為tag字段),以及假定tag字段的數(shù)據(jù)類(lèi)型為整型。

可以預(yù)先對(duì)tag字段的不同取值所表示含義進(jìn)行定義。如tag字段可以等于1或0,其中,1作為第一值,0作為第二值,則當(dāng)tag字段等于1時(shí),可以表示對(duì)應(yīng)的維度數(shù)據(jù)記錄反映業(yè)務(wù)的最新?tīng)顟B(tài),當(dāng)tag字段等于0時(shí),可以表示對(duì)應(yīng)的維度數(shù)據(jù)記錄不反映業(yè)務(wù)的最新?tīng)顟B(tài)。

當(dāng)然,若要對(duì)各歷史維度數(shù)據(jù)記錄也進(jìn)行區(qū)分的話,tag字段可以有更多的取值。例如,對(duì)于上述的電子商務(wù)業(yè)務(wù),tag字段可以等于0或1或2,其中,當(dāng)tag字段等于0時(shí),可以表示對(duì)應(yīng)的維度數(shù)據(jù)記錄是訂單創(chuàng)建狀態(tài)的維度數(shù)據(jù)記錄,當(dāng)tag字段等于1時(shí),可以表示對(duì)應(yīng)的維度數(shù)據(jù)記錄是訂單支付中狀態(tài)的維度數(shù)據(jù)記錄,當(dāng)tag字段等于2時(shí),可以表示對(duì)應(yīng)的維度數(shù)據(jù)記錄是訂單支付完成狀態(tài)的維度數(shù)據(jù)記錄,則在任意時(shí)刻,數(shù)據(jù)表中tag字段值最大的維度數(shù)據(jù)記錄可以反映業(yè)務(wù)的最新?tīng)顟B(tài)。

需要說(shuō)明的是,上例中的tag字段是該預(yù)定字段的一個(gè)示例,0、1是預(yù)定字段的取值的示例,本申請(qǐng)實(shí)施例對(duì)該預(yù)定字段的名稱、數(shù)據(jù)類(lèi)型、取值等并不做限定。

在本申請(qǐng)實(shí)施例中,所述的插入的操作可以通過(guò)數(shù)據(jù)庫(kù)的插入(insert)指令實(shí)現(xiàn),所述的更新的操作可以通過(guò)數(shù)據(jù)庫(kù)的更新(update)指令實(shí)現(xiàn)。這些指令具體可以是結(jié)構(gòu)化查詢語(yǔ)言(structuredquerylanguage,sql)語(yǔ)句,也可以是其他形式的數(shù)據(jù)庫(kù)操作語(yǔ)句。

在本申請(qǐng)實(shí)施例中,對(duì)于步驟s102和步驟s103,其在不同的場(chǎng)景下的具 體實(shí)施方式也可以不同,主要有三種場(chǎng)景:業(yè)務(wù)消息未亂序也未并發(fā)的場(chǎng)景、業(yè)務(wù)消息可能亂序的場(chǎng)景、業(yè)務(wù)消息可能亂序且可能并發(fā)的場(chǎng)景。下面分別進(jìn)行說(shuō)明。

對(duì)于業(yè)務(wù)消息未亂序也未并發(fā)的場(chǎng)景,說(shuō)明如下:

在這種場(chǎng)景下,每當(dāng)接收到用于變更業(yè)務(wù)的狀態(tài)的業(yè)務(wù)消息,根據(jù)該業(yè)務(wù)消息,要向數(shù)據(jù)表中插入的、該業(yè)務(wù)的變更后狀態(tài)的維度數(shù)據(jù)記錄可以反映業(yè)務(wù)的最新?tīng)顟B(tài)。

因此,可以在插入該維度數(shù)據(jù)記錄前,將數(shù)據(jù)表中已保存的、與該維度數(shù)據(jù)記錄屬于同一維度的各維度數(shù)據(jù)記錄的標(biāo)記信息更新為第二值,進(jìn)而,在插入該維度數(shù)據(jù)記錄后,可以將該維度數(shù)據(jù)記錄的標(biāo)記信息更新為第一值;或者,也可以先插入該維度數(shù)據(jù)記錄,之后,再將該維度數(shù)據(jù)記錄的標(biāo)記信息更新為第一值,以及將數(shù)據(jù)表中已保存的、與該維度數(shù)據(jù)記錄屬于同一維度的各維度數(shù)據(jù)記錄的標(biāo)記信息更新為第二值;等等。其中,其中,第一值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄反映業(yè)務(wù)的最新?tīng)顟B(tài),第二值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄不反映業(yè)務(wù)的最新?tīng)顟B(tài)。

對(duì)于業(yè)務(wù)消息可能亂序的場(chǎng)景,說(shuō)明如下:

在這種場(chǎng)景下,最新插入的維度數(shù)據(jù)記錄不一定反映業(yè)務(wù)的最新?tīng)顟B(tài)。因此,可以對(duì)數(shù)據(jù)表中的各維度數(shù)據(jù)記錄進(jìn)一步地分析,以確定反映業(yè)務(wù)的最新?tīng)顟B(tài)的維度數(shù)據(jù)記錄,進(jìn)而再對(duì)維度數(shù)據(jù)記錄的標(biāo)記信息進(jìn)行更新。

在實(shí)際應(yīng)用中,維度數(shù)據(jù)記錄可以包含有特定信息,特定信息反映所述維度數(shù)據(jù)記錄對(duì)應(yīng)的業(yè)務(wù)消息在各業(yè)務(wù)消息中的邏輯順序?;谶@種前提,對(duì)于步驟s103,根據(jù)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表,對(duì)數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄的標(biāo)記信息進(jìn)行更新,具體可以包括:根據(jù)所述業(yè)務(wù)的標(biāo)識(shí)和插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表,確定數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄;根據(jù)確定的各維度數(shù)據(jù)記錄包含的特定信息,對(duì)所述各維度數(shù)據(jù)記錄的標(biāo)記信息進(jìn)行更新。

在本申請(qǐng)實(shí)施例中,維度數(shù)據(jù)記錄中可以包含該維度數(shù)據(jù)記錄所屬業(yè)務(wù)的標(biāo)識(shí)。例如,對(duì)于一筆電子商務(wù)業(yè)務(wù),其標(biāo)識(shí)可以是訂單號(hào),或者,其他可以用于唯一確定該筆業(yè)務(wù)的信息;類(lèi)似地,對(duì)于一筆金融業(yè)務(wù),其標(biāo)識(shí)可以是交易號(hào)。

進(jìn)一步地,上述的特定信息可以是業(yè)務(wù)消息創(chuàng)建時(shí)間,或者,用于標(biāo)記維度數(shù)據(jù)記錄對(duì)應(yīng)的業(yè)務(wù)消息在各業(yè)務(wù)消息中的邏輯順序的標(biāo)識(shí),如序號(hào)等。在此對(duì)所述的邏輯順序進(jìn)行說(shuō)明。

邏輯順序可以指創(chuàng)建以及發(fā)送各業(yè)務(wù)消息的順序,這種順序是與業(yè)務(wù)預(yù)定的邏輯匹配的。例如,對(duì)于一筆電子商務(wù)業(yè)務(wù),其三種狀態(tài)對(duì)應(yīng)的三條業(yè)務(wù)消息可以為:請(qǐng)求創(chuàng)建訂單的消息、請(qǐng)求支付訂單的消息、確定訂單支付完成的消息。從電子商務(wù)業(yè)務(wù)的業(yè)務(wù)邏輯上來(lái)說(shuō),只有在創(chuàng)建訂單后,才可能開(kāi)始進(jìn)行訂單支付,只有在開(kāi)始支付之后,才可能支付完成,因此,請(qǐng)求創(chuàng)建訂單的消息的邏輯順序先于請(qǐng)求支付訂單的消息,請(qǐng)求支付訂單的消息先于確定訂單支付完成的消息。

但是,在實(shí)際應(yīng)用中,由于處理延遲或網(wǎng)絡(luò)延遲等原因,可能會(huì)導(dǎo)致先創(chuàng)建及發(fā)送的消息反而晚于后創(chuàng)建及發(fā)送的消息到達(dá)服務(wù)器。這種情況即為上面提到的:業(yè)務(wù)消息亂序。

根據(jù)上面的說(shuō)明,當(dāng)特定信息是業(yè)務(wù)消息創(chuàng)建時(shí)間時(shí),根據(jù)確定的各維度數(shù)據(jù)記錄包含的特定信息,對(duì)所述各維度數(shù)據(jù)記錄的標(biāo)記信息進(jìn)行更新,具體可以包括:根據(jù)確定的各維度數(shù)據(jù)記錄包含的業(yè)務(wù)消息創(chuàng)建時(shí)間,在所述各維度數(shù)據(jù)記錄中,將業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄的標(biāo)記信息更新為第一值,以及將其他維度數(shù)據(jù)記錄的標(biāo)記信息更新為第二值,其中,所述第一值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄反映所述業(yè)務(wù)的最新?tīng)顟B(tài),所述第二值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄不反映所述業(yè)務(wù)的最新?tīng)顟B(tài)。

通過(guò)上一段中的方案,由于是基于業(yè)務(wù)消息創(chuàng)建時(shí)間對(duì)標(biāo)記信息進(jìn)行更新的,因此,即使業(yè)務(wù)消息亂序,各標(biāo)記信息仍能夠被正確地更新,各更新后的 標(biāo)記信息能夠正確地表示對(duì)應(yīng)的維度數(shù)據(jù)記錄是否反映業(yè)務(wù)的最新?tīng)顟B(tài)。在實(shí)際應(yīng)用中,上一段中的更新操作可以是在一條update語(yǔ)句中實(shí)現(xiàn)的,這樣的話,這條update語(yǔ)句內(nèi)的各操作可以由數(shù)據(jù)庫(kù)底層事務(wù)保證原子性,也即,要么各操作全部操作成功,要么各操作全部操作失敗,從而可以防止各標(biāo)記信息更新錯(cuò)誤。

對(duì)于業(yè)務(wù)消息可能亂序且可能并發(fā)的場(chǎng)景,說(shuō)明如下:

在實(shí)際應(yīng)用中,業(yè)務(wù)消息不僅可能亂序,而且可能并發(fā)。所述并發(fā)可以指:服務(wù)器在同一時(shí)間或在較短的時(shí)間間隔內(nèi),接收到同一筆業(yè)務(wù)的至少兩條業(yè)務(wù)消息,從而導(dǎo)致服務(wù)器分別針對(duì)至少兩條業(yè)務(wù)消息中的每條業(yè)務(wù)消息的、維度數(shù)據(jù)處理過(guò)程可能會(huì)并行執(zhí)行。在這種場(chǎng)景下,并行執(zhí)行維度數(shù)據(jù)處理過(guò)程可能會(huì)發(fā)生沖突,進(jìn)而導(dǎo)致對(duì)標(biāo)記信息更新錯(cuò)誤。

基于事務(wù)可以解決這種場(chǎng)景下的問(wèn)題,所述事務(wù)是數(shù)據(jù)庫(kù)事務(wù)。下面進(jìn)行對(duì)本申請(qǐng)針對(duì)這種場(chǎng)景的應(yīng)對(duì)方案進(jìn)行具體說(shuō)明。

可以在同一個(gè)事務(wù)中執(zhí)行步驟s102和步驟s103。則根據(jù)所述業(yè)務(wù)消息,向數(shù)據(jù)表中插入所述業(yè)務(wù)的變更后狀態(tài)的維度數(shù)據(jù)記錄,根據(jù)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表,對(duì)數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄的標(biāo)記信息進(jìn)行更新,具體可以包括:

根據(jù)所述業(yè)務(wù)消息,創(chuàng)建并執(zhí)行事務(wù),所述事務(wù)中包含的各步驟是按照如下順序執(zhí)行的:

向數(shù)據(jù)表中插入所述業(yè)務(wù)的變更后狀態(tài)的維度數(shù)據(jù)記錄;

針對(duì)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄,將包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄的標(biāo)記信息更新為第一值,所述第一值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄反映業(yè)務(wù)的最新?tīng)顟B(tài);

針對(duì)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄,將除了包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄以外的、其他維度數(shù)據(jù)記錄的標(biāo)記信息更新為第二值,所述第二值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄 不反映業(yè)務(wù)的最新?tīng)顟B(tài)。

對(duì)該事務(wù)進(jìn)一步地說(shuō)明進(jìn)行分析??梢钥吹?,該事務(wù)中一共包含三個(gè)步驟,在具體實(shí)施時(shí),每個(gè)步驟可以用一條或多條sql語(yǔ)句實(shí)現(xiàn)。下面以在實(shí)際應(yīng)用場(chǎng)景下,一些可以用于實(shí)現(xiàn)該事務(wù)的sql語(yǔ)句作為示例進(jìn)行說(shuō)明。

對(duì)于該事務(wù)中的第一個(gè)步驟,可以根據(jù)業(yè)務(wù)消息,提取出要對(duì)維度的各屬性進(jìn)行賦值的屬性值,進(jìn)而將提取出的各屬性值構(gòu)成一條新的維度數(shù)據(jù)記錄,并用insert語(yǔ)句將該維度數(shù)據(jù)記錄插入數(shù)據(jù)表中。

為了便于理解,沿用上例的電子訂單業(yè)務(wù),對(duì)該事務(wù)中的第二個(gè)步驟和第三個(gè)步驟進(jìn)行說(shuō)明。

對(duì)于第二個(gè)步驟,可以采用以下sql語(yǔ)句(稱為語(yǔ)句1)實(shí)現(xiàn):

“updatetag=1fromxxxorderbybiz_timedescwherebiz_order_no=訂單號(hào)limit1”;

tag字段即為維度數(shù)據(jù)記錄的標(biāo)記信息,“xxx”為數(shù)據(jù)表的名稱,biz_time字段為用于記錄業(yè)務(wù)消息創(chuàng)建時(shí)間的字段,biz_order_no字段為記錄訂單號(hào)的字段。

語(yǔ)句1中的訂單號(hào)具體為接收到的業(yè)務(wù)消息所屬業(yè)務(wù)的訂單號(hào)。語(yǔ)句1的功能是指示數(shù)據(jù)庫(kù)進(jìn)行以下操作:將該筆業(yè)務(wù)的各維度數(shù)據(jù)記錄全部篩選出來(lái),并按照維度數(shù)據(jù)記錄所記錄的業(yè)務(wù)消息創(chuàng)建時(shí)間降序排列,將排在最前面的一條維度數(shù)據(jù)記錄的標(biāo)記信息修改為第一值。

對(duì)于第三個(gè)步驟,可以采用以下sql語(yǔ)句(稱為語(yǔ)句2)實(shí)現(xiàn):

“updatetag=0fromxxxorderbybiz_timedescwherebiz_order_no=訂單號(hào)limit3offset1”;

語(yǔ)句2中的“3”表示該筆業(yè)務(wù)最多只有3種狀態(tài);語(yǔ)句2中的訂單號(hào)具體為接收到的業(yè)務(wù)消息所屬業(yè)務(wù)的訂單號(hào)。語(yǔ)句1的功能是指示數(shù)據(jù)庫(kù)進(jìn)行以下操作:將該筆業(yè)務(wù)的各維度數(shù)據(jù)記錄全部篩選出來(lái),并按照維度數(shù)據(jù)記錄所記錄的業(yè)務(wù)消息創(chuàng)建時(shí)間降序排列,對(duì)于排在最前面的三條維度數(shù)據(jù)記錄,將 除了排在最前面的一條維度數(shù)據(jù)記錄以外的另外兩條維度數(shù)據(jù)記錄的標(biāo)記信息修改為第一值。

通過(guò)上面的事務(wù),是基于業(yè)務(wù)消息創(chuàng)建時(shí)間對(duì)標(biāo)記信息進(jìn)行更新的,通過(guò)事務(wù)保證了每條維度數(shù)據(jù)記錄對(duì)應(yīng)的處理步驟都能夠完整執(zhí)行,而且是先將包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄的標(biāo)記信息更新為第一值,再將除了包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄以外的、其他維度數(shù)據(jù)記錄的標(biāo)記信息更新為第二值,因此,即使發(fā)生了業(yè)務(wù)消息亂序和/或并行的情況,仍然可以保證對(duì)于業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄,該維度數(shù)據(jù)記錄的標(biāo)記信息會(huì)被正確地更新至第一值。且可以保證在任意時(shí)間中,對(duì)于該筆業(yè)務(wù)的任一維度,有且只有一條屬于該筆業(yè)務(wù)的該維度的、維度數(shù)據(jù)記錄的標(biāo)記信息處于第一值。

例如,假定在一段時(shí)間內(nèi)并行接收到兩條用于更新業(yè)務(wù)的狀態(tài)的業(yè)務(wù)消息,分別為業(yè)務(wù)消息a、業(yè)務(wù)消息b,且按照業(yè)務(wù)邏輯順序,業(yè)務(wù)消息a早于業(yè)務(wù)消息b創(chuàng)建,顯然,根據(jù)業(yè)務(wù)消息b要插入的維度數(shù)據(jù)記錄應(yīng)當(dāng)是反映業(yè)務(wù)的最新?tīng)顟B(tài)的。

則根據(jù)本申請(qǐng)的方案,基于業(yè)務(wù)消息a要?jiǎng)?chuàng)建并執(zhí)行事務(wù)a(包含上述三個(gè)步驟,假定插入維度數(shù)據(jù)記錄1),針對(duì)業(yè)務(wù)消息b要?jiǎng)?chuàng)建并執(zhí)行事務(wù)b(也包含上述三個(gè)步驟,假定要插入維度數(shù)據(jù)記錄2)?;谑聞?wù)的特性,事務(wù)a中的三個(gè)步驟會(huì)按照順序執(zhí)行,事務(wù)b中的三個(gè)步驟也會(huì)按照順序執(zhí)行,在并行場(chǎng)景下,事務(wù)a中的三個(gè)步驟與事務(wù)b中的三個(gè)步驟相互之間的執(zhí)行順序則是不確定的,但是無(wú)論是哪種執(zhí)行順序,在事務(wù)a和事務(wù)b均執(zhí)行完成時(shí),維度數(shù)據(jù)記錄2的標(biāo)記信息已被更新為第一值,而維度數(shù)據(jù)記錄1已被更新為第二值,此時(shí)的更新結(jié)果是正確的、符合事實(shí)的。

需要說(shuō)明的是,以上的各sql語(yǔ)句都是在實(shí)施本申請(qǐng)的方案時(shí)使用的sql語(yǔ)句的示例,并不構(gòu)成對(duì)本申請(qǐng)的限定。在實(shí)際應(yīng)用中,對(duì)于不同的業(yè)務(wù),上述sql語(yǔ)句中的參數(shù)也可能不同。

以上為本申請(qǐng)實(shí)施例提供的維度數(shù)據(jù)處理方法,基于同樣的思路,本申請(qǐng)實(shí)施例還提供了另一種維度數(shù)據(jù)處理方法,如圖2所示,所述另一種維度數(shù)據(jù)處理方法是:用于應(yīng)對(duì)業(yè)務(wù)消息可能亂序且可能并發(fā)的場(chǎng)景的完整方案。

圖2為本申請(qǐng)實(shí)施例提供的另一種維度數(shù)據(jù)處理方法的過(guò)程,該過(guò)程的執(zhí)行主體可以是終端或服務(wù)器。

圖2中的過(guò)程具體可以包括以下步驟:

s201:接收用于變更業(yè)務(wù)的狀態(tài)的業(yè)務(wù)消息。

s202:根據(jù)所述業(yè)務(wù)消息,創(chuàng)建并執(zhí)行事務(wù),其中,所述事務(wù)中包含的各步驟是按照如下順序執(zhí)行的(共s202a~s202c三個(gè)步驟):

s202a:根據(jù)所述業(yè)務(wù)消息,向數(shù)據(jù)表中插入所述業(yè)務(wù)的變更后狀態(tài)的維度數(shù)據(jù)記錄,所述維度數(shù)據(jù)記錄具有與之對(duì)應(yīng)的標(biāo)記信息,所述數(shù)據(jù)表用于保存所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄;

s202b:針對(duì)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄,將包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄的標(biāo)記信息更新為第一值,所述第一值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄反映所述業(yè)務(wù)的最新?tīng)顟B(tài);

s202c:針對(duì)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄,將除了包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄以外的、其他維度數(shù)據(jù)記錄的標(biāo)記信息更新為第二值,所述第二值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄不反映所述業(yè)務(wù)的最新?tīng)顟B(tài)。

通過(guò)圖2中的方法,不僅可以實(shí)現(xiàn)圖1中的方法的效果,還可以解決在業(yè)務(wù)消息亂序或并發(fā)的場(chǎng)景下,可能導(dǎo)致對(duì)標(biāo)記信息更新錯(cuò)誤的問(wèn)題。

以上為本申請(qǐng)實(shí)施例提供的維度數(shù)據(jù)處理方法,基于同樣的思路,本申請(qǐng)實(shí)施例還提供相應(yīng)的維度數(shù)據(jù)處理裝置,如圖3、圖4所示。

圖3為本申請(qǐng)實(shí)施例提供的對(duì)應(yīng)于圖1的維度數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖,具體包括:

接收模塊301,用于接收用于變更業(yè)務(wù)的狀態(tài)的業(yè)務(wù)消息;

變更模塊302,用于根據(jù)所述業(yè)務(wù)消息,向數(shù)據(jù)表中插入所述業(yè)務(wù)的變更后狀態(tài)的維度數(shù)據(jù)記錄,所述維度數(shù)據(jù)記錄具有與之對(duì)應(yīng)的標(biāo)記信息,所述數(shù)據(jù)表用于保存所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄;

更新模塊303,用于根據(jù)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表,對(duì)數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄的標(biāo)記信息進(jìn)行更新;

其中,所述標(biāo)記信息用于表示與之對(duì)應(yīng)的維度數(shù)據(jù)記錄是否反映所述業(yè)務(wù)的最新?tīng)顟B(tài)。

通過(guò)圖3中的裝置,在緩慢變化維的變化過(guò)程中,同一張數(shù)據(jù)表不僅可以保存最新維度數(shù)據(jù)記錄,而且可以保存各歷史維度數(shù)據(jù)記錄,從而解決了現(xiàn)有技術(shù)中的問(wèn)題。此外,在本申請(qǐng)的技術(shù)方案中,還存在基于維度數(shù)據(jù)記錄的標(biāo)記信息,通過(guò)該標(biāo)記信息可以區(qū)分歷史維度數(shù)據(jù)記錄和最新維度數(shù)據(jù)記錄,從而有利于分析緩慢變化維的變化過(guò)程。

可選地,所述維度數(shù)據(jù)記錄的標(biāo)記信息通過(guò)所述維度數(shù)據(jù)記錄的預(yù)定字段進(jìn)行保存。

可選地,所述維度數(shù)據(jù)記錄包含有特定信息,所述特定信息反映所述維度數(shù)據(jù)記錄對(duì)應(yīng)的業(yè)務(wù)消息在各業(yè)務(wù)消息中的邏輯順序;

可選地,所述更新模塊303具體用于:根據(jù)所述業(yè)務(wù)的標(biāo)識(shí)和插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表,確定數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄;根據(jù)確定的各維度數(shù)據(jù)記錄包含的特定信息,對(duì)所述各維度數(shù)據(jù)記錄的標(biāo)記信息進(jìn)行更新。

可選地,所述特定信息包括業(yè)務(wù)消息創(chuàng)建時(shí)間;

可選地,所述更新模塊303具體用于:根據(jù)確定的各維度數(shù)據(jù)記錄包含的業(yè)務(wù)消息創(chuàng)建時(shí)間,在所述各維度數(shù)據(jù)記錄中,將業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄的標(biāo)記信息更新為第一值,以及將其他維度數(shù)據(jù)記錄的標(biāo)記信息更新為第二值,其中,所述第一值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄反映所述業(yè)務(wù)的最新 狀態(tài),所述第二值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄不反映所述業(yè)務(wù)的最新?tīng)顟B(tài)。

可選地,所述變更模塊302和所述更新模塊303具體用于:根據(jù)所述業(yè)務(wù)消息,創(chuàng)建并執(zhí)行事務(wù),所述事務(wù)中包含的各步驟是按照如下順序執(zhí)行的:

向數(shù)據(jù)表中插入所述業(yè)務(wù)的變更后狀態(tài)的維度數(shù)據(jù)記錄;

針對(duì)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄,將包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄的標(biāo)記信息更新為第一值,所述第一值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄反映業(yè)務(wù)的最新?tīng)顟B(tài);

針對(duì)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄,將除了包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄以外的、其他維度數(shù)據(jù)記錄的標(biāo)記信息更新為第二值,所述第二值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄不反映業(yè)務(wù)的最新?tīng)顟B(tài)。

通過(guò)圖3的裝置,還可以解決在業(yè)務(wù)消息亂序和/或并發(fā)的場(chǎng)景下,可能導(dǎo)致對(duì)標(biāo)記信息更新錯(cuò)誤的問(wèn)題。

具體的上述如圖3所示的裝置可以位于終端、服務(wù)器上。

圖4為本申請(qǐng)實(shí)施例提供的對(duì)應(yīng)于圖2的維度數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖,具體包括:

接收模塊401,用于接收用于變更業(yè)務(wù)的狀態(tài)的業(yè)務(wù)消息;

處理模塊402,用于根據(jù)所述業(yè)務(wù)消息,創(chuàng)建并執(zhí)行事務(wù),其中,所述事務(wù)中包含的各步驟是按照如下順序執(zhí)行的:

根據(jù)所述業(yè)務(wù)消息,向數(shù)據(jù)表中插入所述業(yè)務(wù)的變更后狀態(tài)的維度數(shù)據(jù)記錄,所述維度數(shù)據(jù)記錄具有與之對(duì)應(yīng)的標(biāo)記信息,所述數(shù)據(jù)表用于保存所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄;

針對(duì)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度數(shù)據(jù)記錄,將包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄的標(biāo)記信息更新為第一值,所述第一值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄反映所述業(yè)務(wù)的最新?tīng)顟B(tài);

針對(duì)插入維度數(shù)據(jù)記錄后的數(shù)據(jù)表中已保存的所述業(yè)務(wù)的各狀態(tài)的維度 數(shù)據(jù)記錄,將除了包含的業(yè)務(wù)消息創(chuàng)建時(shí)間最新的維度數(shù)據(jù)記錄以外的、其他維度數(shù)據(jù)記錄的標(biāo)記信息更新為第二值,所述第二值表示對(duì)應(yīng)的維度數(shù)據(jù)記錄不反映所述業(yè)務(wù)的最新?tīng)顟B(tài)。

通過(guò)圖4中的裝置,可以實(shí)現(xiàn)圖3中的裝置的效果,主要解決了在業(yè)務(wù)消息亂序和/或并發(fā)的場(chǎng)景下,可能導(dǎo)致對(duì)標(biāo)記信息更新錯(cuò)誤的問(wèn)題。

具體的上述如圖4所示的裝置可以位于終端、服務(wù)器上。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。

內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。

計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、其他類(lèi)型的隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤(pán)只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(pán)(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤(pán)存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號(hào)和載波。

還需要說(shuō)明的是,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、商品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、商品或者設(shè)備中還存在另外的相同要素。

以上所述僅為本申請(qǐng)的實(shí)施例而已,并不用于限制本申請(qǐng)。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),本申請(qǐng)可以有各種更改和變化。凡在本申請(qǐng)的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的權(quán)利要求范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
牙克石市| 区。| 清河县| 白沙| 左贡县| 伊吾县| 洛阳市| 河东区| 鄯善县| 神池县| 汾阳市| 丰镇市| 天台县| 咸丰县| 静安区| 五莲县| 江源县| 抚州市| 涿州市| 福清市| 盈江县| 砀山县| 县级市| 阿拉善盟| 西林县| 新乐市| 陇川县| 大足县| 四子王旗| 蛟河市| 新建县| 孟津县| 余庆县| 文山县| 千阳县| 松潘县| 长乐市| 阳山县| 新竹县| 江阴市| 鄯善县|