梁偉晟
(中國移動通信集團廣東有限公司,廣州510623)
渠道費用結算系統實現對社會渠道費用的計算。系統定期從外圍系統(CRM系統、計費賬務系統、BI、ESOP、物聯網IOT、和商匯等)采集業務辦理及狀態數據,對采集的數據進行預處理,包括數據清洗、數據轉換等操作,然后根據結算規則對預處理完成的數據進行費用計算,生成費用結算報表。Hadoop是用于海量數據存儲和計算的分布式系統基礎架構。Hadoop具有可擴展、可伸縮等特性,適用于海量業務數據預處理和計算。渠道費用結算系統引入Hadoop框架,充分利用Hadoop的分布式存儲和計算能力,實現彈性伸縮,提高數據預處理的性能。在預處理過程中,由于海量數據以離散數據表的形式流轉,依賴于平臺數據處理性能,對資源消耗較大,影響預處理效率。為此,采用一種結算數據切片處理技術將無狀態的離散數據按照一定數據特征規則進行結構化解析處理,以提高數據運算的效率。
渠道費用結算系統基于Hadoop平臺采集數據源,并做初步過濾預處理,再將初步預處理的數據按照結算規則生成計算所需的結構化數據。

圖1 數據預處理
在預處理過程中,大量的數據是以離散數據表的形式被處理,沒有根據數據特征歸類處理,對資源消耗較大,處理性能依賴于平臺處理能力。同時也無法進行動態擴展集群化數據處理,可能導致負載不均衡。

圖2 離散數據流轉
為解決處理性能和負載均衡問題,采用一種將結算數據切片處理的方法將無狀態的離散數據按照一定數據特征規則進行結構化解析處理,將數據分割至各個redis內存數據庫進行計算,提高數據運算的效率,實現資源負載的均衡。
(1)源數據采集。通過Hadoop平臺采集用戶訂單、產品、計費等信息。
(2)數據歸類處理。針對采集的數據按照業務數據對象特征進行歸類,歸類后得到結構化的數據用于切片。
(3)數據切片。提供數據切片模型設置,根據數據對象歸類信息進行數據分割,將數據均衡分類分割至redis預處理邏輯集群。
(4)數據處理集群。數據邏輯處理單元,集群可根據數據切片模型切片結果并行處理以及集群數量自動伸縮。
(1)數據歸類。費用結算涉及的業務數據主要以用戶資料、產品數據、訂單數據為主。數據歸類模塊提供通用配置能力,將結算政策碼以及所需的數據對象進行配置。根據配置信息,業務數據以結算政策碼為特征進行聚合歸類,生成包含結算政策碼、用戶資料、產品數據、訂單數據等信息的數據對象,得到結構化的數據(U1,U2,U3,U4…Ut)T。對結構化的數據打上標簽Y,封裝形成n個切片標簽(U1,U2,U3,U4…Ut|Y)T。
(2)業務數據切片。依照結構化數據的數據記錄數維度,對結構化數據進行排序,并標記切片標簽(U)的邊緣切片標簽,即標簽最大值和最小值(Ymax,Ymin)。按照切片標簽值Y進行分類得到切片數據:

(3)切片數據隊列生成。以切片標簽匹配所有業務數據,按照redis節點數量m和切片標簽數量n進行數據拼接,然后通過邊緣標簽最大值(Ymax)和最小值(Ymin)作為一組隊列進行切分,總計可得到個隊列。具體如下:

將分割好的數據量均衡的隊列根據redis實時負載情況分配至各redis節點進行業務邏輯處理。每一個的結算數據對象經過切片可分配至單獨的業務邏輯處理單元集群。
通過在預J處理過程中將結算數據切片處理,所有離散數據與渠道費用政策在預處理階段就關聯起來,生成結構化對象數據。同時通過對數據對象進行切片,實現數據的集群化處理,有效利用集群自動彈性伸縮。通過此方案的實施,渠道費用結算數據預處理效率提升87%以上。
本文給出了基于Hadoop框架的結算數據切片方法和實現,以此解決海量離散數據的預處理對資源消耗較大,影響了預處理效率。在Hadoop處理大數據優勢的基礎上,將源數據采集得到的離散數據結構化,通過數據切片方案適配具備一定關聯性的離散數據,數據分割切片后再分配到redis集群化均衡負載處理。實際系統建設表明,經過改造后,數據預處理效率得到較大提升。