梁偉晟
(中國(guó)移動(dòng)通信集團(tuán)廣東有限公司,廣州510623)
渠道費(fèi)用結(jié)算系統(tǒng)實(shí)現(xiàn)對(duì)社會(huì)渠道費(fèi)用的計(jì)算。系統(tǒng)定期從外圍系統(tǒng)(CRM系統(tǒng)、計(jì)費(fèi)賬務(wù)系統(tǒng)、BI、ESOP、物聯(lián)網(wǎng)IOT、和商匯等)采集業(yè)務(wù)辦理及狀態(tài)數(shù)據(jù),對(duì)采集的數(shù)據(jù)進(jìn)行預(yù)處理,包括數(shù)據(jù)清洗、數(shù)據(jù)轉(zhuǎn)換等操作,然后根據(jù)結(jié)算規(guī)則對(duì)預(yù)處理完成的數(shù)據(jù)進(jìn)行費(fèi)用計(jì)算,生成費(fèi)用結(jié)算報(bào)表。Hadoop是用于海量數(shù)據(jù)存儲(chǔ)和計(jì)算的分布式系統(tǒng)基礎(chǔ)架構(gòu)。Hadoop具有可擴(kuò)展、可伸縮等特性,適用于海量業(yè)務(wù)數(shù)據(jù)預(yù)處理和計(jì)算。渠道費(fèi)用結(jié)算系統(tǒng)引入Hadoop框架,充分利用Hadoop的分布式存儲(chǔ)和計(jì)算能力,實(shí)現(xiàn)彈性伸縮,提高數(shù)據(jù)預(yù)處理的性能。在預(yù)處理過(guò)程中,由于海量數(shù)據(jù)以離散數(shù)據(jù)表的形式流轉(zhuǎn),依賴于平臺(tái)數(shù)據(jù)處理性能,對(duì)資源消耗較大,影響預(yù)處理效率。為此,采用一種結(jié)算數(shù)據(jù)切片處理技術(shù)將無(wú)狀態(tài)的離散數(shù)據(jù)按照一定數(shù)據(jù)特征規(guī)則進(jìn)行結(jié)構(gòu)化解析處理,以提高數(shù)據(jù)運(yùn)算的效率。
渠道費(fèi)用結(jié)算系統(tǒng)基于Hadoop平臺(tái)采集數(shù)據(jù)源,并做初步過(guò)濾預(yù)處理,再將初步預(yù)處理的數(shù)據(jù)按照結(jié)算規(guī)則生成計(jì)算所需的結(jié)構(gòu)化數(shù)據(jù)。
圖1 數(shù)據(jù)預(yù)處理
在預(yù)處理過(guò)程中,大量的數(shù)據(jù)是以離散數(shù)據(jù)表的形式被處理,沒(méi)有根據(jù)數(shù)據(jù)特征歸類處理,對(duì)資源消耗較大,處理性能依賴于平臺(tái)處理能力。同時(shí)也無(wú)法進(jìn)行動(dòng)態(tài)擴(kuò)展集群化數(shù)據(jù)處理,可能導(dǎo)致負(fù)載不均衡。
圖2 離散數(shù)據(jù)流轉(zhuǎn)
為解決處理性能和負(fù)載均衡問(wèn)題,采用一種將結(jié)算數(shù)據(jù)切片處理的方法將無(wú)狀態(tài)的離散數(shù)據(jù)按照一定數(shù)據(jù)特征規(guī)則進(jìn)行結(jié)構(gòu)化解析處理,將數(shù)據(jù)分割至各個(gè)redis內(nèi)存數(shù)據(jù)庫(kù)進(jìn)行計(jì)算,提高數(shù)據(jù)運(yùn)算的效率,實(shí)現(xiàn)資源負(fù)載的均衡。
(1)源數(shù)據(jù)采集。通過(guò)Hadoop平臺(tái)采集用戶訂單、產(chǎn)品、計(jì)費(fèi)等信息。
(2)數(shù)據(jù)歸類處理。針對(duì)采集的數(shù)據(jù)按照業(yè)務(wù)數(shù)據(jù)對(duì)象特征進(jìn)行歸類,歸類后得到結(jié)構(gòu)化的數(shù)據(jù)用于切片。
(3)數(shù)據(jù)切片。提供數(shù)據(jù)切片模型設(shè)置,根據(jù)數(shù)據(jù)對(duì)象歸類信息進(jìn)行數(shù)據(jù)分割,將數(shù)據(jù)均衡分類分割至redis預(yù)處理邏輯集群。
(4)數(shù)據(jù)處理集群。數(shù)據(jù)邏輯處理單元,集群可根據(jù)數(shù)據(jù)切片模型切片結(jié)果并行處理以及集群數(shù)量自動(dòng)伸縮。
(1)數(shù)據(jù)歸類。費(fèi)用結(jié)算涉及的業(yè)務(wù)數(shù)據(jù)主要以用戶資料、產(chǎn)品數(shù)據(jù)、訂單數(shù)據(jù)為主。數(shù)據(jù)歸類模塊提供通用配置能力,將結(jié)算政策碼以及所需的數(shù)據(jù)對(duì)象進(jìn)行配置。根據(jù)配置信息,業(yè)務(wù)數(shù)據(jù)以結(jié)算政策碼為特征進(jìn)行聚合歸類,生成包含結(jié)算政策碼、用戶資料、產(chǎn)品數(shù)據(jù)、訂單數(shù)據(jù)等信息的數(shù)據(jù)對(duì)象,得到結(jié)構(gòu)化的數(shù)據(jù)(U1,U2,U3,U4…Ut)T。對(duì)結(jié)構(gòu)化的數(shù)據(jù)打上標(biāo)簽Y,封裝形成n個(gè)切片標(biāo)簽(U1,U2,U3,U4…Ut|Y)T。
(2)業(yè)務(wù)數(shù)據(jù)切片。依照結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)記錄數(shù)維度,對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn)行排序,并標(biāo)記切片標(biāo)簽(U)的邊緣切片標(biāo)簽,即標(biāo)簽最大值和最小值(Ymax,Ymin)。按照切片標(biāo)簽值Y進(jìn)行分類得到切片數(shù)據(jù):
(3)切片數(shù)據(jù)隊(duì)列生成。以切片標(biāo)簽匹配所有業(yè)務(wù)數(shù)據(jù),按照redis節(jié)點(diǎn)數(shù)量m和切片標(biāo)簽數(shù)量n進(jìn)行數(shù)據(jù)拼接,然后通過(guò)邊緣標(biāo)簽最大值(Ymax)和最小值(Ymin)作為一組隊(duì)列進(jìn)行切分,總計(jì)可得到個(gè)隊(duì)列。具體如下:
將分割好的數(shù)據(jù)量均衡的隊(duì)列根據(jù)redis實(shí)時(shí)負(fù)載情況分配至各redis節(jié)點(diǎn)進(jìn)行業(yè)務(wù)邏輯處理。每一個(gè)的結(jié)算數(shù)據(jù)對(duì)象經(jīng)過(guò)切片可分配至單獨(dú)的業(yè)務(wù)邏輯處理單元集群。
通過(guò)在預(yù)J處理過(guò)程中將結(jié)算數(shù)據(jù)切片處理,所有離散數(shù)據(jù)與渠道費(fèi)用政策在預(yù)處理階段就關(guān)聯(lián)起來(lái),生成結(jié)構(gòu)化對(duì)象數(shù)據(jù)。同時(shí)通過(guò)對(duì)數(shù)據(jù)對(duì)象進(jìn)行切片,實(shí)現(xiàn)數(shù)據(jù)的集群化處理,有效利用集群自動(dòng)彈性伸縮。通過(guò)此方案的實(shí)施,渠道費(fèi)用結(jié)算數(shù)據(jù)預(yù)處理效率提升87%以上。
本文給出了基于Hadoop框架的結(jié)算數(shù)據(jù)切片方法和實(shí)現(xiàn),以此解決海量離散數(shù)據(jù)的預(yù)處理對(duì)資源消耗較大,影響了預(yù)處理效率。在Hadoop處理大數(shù)據(jù)優(yōu)勢(shì)的基礎(chǔ)上,將源數(shù)據(jù)采集得到的離散數(shù)據(jù)結(jié)構(gòu)化,通過(guò)數(shù)據(jù)切片方案適配具備一定關(guān)聯(lián)性的離散數(shù)據(jù),數(shù)據(jù)分割切片后再分配到redis集群化均衡負(fù)載處理。實(shí)際系統(tǒng)建設(shè)表明,經(jīng)過(guò)改造后,數(shù)據(jù)預(yù)處理效率得到較大提升。