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