本申請涉及數(shù)據(jù)檢測技術(shù)領(lǐng)域,具體涉及一種庫存異常數(shù)據(jù)的檢測方法、裝置及電子設(shè)備。
背景技術(shù):
在大型電子商務(wù)網(wǎng)站運(yùn)行過程中,網(wǎng)站記錄的商品庫存數(shù)據(jù)與商品實(shí)際庫存量不一致是一個較為常見的問題,即:網(wǎng)站的商品庫存數(shù)據(jù)不準(zhǔn)確。庫存數(shù)據(jù)不準(zhǔn)確不僅會對平臺業(yè)務(wù)產(chǎn)生極大的影響,同時(shí)也將損害其它各方的利益。對于一個包括海量商品的電子商務(wù)網(wǎng)站,需要實(shí)時(shí)準(zhǔn)確地監(jiān)控不準(zhǔn)確的商品庫存數(shù)據(jù),智能的分析問題的產(chǎn)生原因,對不準(zhǔn)確的商品庫存數(shù)據(jù)有總的認(rèn)識和詳細(xì)原因的分析,以便做到從容應(yīng)對。
導(dǎo)致商品庫存數(shù)據(jù)不準(zhǔn)確的關(guān)鍵因素包括業(yè)務(wù)因素和平臺技術(shù)因素。其中業(yè)務(wù)因素包括商家對商品庫存數(shù)據(jù)的錯誤設(shè)置等,平臺技術(shù)因素包括技術(shù)原因?qū)е碌纳唐方灰走^程中庫存扣減不準(zhǔn)確等。相對于業(yè)務(wù)因素而言,平臺技術(shù)因素是導(dǎo)致商品庫存數(shù)據(jù)不準(zhǔn)確的主要原因,例如,對訂單操作后應(yīng)該扣庫存卻沒有扣庫存,或者應(yīng)該回補(bǔ)庫存卻沒有回補(bǔ)庫存等。由于電子商務(wù)平臺通常涉及多個復(fù)雜系統(tǒng)(交易系統(tǒng)和庫存管理系統(tǒng)等),因此要實(shí)時(shí)監(jiān)控庫存異常情況,尤其是針對有海量商品的系統(tǒng),復(fù)雜性不言而喻。
最常見的情況是商品庫存數(shù)據(jù)大于商品實(shí)際庫存量,這種錯誤的庫存數(shù)據(jù)將導(dǎo)致電子商務(wù)網(wǎng)站最終出現(xiàn)商品超賣的問題。商品超賣是商品庫存數(shù)據(jù)不準(zhǔn)確產(chǎn)生的最嚴(yán)重問題,同時(shí)也是賣家最容易發(fā)現(xiàn)的問題。賣家發(fā)現(xiàn)商品超賣后,首先將超賣情況反饋給網(wǎng)站,然后網(wǎng)站技術(shù)人員介入排查,這種處理方式是解決商品超賣問題的最原始方法。該方法存在的缺點(diǎn)是:只有在真正發(fā)生商品超賣后,才能發(fā)現(xiàn)系統(tǒng)存在這樣的問題,而不能預(yù)見商品具有超賣風(fēng)險(xiǎn)。為了解決這個問題,現(xiàn)有技術(shù)通過利用Hadoop集群進(jìn)行離線計(jì)算,以發(fā)現(xiàn)系統(tǒng)是否存在商品超賣風(fēng)險(xiǎn)。然而,該方法同樣存在一些缺點(diǎn),即:離線計(jì)算的非實(shí)時(shí)性不能滿足實(shí)際需求。
為了能夠?qū)崟r(shí)地檢測庫存異常,目前通常采用在線實(shí)時(shí)監(jiān)控的方法檢測已 經(jīng)發(fā)生超賣情況的商品庫存數(shù)據(jù)。該方法是以某個時(shí)間點(diǎn)的商品庫存數(shù)據(jù)作為基準(zhǔn)庫存數(shù)據(jù)(一般取零點(diǎn)時(shí)刻的庫存,故也叫零點(diǎn)庫存),將基準(zhǔn)庫存數(shù)據(jù)與該時(shí)間點(diǎn)后預(yù)設(shè)時(shí)間間隔內(nèi)的庫存變化累計(jì)值進(jìn)行比較,當(dāng)發(fā)現(xiàn)基準(zhǔn)庫存數(shù)據(jù)小于庫存變化累計(jì)值時(shí),判定系統(tǒng)發(fā)生商品超賣問題。
由于上述在線實(shí)時(shí)監(jiān)控的檢測方法是基于一段時(shí)間的庫存變化累計(jì)值來檢測是否存在超賣風(fēng)險(xiǎn)的,因此,如果基準(zhǔn)庫存數(shù)據(jù)很大,則可能需要經(jīng)歷較長的時(shí)間間隔,才能夠檢測到基準(zhǔn)庫存數(shù)據(jù)小于庫存變化累計(jì)值。可見,該方法并沒有真正達(dá)到實(shí)時(shí)檢測庫存異常的效果,即:無法在每產(chǎn)生一個異常的庫存變更數(shù)據(jù)時(shí)就將其檢測出來。
技術(shù)實(shí)現(xiàn)要素:
本申請?zhí)峁┮环N庫存異常數(shù)據(jù)的檢測方法、裝置及電子設(shè)備,以解決現(xiàn)有技術(shù)存在無法實(shí)時(shí)檢測到每一個異常的庫存變更數(shù)據(jù)的問題。
本申請?zhí)峁┮环N庫存異常數(shù)據(jù)的檢測方法,包括:
獲取待檢測訂單的新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù);
根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù)和所述待檢測訂單應(yīng)用的庫存扣減模式,檢測所述新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù)。
可選的,所述根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù)和所述待檢測訂單應(yīng)用的庫存扣減模式,檢測所述新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù),包括:
根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),獲取所述待檢測訂單的當(dāng)前交易狀態(tài);
根據(jù)所述當(dāng)前交易狀態(tài)和所述待檢測訂單應(yīng)用的庫存扣減模式,計(jì)算所述新增庫存變更數(shù)據(jù)的預(yù)期值;
判斷所述新增庫存變更數(shù)據(jù)和所述預(yù)期值是否相同;
若是,則判定所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù);
若否,則判定所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)。
可選的,所述根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù)和所述待檢測訂單應(yīng)用的庫存扣減模式,檢測所述新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù),包括:
根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),獲取所述待檢測訂單的當(dāng)前交易狀態(tài);
根據(jù)所述待檢測訂單應(yīng)用的庫存扣減模式和所述新增庫存變更數(shù)據(jù),生成 所述待檢測訂單的預(yù)期交易狀態(tài);
判斷所述待檢測訂單的當(dāng)前交易狀態(tài)和所述預(yù)期交易狀態(tài)是否相同;
若是,則判定所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù);
若否,則判定所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)。
可選的,所述根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù)和所述待檢測訂單應(yīng)用的庫存扣減模式,檢測所述新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù),包括:
根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),獲取所述待檢測訂單的當(dāng)前交易狀態(tài);
根據(jù)所述當(dāng)前交易狀態(tài)和所述待檢測訂單應(yīng)用的庫存扣減模式,計(jì)算所述新增庫存變更數(shù)據(jù)的預(yù)期值;以及根據(jù)所述待檢測訂單應(yīng)用的庫存扣減模式和所述新增庫存變更數(shù)據(jù),生成所述待檢測訂單的預(yù)期交易狀態(tài);
判斷所述新增庫存變更數(shù)據(jù)和所述預(yù)期值是否相同,以及所述待檢測訂單的當(dāng)前交易狀態(tài)和所述預(yù)期交易狀態(tài)是否相同;
若是,則判定所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù);
若否,則判定所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)。
可選的,如果檢測到所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù),還包括:
存儲所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)的檢測結(jié)果。
可選的,還包括:
將所述待檢測訂單標(biāo)記為庫存更新異常的訂單。
可選的,如果檢測到所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù),還包括:
判斷所述待檢測訂單是否被標(biāo)記為所述庫存更新異常的訂單;
若是,則刪除所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)的檢測結(jié)果。
可選的,所述獲取待檢測訂單的新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù),采用如下方式:
根據(jù)所述待檢測訂單的訂單號,獲取所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)。
可選的,還包括:
獲取預(yù)先存儲的生成所述新增庫存變更數(shù)據(jù)時(shí)的異常處理結(jié)果;所述異常處理結(jié)果存儲在所述新增交易狀態(tài)變更數(shù)據(jù)或所述新增庫存變更數(shù)據(jù)中;
將所述異常處理結(jié)果作為所述異常的庫存變更數(shù)據(jù)的異常原因。
可選的,所述處理結(jié)果存儲在所述新增交易狀態(tài)變更數(shù)據(jù)中;在將所述異常處理結(jié)果存儲在所述新增交易狀態(tài)變更數(shù)據(jù)中之前,還包括:
通過庫存管理系統(tǒng)提供的庫存接口,獲取所述異常處理結(jié)果。
可選的,當(dāng)監(jiān)聽到對應(yīng)所述待檢測訂單的庫存異常檢測通知時(shí),執(zhí)行所述庫存異常數(shù)據(jù)的檢測方法。
可選的,所述庫存異常數(shù)據(jù)的檢測方法運(yùn)行在基于實(shí)時(shí)分布式的計(jì)算處理框架構(gòu)建的異常數(shù)據(jù)檢測平臺中。
可選的,所述庫存異常檢測通知,采用如下步驟生成:
通過增量數(shù)據(jù)實(shí)時(shí)同步裝置,將所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)同步到所述異常數(shù)據(jù)檢測平臺;
在所述異常數(shù)據(jù)檢測平臺接收到所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)的至少一者后,若預(yù)設(shè)的發(fā)送庫存異常檢測通知條件成立,則發(fā)送對應(yīng)所述新增交易狀態(tài)變更數(shù)據(jù)或所述新增庫存變更數(shù)據(jù)所屬的訂單的庫存異常檢測通知。
可選的,所述預(yù)設(shè)的發(fā)送庫存異常檢測通知條件包括:當(dāng)前時(shí)間與接收到所述新增交易狀態(tài)變更數(shù)據(jù)或所述新增庫存變更數(shù)據(jù)的時(shí)間間隔達(dá)到預(yù)設(shè)的時(shí)間間隔,或者待檢測訂單所占用的內(nèi)存空間達(dá)到預(yù)設(shè)的內(nèi)存空間。
可選的,在所述將所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)同步到所述異常數(shù)據(jù)檢測平臺之后,還包括:
根據(jù)預(yù)設(shè)的數(shù)據(jù)規(guī)范化規(guī)則,對所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)進(jìn)行數(shù)據(jù)規(guī)則化處理。
相應(yīng)的,本申請還提供一種庫存異常數(shù)據(jù)的檢測裝置,包括:
第一獲取單元,用于獲取待檢測訂單的新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù);
檢測單元,用于根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù)和所述待檢測訂單應(yīng)用的庫存扣減模式,檢測所述新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù)。
可選的,所述檢測單元包括:
獲取子單元,用于根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),獲取所述待檢測訂單的當(dāng)前交易狀態(tài);
計(jì)算子單元,用于根據(jù)所述當(dāng)前交易狀態(tài)和所述待檢測訂單應(yīng)用的庫存扣減模式,計(jì)算所述新增庫存變更數(shù)據(jù)的預(yù)期值;
判斷子單元,用于判斷所述新增庫存變更數(shù)據(jù)和所述預(yù)期值是否相同;
判定正常子單元,用于如果上述判斷結(jié)果為是,則判定所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù);
判定異常子單元,用于如果上述判斷結(jié)果為否,則判定所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)。
可選的,所述檢測單元包括:
獲取子單元,用于根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),獲取所述待檢測訂單的當(dāng)前交易狀態(tài);
計(jì)算子單元,用于根據(jù)所述待檢測訂單應(yīng)用的庫存扣減模式和所述新增庫存變更數(shù)據(jù),生成所述待檢測訂單的預(yù)期交易狀態(tài);
判斷子單元,用于判斷所述待檢測訂單的當(dāng)前交易狀態(tài)和所述預(yù)期交易狀態(tài)是否相同;
判定正常子單元,用于如果上述判斷結(jié)果為是,則判定所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù);
判定異常子單元,用于如果上述判斷結(jié)果為否,則判定所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)。
可選的,所述檢測單元包括:
獲取子單元,用于根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),獲取所述待檢測訂單的當(dāng)前交易狀態(tài);
計(jì)算子單元,用于根據(jù)所述當(dāng)前交易狀態(tài)和所述待檢測訂單應(yīng)用的庫存扣減模式,計(jì)算所述新增庫存變更數(shù)據(jù)的預(yù)期值;以及根據(jù)所述待檢測訂單應(yīng)用的庫存扣減模式和所述新增庫存變更數(shù)據(jù),生成所述待檢測訂單的預(yù)期交易狀態(tài);
判斷子單元,用于判斷所述新增庫存變更數(shù)據(jù)和所述預(yù)期值是否相同,以 及所述待檢測訂單的當(dāng)前交易狀態(tài)和所述預(yù)期交易狀態(tài)是否相同;
判定正常子單元,用于如果上述判斷結(jié)果為是,則判定所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù);
判定異常子單元,用于如果上述判斷結(jié)果為否,則判定所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)。
可選的,如果檢測到所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù),還包括:
存儲結(jié)果單元,用于存儲所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)的檢測結(jié)果。
可選的,還包括:
標(biāo)記單元,用于將所述待檢測訂單標(biāo)記為庫存更新異常的訂單。
可選的,如果檢測到所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù),還包括:
判斷單元,用于判斷所述待檢測訂單是否被標(biāo)記為所述庫存更新異常的訂單;
刪除單元,用于如果上述判斷結(jié)果為是,則刪除所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)的檢測結(jié)果。
可選的,還包括:
第二獲取單元,用于獲取預(yù)先存儲的生成所述新增庫存變更數(shù)據(jù)時(shí)的異常處理結(jié)果;所述異常處理結(jié)果存儲在所述新增交易狀態(tài)變更數(shù)據(jù)或所述新增庫存變更數(shù)據(jù)中;
設(shè)置單元,用于將所述異常處理結(jié)果作為所述異常的庫存變更數(shù)據(jù)的異常原因。
可選的,當(dāng)監(jiān)聽到對應(yīng)所述待檢測訂單的庫存異常檢測通知時(shí),執(zhí)行所述庫存異常數(shù)據(jù)的檢測方法。
可選的,所述庫存異常數(shù)據(jù)的檢測方法運(yùn)行在基于實(shí)時(shí)分布式的計(jì)算處理框架構(gòu)建的異常數(shù)據(jù)檢測平臺中。
可選的,還包括:
生成通知單元,用于生成所述庫存異常檢測通知。
可選的,所述生成通知單元包括:
同步子單元,用于通過增量數(shù)據(jù)實(shí)時(shí)同步裝置,將所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)同步到所述異常數(shù)據(jù)檢測平臺;
發(fā)送子單元,用于在所述異常數(shù)據(jù)檢測平臺接收到所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)的至少一者后,若預(yù)設(shè)的發(fā)送庫存異常檢測通知條件成立,則發(fā)送對應(yīng)所述新增交易狀態(tài)變更數(shù)據(jù)或所述新增庫存變更數(shù)據(jù)所屬的訂單的庫存異常檢測通知。
可選的,所述生成通知單元還包括:
數(shù)據(jù)處理子單元,用于根據(jù)預(yù)設(shè)的數(shù)據(jù)規(guī)范化規(guī)則,對所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)進(jìn)行數(shù)據(jù)規(guī)則化處理。
相應(yīng)的,本申請還提供一種電子設(shè)備,包括:
顯示器;
處理器;以及
存儲器,所述存儲器被配置成存儲庫存異常數(shù)據(jù)的檢測裝置,所述庫存異常數(shù)據(jù)的檢測裝置被所述處理器執(zhí)行時(shí),包括如下步驟:獲取待檢測訂單的新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù);根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),檢測所述新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù)。
與現(xiàn)有技術(shù)相比,本申請具有以下優(yōu)點(diǎn):
本申請?zhí)峁┑膸齑娈惓?shù)據(jù)的檢測方法、裝置及電子設(shè)備,通過獲取待檢測訂單的新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù);并根據(jù)新增交易狀態(tài)變更數(shù)據(jù)和待檢測訂單應(yīng)用的庫存扣減模式,檢測新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù),即:對每一次交易狀態(tài)變更所引起的庫存變更的正確性進(jìn)行實(shí)時(shí)的分析判斷,從而能夠達(dá)到細(xì)粒度的檢測庫存變更數(shù)據(jù),及時(shí)發(fā)現(xiàn)庫存更新過程中的問題。
附圖說明
圖1是本申請的庫存異常數(shù)據(jù)的檢測方法實(shí)施例的流程圖;
圖2是本申請的庫存異常數(shù)據(jù)的檢測方法實(shí)施例發(fā)送庫存異常檢測通知的流程圖;
圖3是本申請的庫存異常數(shù)據(jù)的檢測方法實(shí)施例異常數(shù)據(jù)檢測平臺的示意 圖;
圖4是本申請的庫存異常數(shù)據(jù)的檢測方法實(shí)施例步驟S103的一種流程圖;
圖5是本申請的庫存異常數(shù)據(jù)的檢測裝置實(shí)施例步驟S103的又一種流程圖;
圖6是本申請的庫存異常數(shù)據(jù)的檢測裝置實(shí)施例步驟S103的再一種流程圖;
圖7是本申請的庫存異常數(shù)據(jù)的檢測裝置實(shí)施例的示意圖;
圖8是本申請的庫存異常數(shù)據(jù)的檢測裝置實(shí)施例檢測單元103的具體示意圖;
圖9是本申請的庫存異常數(shù)據(jù)的檢測裝置實(shí)施例的具體示意圖;
圖10是本申請的庫存異常數(shù)據(jù)的檢測裝置實(shí)施例生成通知單元213的具體示意圖;
圖11是本申請的電子設(shè)備實(shí)施例的示意圖。
具體實(shí)施方式
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本申請。但是本申請能夠以很多不同于在此描述的其它方式來實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本申請內(nèi)涵的情況下做類似推廣,因此本申請不受下面公開的具體實(shí)施的限制。
在本申請中,提供了一種庫存異常數(shù)據(jù)的檢測方法、裝置及電子設(shè)備。在下面的實(shí)施例中逐一進(jìn)行詳細(xì)說明。
本申請?zhí)峁┑膸齑娈惓?shù)據(jù)的檢測方法的核心的基本思想是:基于訂單的交易狀態(tài)變更數(shù)據(jù)檢測相應(yīng)的庫存變更數(shù)據(jù)是否存在異常,即:細(xì)粒度的檢測庫存變更數(shù)據(jù)。由于對每一次交易狀態(tài)變更所引起的庫存變更進(jìn)行檢測,因而能夠?qū)崟r(shí)發(fā)現(xiàn)庫存更新過程中存在的問題,從而提高商品庫存數(shù)據(jù)的準(zhǔn)確性。
請參考圖1,其為本申請的庫存異常數(shù)據(jù)的檢測方法實(shí)施例的流程圖。所述方法包括如下步驟:
步驟S101:獲取待檢測訂單的新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù)。
本申請實(shí)施例所述的新增交易狀態(tài)變更數(shù)據(jù)和新增庫存變更數(shù)據(jù),二者均為屬于同一訂單的變更數(shù)據(jù),本申請實(shí)施例將這兩方面數(shù)據(jù)同屬的訂單稱為待 檢測訂單。其中,新增交易狀態(tài)變更數(shù)據(jù)是指,對訂單進(jìn)行操作時(shí)所產(chǎn)生的交易狀態(tài)變更數(shù)據(jù)。訂單操作包括:訂單生成、付款、發(fā)貨或退款操作等操作。對訂單的操作將改變訂單的交易狀態(tài),從而產(chǎn)生交易狀態(tài)變更數(shù)據(jù)。與操作相對應(yīng)的,訂單的交易狀態(tài)包括:訂單狀態(tài)、付款狀態(tài)、發(fā)貨狀態(tài)和退款狀態(tài)等。新增庫存變更數(shù)據(jù)是指,與新增交易狀態(tài)變更數(shù)據(jù)對應(yīng)的新增庫存變更數(shù)據(jù),即:對訂單進(jìn)行操作時(shí),將產(chǎn)生交易狀態(tài)變更數(shù)據(jù)和庫存變更數(shù)據(jù)兩方面數(shù)據(jù)。
例1,購物網(wǎng)站售賣一種衣服,該衣服共有200件庫存,其中紅色100件,藍(lán)色100件,且當(dāng)前商品都采用“拍下減庫存”的庫存扣減模式;當(dāng)小紅在該網(wǎng)站中拍下紅色衣服2件并且未付款時(shí),系統(tǒng)首先生成一個新訂單,假設(shè)訂單號為100000001;與此同時(shí),還將產(chǎn)生交易狀態(tài)變更數(shù)據(jù)和庫存變更數(shù)據(jù),即:新增交易狀態(tài)變更數(shù)據(jù)和新增庫存變更數(shù)據(jù);其中,交易狀態(tài)變更數(shù)據(jù)包括:訂單號=100000001、商品=紅色的衣服、訂單狀態(tài)=已生效、付款狀態(tài)=未付款、發(fā)貨狀態(tài)=未發(fā)貨、退款狀態(tài)=未退款;由于庫存扣減模式為“拍下減庫存”的模式,因此庫存變更數(shù)據(jù)包括:訂單號=100000001、商品=紅色的衣服、可售庫存的變更量=-2、可售庫存的結(jié)果=98、預(yù)扣庫存的變更量=0、預(yù)扣庫存的結(jié)果=0、占用庫存的變更量=0、占用庫存的結(jié)果=0。
例2,如果例1中的小紅在拍下商品后一直未付款,由于超時(shí)導(dǎo)致訂單被關(guān)閉,則在訂單關(guān)閉時(shí),將產(chǎn)生交易狀態(tài)變更數(shù)據(jù)和庫存變更數(shù)據(jù);其中,交易狀態(tài)變更數(shù)據(jù)包括:訂單號=100000001、商品=紅色的衣服、訂單狀態(tài)=已生效、付款狀態(tài)=訂單關(guān)閉、發(fā)貨狀態(tài)=未發(fā)貨、退款狀態(tài)=未退款;由于庫存扣減模式為“拍下減庫存”的模式,因此庫存變更數(shù)據(jù)包括:訂單號=100000001、商品=紅色的衣服、可售庫存的變更量=2、可售庫存的結(jié)果=100、預(yù)扣庫存的變更量=0、預(yù)扣庫存的結(jié)果=0、占用庫存的變更量=0、占用庫存的結(jié)果=0。
要基于交易狀態(tài)變更數(shù)據(jù)來檢測庫存變更數(shù)據(jù)是否存在異常,首先需要獲取新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù)這兩方面數(shù)據(jù)。在本實(shí)施例中,獲取待檢測訂單的新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù),采用如下方式:根據(jù)待檢測訂單的訂單號,獲取新增交易狀態(tài)變更數(shù)據(jù)和新增庫存變更數(shù)據(jù)。
當(dāng)獲取到待檢測訂單的新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù)這兩方面數(shù)據(jù)后,就可以進(jìn)入步驟S103基于交易狀態(tài)變更數(shù)據(jù)對庫存變更數(shù)據(jù)是否存在異常進(jìn)行檢測。
需要注意的是,實(shí)際應(yīng)用中的交易狀態(tài)變更數(shù)據(jù)和庫存變更數(shù)據(jù)通常來源于不同的系統(tǒng),即:交易狀態(tài)變更數(shù)據(jù)來源于交易系統(tǒng),庫存變更數(shù)據(jù)來源于庫存管理系統(tǒng)。不同系統(tǒng)的數(shù)據(jù)變更是有先后順序的,如果每一條數(shù)據(jù)變更都觸發(fā)一次本申請實(shí)施例提供的方法,那么可能因?yàn)榱硪环矫鏀?shù)據(jù)還沒到,導(dǎo)致出現(xiàn)誤判的結(jié)果。雖然此后可以在兩方面數(shù)據(jù)均獲取后再通過重新檢測糾正該錯誤判定結(jié)果,但是卻極大的降低了檢測效率??梢姡绻茉讷@取到交易狀態(tài)變更數(shù)據(jù)和庫存變更數(shù)據(jù)兩方面數(shù)據(jù)后再進(jìn)行檢測,就會提高檢測效率和系統(tǒng)性能。
為了能夠在獲取到兩方面數(shù)據(jù)后再進(jìn)行檢測,本申請實(shí)施例提供的方法是在監(jiān)聽到對應(yīng)待檢測訂單的庫存異常檢測通知時(shí)執(zhí)行的。
請參考圖2,其為本申請的庫存異常數(shù)據(jù)的檢測方法實(shí)施例發(fā)送庫存異常檢測通知的流程圖。在本實(shí)施例中,庫存異常檢測通知,可以采用如下步驟生成:
步驟S201:通過增量數(shù)據(jù)實(shí)時(shí)同步裝置,將所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)同步到所述異常數(shù)據(jù)檢測平臺。
當(dāng)對訂單進(jìn)行具體操作時(shí),可以通過增量數(shù)據(jù)實(shí)時(shí)同步裝置,將交易系統(tǒng)產(chǎn)生的新增交易狀態(tài)變更數(shù)據(jù)和庫存管理系統(tǒng)產(chǎn)生的新增庫存變更數(shù)據(jù)同步到異常數(shù)據(jù)檢測平臺中。
為了便于實(shí)現(xiàn)異常數(shù)據(jù)檢測平臺,本申請實(shí)施例基于實(shí)時(shí)分布式的計(jì)算處理框架構(gòu)建異常數(shù)據(jù)檢測平臺。請參考圖3,其為本申請的庫存異常數(shù)據(jù)的檢測方法實(shí)施例異常數(shù)據(jù)檢測平臺的示意圖。圖3中的DRC是增量數(shù)據(jù)實(shí)時(shí)同步裝置,通過DRC將交易系統(tǒng)和庫存管理系統(tǒng)的增量數(shù)據(jù)的實(shí)時(shí)同步到異常數(shù)據(jù)檢測平臺,作為tradeSpout和invSpout的數(shù)據(jù)源。檢測平臺包括tradeSpout和invSpout兩個數(shù)據(jù)源,以及etlBolt、actionBolt和checkBolt三個計(jì)算模塊。其中,tradeSpout數(shù)據(jù)源包括新增交易狀態(tài)變更數(shù)據(jù),invSpout數(shù)據(jù)源包括新增庫存變更數(shù)據(jù)。由于數(shù)據(jù)源是通過DRC接入進(jìn)來的,因此tradeSpout和invSpout的并發(fā)數(shù)與數(shù)據(jù)源的topic相關(guān),二者相互對應(yīng)。
圖3檢測平臺中的etlBolt計(jì)算模塊訂閱tradeSpout和invSpout的變更數(shù)據(jù),作為tradeSpout和invSpout數(shù)據(jù)源的下一級,etlBolt隔離了數(shù)據(jù)源物理上的數(shù)量關(guān)系,可以自由提高并發(fā)數(shù)。當(dāng)etlBolt獲取到任意一條新增數(shù)據(jù)后,將新增數(shù)據(jù)的訂單號發(fā)射出去。
優(yōu)選的,還可以通過etlBolt計(jì)算模塊對新增交易狀態(tài)變更數(shù)據(jù)和新增庫存變更數(shù)據(jù)數(shù)據(jù)進(jìn)行預(yù)處理(包括數(shù)據(jù)過濾等處理),以便能夠?qū)z測異常時(shí)真正需要的數(shù)據(jù)存儲到HBASE中間表中。
步驟S203:在所述異常數(shù)據(jù)檢測平臺接收到所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)的至少一者后,若預(yù)設(shè)的發(fā)送庫存異常檢測通知條件成立,則發(fā)送對應(yīng)所述新增交易狀態(tài)變更數(shù)據(jù)或所述新增庫存變更數(shù)據(jù)所屬的訂單的庫存異常檢測通知。
本申請實(shí)施例提供的方法是在異常數(shù)據(jù)檢測平臺接收到新增交易狀態(tài)變更數(shù)據(jù)和新增庫存變更數(shù)據(jù)的至少一者后,通過actionBolt計(jì)算模塊控制庫存異常檢測通知的發(fā)送。actionBolt計(jì)算模塊用于控制發(fā)送庫存異常檢測通知,當(dāng)預(yù)設(shè)的發(fā)送庫存異常檢測通知條件成立時(shí)將訂單號發(fā)射出去。
具體的,預(yù)設(shè)的發(fā)送庫存異常檢測通知條件包括:當(dāng)前時(shí)間與接收到所述新增交易狀態(tài)變更數(shù)據(jù)或所述新增庫存變更數(shù)據(jù)的時(shí)間間隔達(dá)到預(yù)設(shè)的時(shí)間間隔,或者待檢測訂單所占用的內(nèi)存空間達(dá)到預(yù)設(shè)的內(nèi)存空間。其中,第一個條件是在獲取到第一條新增數(shù)據(jù)后的預(yù)設(shè)時(shí)間間隔后發(fā)送對于該新增數(shù)據(jù)所屬訂單的庫存異常檢測通知,即:假設(shè)兩方面數(shù)據(jù)的到達(dá)時(shí)間間隔應(yīng)該在預(yù)設(shè)時(shí)間間隔內(nèi);上述第二個條件是當(dāng)存儲新增數(shù)據(jù)的內(nèi)存空間達(dá)到預(yù)設(shè)內(nèi)存最大范圍時(shí),發(fā)送對于該新增數(shù)據(jù)所屬訂單的庫存異常檢測通知。
通過上述步驟S201和步驟S203,能夠控制執(zhí)行本申請?zhí)峁┑姆椒ǖ臅r(shí)機(jī)。檢測平臺中的checkBolt計(jì)算模塊訂閱actionBolt的數(shù)據(jù),當(dāng)接收到actionBolt發(fā)送的庫存異常檢測通知時(shí),根據(jù)通知中的訂單號,從HBASE里取出該訂單號的新增交易狀態(tài)變更數(shù)據(jù)和新增庫存變更數(shù)據(jù),執(zhí)行本申請實(shí)施例提供的方法,進(jìn)行庫存異常數(shù)據(jù)的檢測,如果檢測到數(shù)據(jù)異常,則將異常數(shù)據(jù)輸出到數(shù)據(jù)庫中。本申請實(shí)施例將庫存異常數(shù)據(jù)的檢測邏輯,作為異常數(shù)據(jù)檢測平臺的業(yè)務(wù)插件,通過JAR包的方式在檢測平臺上實(shí)時(shí)運(yùn)行起來,實(shí)現(xiàn)業(yè)務(wù)目標(biāo)。
本申請實(shí)施例通過現(xiàn)有的實(shí)時(shí)分布式的計(jì)算處理框架STORM和HBASE數(shù)據(jù)存儲系統(tǒng)構(gòu)建異常數(shù)據(jù)檢測平臺,不僅簡化了平臺構(gòu)建的過程,而且構(gòu)建的檢測平臺獨(dú)立于交易系統(tǒng)和庫存管理系統(tǒng),不會對交易系統(tǒng)和庫存管理系統(tǒng)產(chǎn)生負(fù)擔(dān)。
步驟S103:根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù)和所述待檢測訂單應(yīng)用的庫存 扣減模式,檢測所述新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù)。
當(dāng)獲取到待檢測訂單的新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù)后,就可以基于交易狀態(tài)變更數(shù)據(jù)來檢測庫存變更數(shù)據(jù)是否存在異常。
本申請實(shí)施例所述的庫存扣減模式是由庫存管理系統(tǒng)提供的,例如,拍下減庫存模式或付款減庫存等模式。交易系統(tǒng)根據(jù)業(yè)務(wù)需要決定采用哪一種庫存扣減模式。因此,庫存扣減模式可以存儲在交易狀態(tài)變更數(shù)據(jù)中。庫存變更數(shù)據(jù)與庫存扣減模式有關(guān),在相同的交易狀態(tài)變更數(shù)據(jù)下,如果庫存扣減模式不同,則產(chǎn)生的庫存變更數(shù)據(jù)也是不同的。本申請實(shí)施例提供的方法是基于已知庫存扣減模式的大前提,根據(jù)新增交易狀態(tài)變更數(shù)據(jù)檢測新增庫存變更數(shù)據(jù)是否異常。
在實(shí)際應(yīng)用中,可以采用多種檢測方案檢測新增庫存變更數(shù)據(jù)是否異常。下面給出步驟S103的三種可選的實(shí)施方案:
1)方案一
方案一的基本思想是實(shí)現(xiàn)從交易狀態(tài)變更數(shù)據(jù)到庫存變更數(shù)據(jù)的檢測,即:將庫存變更數(shù)據(jù)的實(shí)際值和預(yù)期值進(jìn)行比較。請參考圖4,其為本申請的庫存異常數(shù)據(jù)的檢測方法實(shí)施例步驟S103的一種流程圖。方案一的步驟S103包括:
步驟S1031:根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),獲取所述待檢測訂單的當(dāng)前交易狀態(tài)。
方案一首先需要從新增交易狀態(tài)變更數(shù)據(jù)中獲取待檢測訂單的當(dāng)前交易狀態(tài)。以步驟S101中的例1對當(dāng)前交易狀態(tài)進(jìn)行說明,該例中新增交易狀態(tài)變更數(shù)據(jù)包括:訂單號=100000001、商品=紅色的衣服、訂單狀態(tài)=已生效、付款狀態(tài)=未付款、發(fā)貨狀態(tài)=未發(fā)貨、退款狀態(tài)=未退款,其中當(dāng)前交易狀態(tài)為:訂單狀態(tài)=已生效、付款狀態(tài)=未付款、發(fā)貨狀態(tài)=未發(fā)貨、退款狀態(tài)=未退款。
步驟S1033:根據(jù)所述當(dāng)前交易狀態(tài)和所述待檢測訂單應(yīng)用的庫存扣減模式,計(jì)算所述新增庫存變更數(shù)據(jù)的預(yù)期值。
根據(jù)當(dāng)前交易狀態(tài)和待檢測訂單應(yīng)用的庫存扣減模式,能夠計(jì)算出新增庫存變更數(shù)據(jù)的預(yù)期值。繼續(xù)以步驟S101中的例1對本步驟進(jìn)行說明,由于當(dāng)前商品都采用“拍下減庫存”的庫存扣減模式,并且當(dāng)前交易狀態(tài)為:訂單狀態(tài)=已生效、付款狀態(tài)=未付款、發(fā)貨狀態(tài)=未發(fā)貨、退款狀態(tài)=未退款,因此庫存變更數(shù)據(jù)的預(yù)期值應(yīng)該為:訂單號=100000001、商品=紅色的衣服、可售庫存的變 更量=-2、可售庫存的結(jié)果=98、預(yù)扣庫存的變更量=0、預(yù)扣庫存的結(jié)果=0、占用庫存的變更量=0、占用庫存的結(jié)果=0。
在實(shí)際應(yīng)用中,可以根據(jù)具體的應(yīng)用需求,設(shè)置庫存變更數(shù)據(jù)預(yù)期值的計(jì)算規(guī)則,以“拍下減庫存”的庫存扣減模式為例,可應(yīng)用的計(jì)算規(guī)則包括:1)當(dāng)訂單狀態(tài)是未生效狀態(tài)時(shí),如果可售庫存已減,則預(yù)期值為回補(bǔ)可售庫存;2)當(dāng)訂單狀態(tài)是生效狀態(tài)時(shí),預(yù)期值為可售庫存已減;3)當(dāng)訂單狀態(tài)是付款前關(guān)閉時(shí),如果可售庫存已減,則預(yù)期值為回補(bǔ)可售庫存。上述各種不同的計(jì)算規(guī)則,只是具體實(shí)施方式的變更,都不偏離本申請的核心,因此都在本申請的保護(hù)范圍之內(nèi)。
步驟S1035:判斷所述新增庫存變更數(shù)據(jù)和所述預(yù)期值是否相同。
將新增庫存變更數(shù)據(jù)中的實(shí)際變更數(shù)據(jù)與步驟S1033獲取的庫存變更數(shù)據(jù)的預(yù)期值進(jìn)行對比,判斷二者是否一致。
步驟S1037:若是,則判定所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù)。
如果新增庫存變更數(shù)據(jù)中的實(shí)際值與預(yù)期值相同,則能夠判定新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù)。
步驟S1039:若否,則判定所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)。
相反的,如果新增庫存變更數(shù)據(jù)中的實(shí)際值與預(yù)期值不相同,則能夠判定新增庫存變更數(shù)據(jù)為異常的庫存變更數(shù)據(jù)。
通過方案一,能夠?qū)崿F(xiàn)從交易狀態(tài)變更數(shù)據(jù)到庫存變更數(shù)據(jù)這個維度的異常庫存數(shù)據(jù)檢測。
2)方案二
與方案一相反,方案二的基本思想是實(shí)現(xiàn)從庫存變更數(shù)據(jù)到交易狀態(tài)變更數(shù)據(jù)的檢測,即:將交易變更數(shù)據(jù)的實(shí)際值和預(yù)期值進(jìn)行比較。請參考圖5,其為本申請的庫存異常數(shù)據(jù)的檢測方法實(shí)施例步驟S103的又一種流程圖。所述根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),檢測所述新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù),包括:
步驟S1031’:根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),獲取所述待檢測訂單的當(dāng)前交易狀態(tài)。
步驟S1031’與步驟S1031相同,此處不再贅述。
步驟S1033’:根據(jù)所述待檢測訂單應(yīng)用的庫存扣減模式和所述新增庫存變更數(shù)據(jù),生成所述待檢測訂單的預(yù)期交易狀態(tài)。
根據(jù)新增庫存變更數(shù)據(jù)和待檢測訂單應(yīng)用的庫存扣減模式,能夠反向推導(dǎo)出待檢測訂單的預(yù)期交易狀態(tài)。仍以步驟S101中的例1對本步驟進(jìn)行說明,由于當(dāng)前商品都采用“拍下減庫存”的庫存扣減模式,并且?guī)齑孀兏鼣?shù)據(jù)為:訂單號=100000001、商品=紅色的衣服、可售庫存的變更量=-2、可售庫存的結(jié)果=98、預(yù)扣庫存的變更量=0、預(yù)扣庫存的結(jié)果=0、占用庫存的變更量=0、占用庫存的結(jié)果=0,因此當(dāng)前交易狀態(tài)的預(yù)期值應(yīng)該為:訂單狀態(tài)=已生效、付款狀態(tài)=未付款、發(fā)貨狀態(tài)=未發(fā)貨、退款狀態(tài)=未退款。
步驟S1035’:判斷所述待檢測訂單的當(dāng)前交易狀態(tài)和所述預(yù)期交易狀態(tài)是否相同。
將新增交易狀態(tài)變更數(shù)據(jù)中的實(shí)際交易狀態(tài)與獲取到的預(yù)期交易狀態(tài)逐一進(jìn)行對比,判斷各種交易狀態(tài)的實(shí)際值與預(yù)期值是否均一致。
步驟S1037’:若是,則判定所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù)。
如果新增交易狀態(tài)變更數(shù)據(jù)中的實(shí)際值與預(yù)期值相同,則能夠判定新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù)。
步驟S1037’:若否,則判定所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)。
相反的,如果新增交易狀態(tài)變更數(shù)據(jù)中的實(shí)際值與預(yù)期值不相同,則能夠判定新增庫存變更數(shù)據(jù)為異常的庫存變更數(shù)據(jù)。
通過方案二,能夠?qū)崿F(xiàn)從庫存變更數(shù)據(jù)到交易狀態(tài)變更數(shù)據(jù)這個維度的異常庫存數(shù)據(jù)檢測。
3)方案三
方案三是將方案一與方案二相結(jié)合,實(shí)現(xiàn)從交易狀態(tài)變更數(shù)據(jù)到庫存變更數(shù)據(jù),以及從庫存變更數(shù)據(jù)到交易狀態(tài)變更數(shù)據(jù)的兩個維度的檢測。請參考圖6,其為本申請的庫存異常數(shù)據(jù)的檢測方法實(shí)施例步驟S103的再一種流程圖。所述根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),檢測所述新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù)常,包括:
步驟S1031”:根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),獲取所述待檢測訂單的當(dāng)前交易狀態(tài)。
步驟S1031”與步驟S1031相同,此處不再贅述。
步驟S1033”:根據(jù)所述當(dāng)前交易狀態(tài)和所述待檢測訂單應(yīng)用的庫存扣減模式,計(jì)算所述新增庫存變更數(shù)據(jù)的預(yù)期值;以及根據(jù)所述待檢測訂單應(yīng)用的庫存扣減模式和所述新增庫存變更數(shù)據(jù),生成所述待檢測訂單的預(yù)期交易狀態(tài)。
本步驟綜合了上述步驟S1033和步驟S1033’,此處不再贅述。
步驟S1035”:判斷所述新增庫存變更數(shù)據(jù)和所述預(yù)期值是否相同,以及所述待檢測訂單的當(dāng)前交易狀態(tài)和所述預(yù)期交易狀態(tài)是否相同。
本步驟判斷新增庫存變更數(shù)據(jù)的實(shí)際值是否與預(yù)期值相同,以及待檢測訂單的當(dāng)前交易狀態(tài)和預(yù)期交易狀態(tài)是否相同。
步驟S1037”:若是,則判定所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù)。
如果新增庫存變更數(shù)據(jù)中的實(shí)際值與預(yù)期值相同,并且待檢測訂單的當(dāng)前交易狀態(tài)和預(yù)期交易狀態(tài)也相同,則能夠判定新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù)。
步驟S1039”:若否,則判定所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)。
相反的,如果新增庫存變更數(shù)據(jù)中的實(shí)際值與預(yù)期值不相同,或者待檢測訂單的當(dāng)前交易狀態(tài)和預(yù)期交易狀態(tài)不相同,則能夠判定新增庫存變更數(shù)據(jù)為異常的庫存變更數(shù)據(jù)。
在實(shí)際應(yīng)用中,可以根據(jù)具體的應(yīng)用需求,選擇上述方案之一實(shí)現(xiàn)步驟S103。上述各種不同的檢測方案,只是具體實(shí)施方式的變更,都不偏離本申請的核心,因此都在本申請的保護(hù)范圍之內(nèi)。
需要說明的是,如果步驟S103檢測到新增庫存變更數(shù)據(jù)為異常的庫存變更數(shù)據(jù),由于該異常可能是由于缺少一方面的新增數(shù)據(jù)等原因而造成的誤判,為了使得后期能夠?qū)φ`判結(jié)果進(jìn)行糾正,本申請實(shí)施例提供的方法還包括:存儲新增庫存變更數(shù)據(jù)為異常的庫存變更數(shù)據(jù)的檢測結(jié)果的步驟。并且,為了便于后期易于查找到判定為異常的庫存變更數(shù)據(jù),優(yōu)選的方法是將待檢測訂單標(biāo)記為庫存更新異常的訂單。相應(yīng)的,在對每一對新增數(shù)據(jù)進(jìn)行檢測時(shí),如果檢測到新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù),則檢測方法還包括:判斷待檢測訂單是否被標(biāo)記為庫存更新異常的訂單。如果發(fā)現(xiàn)該訂單已經(jīng)被標(biāo)記為庫存更新異常的訂單,則需要刪除新增庫存變更數(shù)據(jù)為異常的庫存變更數(shù)據(jù)的檢測結(jié) 果,由此實(shí)現(xiàn)對誤判結(jié)果的糾正。
通過上述步驟S101和步驟S103,能夠?qū)γ恳淮谓灰谞顟B(tài)變更所引起的庫存變更數(shù)據(jù)進(jìn)行檢測,實(shí)時(shí)發(fā)現(xiàn)庫存更新過程中存在的問題,從而提高商品庫存數(shù)據(jù)的準(zhǔn)確性。
在實(shí)際應(yīng)用中,不僅需要檢測出異常的庫存變更數(shù)據(jù),還需要定位出異常數(shù)據(jù)的產(chǎn)生原因,以確定有效的解決方案,從而做到及時(shí)止損。通過本申請實(shí)施例提供的方法,能夠直接確定較粗細(xì)度的異常原因,例如,可售庫存該減未減或可售庫存該回補(bǔ)未回補(bǔ)等。但是,在實(shí)際應(yīng)用中,還需要分析出異常數(shù)據(jù)產(chǎn)生的細(xì)粒度原因,例如,導(dǎo)致可售庫存該減未減的進(jìn)一步原因是可售庫存不足,還是商品數(shù)據(jù)被刪除等?,F(xiàn)有技術(shù)通過人工查找?guī)齑婀芾硐到y(tǒng)日志的方法,以獲取異常的庫存更新數(shù)據(jù)產(chǎn)生的細(xì)粒度原因。由于該方法是由人工操作的,因而需要消耗大量的人力,是一個浩大的工程。
為了解決現(xiàn)有技術(shù)存在的無法自動定位異常的庫存更新數(shù)據(jù)產(chǎn)生的細(xì)粒度原因的問題,本申請實(shí)施例提供的方法還包括:1)獲取預(yù)先存儲的生成所述新增庫存變更數(shù)據(jù)時(shí)的異常處理結(jié)果;所述異常處理結(jié)果存儲在所述新增交易狀態(tài)變更數(shù)據(jù)或所述新增庫存變更數(shù)據(jù)中;2)將所述異常處理結(jié)果作為所述異常的庫存變更數(shù)據(jù)的異常原因。
本申請實(shí)施例所述的異常處理結(jié)果是指,庫存管理系統(tǒng)在生成庫存變更數(shù)據(jù)時(shí)對外返回的錯誤碼或錯誤描述。庫存管理系統(tǒng)在生成庫存變更數(shù)據(jù)時(shí),一般都會分析出失敗原因,然后對外返回相應(yīng)的錯誤碼和錯誤描述,并將這些錯誤碼和錯誤描述記錄到異常日志文件中?,F(xiàn)有技術(shù)即通過人工查找異常日志文件的方法獲取細(xì)粒度的異常原因。
本申請實(shí)施例提供的方法是將上述異常處理結(jié)果預(yù)先存儲在新增交易狀態(tài)變更數(shù)據(jù)或新增庫存變更數(shù)據(jù)中,使得當(dāng)判斷出新增庫存變更數(shù)據(jù)為異常數(shù)據(jù)時(shí),能夠通過直接讀取預(yù)先存儲的異常處理結(jié)果,從而獲取到庫存變更數(shù)據(jù)出現(xiàn)異常的細(xì)粒度原因。
優(yōu)選的,將異常處理結(jié)果預(yù)先存儲在新增交易狀態(tài)變更數(shù)據(jù)中,使得在新增交易狀態(tài)變更數(shù)據(jù)和新增庫存變更數(shù)據(jù)不同步的情況下,能夠用異常處理結(jié)果替代新增庫存變更數(shù)據(jù),以確定異常的庫存變更數(shù)據(jù),達(dá)到減少異常數(shù)據(jù)的誤判率的效果。
具體的,庫存管理系統(tǒng)提供庫存接口以供交易系統(tǒng)在需要的場景下調(diào)用。交易系統(tǒng)將庫存接口映射為簡短數(shù)字的返回信息保存在新增交易狀態(tài)變更數(shù)據(jù)中。
在上述的實(shí)施例中,提供了一種庫存異常數(shù)據(jù)的檢測方法,與之相對應(yīng)的,本申請還提供一種庫存異常數(shù)據(jù)的檢測裝置。該裝置是與上述方法的實(shí)施例相對應(yīng)。
請參看圖7,其為本申請的庫存異常數(shù)據(jù)的檢測裝置實(shí)施例的示意圖。由于裝置實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。下述描述的裝置實(shí)施例僅僅是示意性的。
本實(shí)施例的一種庫存異常數(shù)據(jù)的檢測裝置,包括:
第一獲取單元101,用于獲取待檢測訂單的新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù);
檢測單元103,用于根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù)和所述待檢測訂單應(yīng)用的庫存扣減模式,檢測所述新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù)。
請參看圖8,其為本申請的庫存異常數(shù)據(jù)的檢測裝置實(shí)施例檢測單元103的具體示意圖??蛇x的,所述檢測單元103包括:
獲取子單元1031,用于根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),獲取所述待檢測訂單的當(dāng)前交易狀態(tài);
計(jì)算子單元1033,用于根據(jù)所述當(dāng)前交易狀態(tài)和所述待檢測訂單應(yīng)用的庫存扣減模式,計(jì)算所述新增庫存變更數(shù)據(jù)的預(yù)期值;
判斷子單元1035,用于判斷所述新增庫存變更數(shù)據(jù)和所述預(yù)期值是否相同;
判定正常子單元1037,用于如果上述判斷結(jié)果為是,則判定所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù);
判定異常子單元1039,用于如果上述判斷結(jié)果為否,則判定所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)。
可選的,所述檢測單元103包括:
獲取子單元,用于根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),獲取所述待檢測訂單的當(dāng)前交易狀態(tài);
計(jì)算子單元,用于根據(jù)所述待檢測訂單應(yīng)用的庫存扣減模式和所述新增庫 存變更數(shù)據(jù),生成所述待檢測訂單的預(yù)期交易狀態(tài);
判斷子單元,用于判斷所述待檢測訂單的當(dāng)前交易狀態(tài)和所述預(yù)期交易狀態(tài)是否相同;
判定正常子單元,用于如果上述判斷結(jié)果為是,則判定所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù);
判定異常子單元,用于如果上述判斷結(jié)果為否,則判定所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)。
可選的,所述檢測單元103包括:
獲取子單元,用于根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),獲取所述待檢測訂單的當(dāng)前交易狀態(tài);
計(jì)算子單元,用于根據(jù)所述當(dāng)前交易狀態(tài)和所述待檢測訂單應(yīng)用的庫存扣減模式,計(jì)算所述新增庫存變更數(shù)據(jù)的預(yù)期值;以及根據(jù)所述待檢測訂單應(yīng)用的庫存扣減模式和所述新增庫存變更數(shù)據(jù),生成所述待檢測訂單的預(yù)期交易狀態(tài);
判斷子單元,用于判斷所述新增庫存變更數(shù)據(jù)和所述預(yù)期值是否相同,以及所述待檢測訂單的當(dāng)前交易狀態(tài)和所述預(yù)期交易狀態(tài)是否相同;
判定正常子單元,用于如果上述判斷結(jié)果為是,則判定所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù);
判定異常子單元,用于如果上述判斷結(jié)果為否,則判定所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)。
請參看圖9,其為本申請的庫存異常數(shù)據(jù)的檢測裝置實(shí)施例的具體示意圖。可選的,如果檢測到所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù),還包括:
存儲結(jié)果單元201,用于存儲所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)的檢測結(jié)果。
可選的,還包括:
標(biāo)記單元203,用于將所述待檢測訂單標(biāo)記為庫存更新異常的訂單。
可選的,如果檢測到所述新增庫存變更數(shù)據(jù)為正常的庫存變更數(shù)據(jù),還包括:
判斷單元205,用于判斷所述待檢測訂單是否被標(biāo)記為所述庫存更新異常的訂單;
刪除單元207,用于如果上述判斷結(jié)果為是,則刪除所述新增庫存變更數(shù)據(jù)為所述異常的庫存變更數(shù)據(jù)的檢測結(jié)果。
可選的,還包括:
第二獲取單元209,用于獲取預(yù)先存儲的生成所述新增庫存變更數(shù)據(jù)時(shí)的異常處理結(jié)果;所述異常處理結(jié)果存儲在所述新增交易狀態(tài)變更數(shù)據(jù)或所述新增庫存變更數(shù)據(jù)中;
設(shè)置單元211,用于將所述處理結(jié)果作為所述異常的庫存變更數(shù)據(jù)的異常原因。
可選的,當(dāng)監(jiān)聽到對應(yīng)所述待檢測訂單的庫存異常檢測通知時(shí),執(zhí)行所述庫存異常數(shù)據(jù)的檢測方法。
可選的,所述庫存異常數(shù)據(jù)的檢測方法運(yùn)行在基于實(shí)時(shí)分布式的計(jì)算處理框架構(gòu)建的異常數(shù)據(jù)檢測平臺中。
可選的,還包括:
生成通知單元213,用于生成所述庫存異常檢測通知。
請參看圖10,其為本申請的庫存異常數(shù)據(jù)的檢測裝置實(shí)施例生成通知單元213的具體示意圖??蛇x的,所述生成通知單元213包括:
同步子單元2131,用于通過增量數(shù)據(jù)實(shí)時(shí)同步裝置,將所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)同步到所述異常數(shù)據(jù)檢測平臺;
發(fā)送子單元2133,用于在所述異常數(shù)據(jù)檢測平臺接收到所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)的至少一者后,若預(yù)設(shè)的發(fā)送庫存異常檢測通知條件成立,則發(fā)送對應(yīng)所述新增交易狀態(tài)變更數(shù)據(jù)或所述新增庫存變更數(shù)據(jù)所屬的訂單的庫存異常檢測通知。
可選的,所述生成通知單元213還包括:
數(shù)據(jù)處理子單元2132,用于根據(jù)預(yù)設(shè)的數(shù)據(jù)規(guī)范化規(guī)則,對所述新增交易狀態(tài)變更數(shù)據(jù)和所述新增庫存變更數(shù)據(jù)進(jìn)行數(shù)據(jù)規(guī)則化處理。
請參考圖11,其為本申請的電子設(shè)備實(shí)施例的示意圖。由于設(shè)備實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡單,相關(guān)之處參見方法實(shí)施例的部分 說明即可。下述描述的設(shè)備實(shí)施例僅僅是示意性的。
本實(shí)施例的一種電子設(shè)備,該電子設(shè)備包括:顯示器1101;處理器1102;以及存儲器1103,所述存儲器1103被配置成存儲庫存異常數(shù)據(jù)的檢測裝置,所述庫存異常數(shù)據(jù)的檢測裝置被所述處理器1102執(zhí)行時(shí),包括如下步驟:獲取待檢測訂單的新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù);根據(jù)所述新增交易狀態(tài)變更數(shù)據(jù),檢測所述新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù)。
本申請?zhí)峁┑膸齑娈惓?shù)據(jù)的檢測方法、裝置及電子設(shè)備,通過獲取待檢測訂單的新增交易狀態(tài)變更數(shù)據(jù)及與其對應(yīng)的新增庫存變更數(shù)據(jù);并根據(jù)新增交易狀態(tài)變更數(shù)據(jù)和待檢測訂單應(yīng)用的庫存扣減模式,檢測新增庫存變更數(shù)據(jù)是否為異常的庫存變更數(shù)據(jù),即:對每一次交易狀態(tài)變更所引起的庫存變更的正確性進(jìn)行實(shí)時(shí)的分析判斷,從而能夠達(dá)到細(xì)粒度的檢測庫存變更數(shù)據(jù),及時(shí)發(fā)現(xiàn)庫存更新過程中的問題。
本申請雖然以較佳實(shí)施例公開如上,但其并不是用來限定本申請,任何本領(lǐng)域技術(shù)人員在不脫離本申請的精神和范圍內(nèi),都可以做出可能的變動和修改,因此本申請的保護(hù)范圍應(yīng)當(dāng)以本申請權(quán)利要求所界定的范圍為準(zhǔn)。
在一個典型的配置中,計(jì)算設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
1、計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、動態(tài)隨機(jī)存取存儲器(DRAM)、其他類型的隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒 體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
2、本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個或多個其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。