羅琦芳

摘 要傳統電信數據平臺是中心式的,由數據倉庫和關系型數據庫構成。通過SQL來查詢有效的存儲于關系型數據庫中的用戶數據和信令數據,只能對簡單的問題進行分析,并且查詢訪問負載較低,不能應對海量數據規模的存儲查詢和實時性的需求。本文提出一種基于Lambda架構的電信數據平臺解決方案,實現了低延時,可擴展,容錯性高的電信數據平臺。該數據平臺既可以通過離線批處理方式對存儲的全量歷史數據進行迭代分析,也可以通過實時計算對實時生成的增量數據進行低延時的計算,是一種良好的電信數據平臺解決方案。
【關鍵詞】電信數據平臺 Lambda架構 離線批處理 實時計算
1 引言
電信數據平臺承載著電信網中各類用戶數據的收集過濾,存儲聚合,分析挖掘等功能,為企業對于用戶的各種決策提供一定數據支撐。同時,電信數據平臺也通過收集相關的信令數據,監控電信網的實際運行情況,是企業的核心系統之一。
傳統電信數據平臺由數據倉庫和關系型數據庫構成。數據采集端收集各種信息,如用戶狀態,用戶位置,終端日志,網絡狀態等一系列異構的數據信息,并統一匯總到數據倉庫。數據倉庫中存儲有全量信息,通過運行各種ETL程序,將龐大的數據倉庫的信息分門別類轉移到例如Oracle,DB2,Sybase等各類關系型數據庫的各個表中。數據分析人員一般通過類似于商業智能的平臺,通過撰寫SQL語句,提取關系型數據庫中的有用數據,來簡單的分析各類問題。傳統的電信數據平臺,具有集中式,造價昂貴,部署和運維復雜等特點。在相當長一段時期內,由于單位時間生成的數據規模沒有顯著增加,沒有到達數據庫的使用瓶頸,傳統的電信數據平臺可以較好的應對各種需求。但隨著單位時間內,采集端生成的數據飛速膨脹,每天生成數十億乃至上百億的各類異構數據需要存儲和分析,傳統的電信數據平臺逐漸暴露了其不足之處。
傳統的電信數據平臺組織方案有以下兩個方面的不足需要改進。首先是對于海量數據存儲和查詢較為困難。中心型的關系型數據庫難以承受較高的用戶查詢負載,并且關系型數據庫的成本開銷較為昂貴,并不支持簡單的線性擴展,若采用數據庫分庫和分表等輔助手段,則整個數據平臺的復雜性有較大提升并且難以維護,所以傳統的電信數據平臺不能應對海量數據的存儲和查詢。第二點不足是實時性不足。一般而言,數據在數據倉庫構建就需要很長的數據,由數據倉庫經ETL程序歸并到各類數據庫同樣耗時巨大且有很多冗余的處理,同時批處理系統分析數據的延時在小時級別以上,隨著越來越多數據采集端的部署,數據產生速度越來越快,規模越來越大,實時對數據進行分析,并把結果進行可視化,對于實時監控的需求越來越重要,傳統的電信數據平臺延時較大,不能夠適應數據實時性的要求。
針對以上分析的不足,本文提出一種基于Lambda架構的電信數據平臺解決方案。Lambda架構,是Nathan Marz提出的一個實時大數據處理框架,具備高吞吐量和低延時的特點。本文結合Lambda架構,闡述了新型電信數據平臺的基本構成和各層的職責,同時也具體介紹了各層使用的互聯網開源大數據項目,描述了整個工作流程和數據流向,體現了新型電信數據平臺具備的高吞吐量,低延時,高容錯性的特點,解決了傳統電信數據平臺難以應對海量數據存儲和查詢,以及不能實時分析的不足。為電信網各數據平臺在新需求下的轉型提供了一個良好的嘗試。
2 相關技術介紹
2.1 Lambda架構
Lambda架構是由Nathan Marz提出的一種大數據處理架構,結合了批處理計算和實時計算的特點,融合了不可變性,讀寫分離和復雜性隔離等一系列架構原則,具備高容錯、低延時和可擴展等特點。一般分為批處理層,服務層和速度層,如圖1所示。
批處理層對全量數據進行迭代計算,全量數據可以認為是一個不可變的持續增長的數據集。批處理層對于全量數據進行批處理計算,得到批處理視圖,存儲到服務層。服務層可以根據查詢條件,對批處理視圖的結果進行再次合并等處理。批處理層通過定時的重復批處理視圖的更新,可以保證數據的高容錯性,但是計算時間一般較長,延時較大,適用于全局規模的分析和預計算。批處理層一般由大數據批處理框架來實現。
服務層的任務是對于用戶查詢提供支持。它根據查詢條件,隨機訪問視圖,組合批處理視圖和實時視圖的結果,最終反饋給用戶。服務層一般由NoSql數據庫實現,但是為了降低復雜性,不允許對視圖結果進行隨機寫操作,僅提供對于批處理視圖和實時視圖的加載和隨機讀取操作。
速度層負責實時計算增量數據。由于批處理計算比較耗時,隨時而來的實時增量數據等不到有效計算,通過引入速度層解決這一問題。速度層只處理最近的數據,采用快速,增量的算法,通過實時計算,維護較小規模的實時視圖,是對批處理視圖更新是較高延時的一種補充。同時,由于全量數據計算的準確性,允許批處理視圖最終覆蓋實時視圖。速度層一般由消息系統隨時拉取新增的數據,并通過實時流式計算框架完成實時視圖的生成。
2.2 Hadoop
Hadoop是一個處理海量數據的分布式系統基礎架構。Hadoop 2.0架構由HDFS,YARN和MapReduce構成。HDFS是Hadoop中的分布式文件系統,它將海量數據存儲于DataNode中,由NameNode維護各DataNode的元數據信息。YARN是Hadoop中的資源管理系統,監控每個節點,并協調MapReduce任務的分配。MapReduce是Hadoop中分布式數據處理框架,它將數據處理分為兩個階段,即Map和Reduce兩個階段,提供批處理并行計算的框架。對于Map階段,對輸入數據應用Map Function,執行結果為Key和Value的元組,相同Key的元組通過執行Reduce Function進行合并,最終生成結果。Hadoop有很豐富的其他組件支持各種需求的分析,如Pig,Hive,Impala等,這些高級工具可以自動將高級原語翻譯為MapReduce任務執行,有更好的使用體驗。本文,Hadoop作為Lambda架構中批處理層實現,全量數據存儲在HDFS上,應用MapReduce計算,生成批處理視圖。
3 結束語
本文結合Nathan Marz提出的Lambda架構和電信數據的特點,提出了基于Lambda架構的電信數據平臺解決方案。本方案既可以通過全量數據的定期迭代計算,離線分析電信網收集的相關數據,生成批量視圖,同時也可以通過流式計算框架,對增量數據進行實時分析,生成增量視圖。同時,將批量視圖和增量視圖聚合,一起組合為查詢服務,使得平臺既有實時系統的吞吐量,有具備離線系統的完備性。
參考文獻
[1]Marz N,Warren J.Big Data:Principles and best practices of scalable realtime data systems[M].Manning,2015.
[2]Chaudhri A B."Next Gen Hadoop:Gather around the campfire and I will tell you a good YARN"[J].
[3]Yang W,Liu X,Zhang L,et al.Big Data Real-Time Processing Based on Storm[J].2013,8(01):1784-1787.
作者單位
中國移動通信有限公司 北京市 100033