羅琦芳

摘 要傳統(tǒng)電信數(shù)據(jù)平臺是中心式的,由數(shù)據(jù)倉庫和關(guān)系型數(shù)據(jù)庫構(gòu)成。通過SQL來查詢有效的存儲于關(guān)系型數(shù)據(jù)庫中的用戶數(shù)據(jù)和信令數(shù)據(jù),只能對簡單的問題進(jìn)行分析,并且查詢訪問負(fù)載較低,不能應(yīng)對海量數(shù)據(jù)規(guī)模的存儲查詢和實時性的需求。本文提出一種基于Lambda架構(gòu)的電信數(shù)據(jù)平臺解決方案,實現(xiàn)了低延時,可擴(kuò)展,容錯性高的電信數(shù)據(jù)平臺。該數(shù)據(jù)平臺既可以通過離線批處理方式對存儲的全量歷史數(shù)據(jù)進(jìn)行迭代分析,也可以通過實時計算對實時生成的增量數(shù)據(jù)進(jìn)行低延時的計算,是一種良好的電信數(shù)據(jù)平臺解決方案。
【關(guān)鍵詞】電信數(shù)據(jù)平臺 Lambda架構(gòu) 離線批處理 實時計算
1 引言
電信數(shù)據(jù)平臺承載著電信網(wǎng)中各類用戶數(shù)據(jù)的收集過濾,存儲聚合,分析挖掘等功能,為企業(yè)對于用戶的各種決策提供一定數(shù)據(jù)支撐。同時,電信數(shù)據(jù)平臺也通過收集相關(guān)的信令數(shù)據(jù),監(jiān)控電信網(wǎng)的實際運行情況,是企業(yè)的核心系統(tǒng)之一。
傳統(tǒng)電信數(shù)據(jù)平臺由數(shù)據(jù)倉庫和關(guān)系型數(shù)據(jù)庫構(gòu)成。數(shù)據(jù)采集端收集各種信息,如用戶狀態(tài),用戶位置,終端日志,網(wǎng)絡(luò)狀態(tài)等一系列異構(gòu)的數(shù)據(jù)信息,并統(tǒng)一匯總到數(shù)據(jù)倉庫。數(shù)據(jù)倉庫中存儲有全量信息,通過運行各種ETL程序,將龐大的數(shù)據(jù)倉庫的信息分門別類轉(zhuǎn)移到例如Oracle,DB2,Sybase等各類關(guān)系型數(shù)據(jù)庫的各個表中。數(shù)據(jù)分析人員一般通過類似于商業(yè)智能的平臺,通過撰寫SQL語句,提取關(guān)系型數(shù)據(jù)庫中的有用數(shù)據(jù),來簡單的分析各類問題。傳統(tǒng)的電信數(shù)據(jù)平臺,具有集中式,造價昂貴,部署和運維復(fù)雜等特點。在相當(dāng)長一段時期內(nèi),由于單位時間生成的數(shù)據(jù)規(guī)模沒有顯著增加,沒有到達(dá)數(shù)據(jù)庫的使用瓶頸,傳統(tǒng)的電信數(shù)據(jù)平臺可以較好的應(yīng)對各種需求。但隨著單位時間內(nèi),采集端生成的數(shù)據(jù)飛速膨脹,每天生成數(shù)十億乃至上百億的各類異構(gòu)數(shù)據(jù)需要存儲和分析,傳統(tǒng)的電信數(shù)據(jù)平臺逐漸暴露了其不足之處。
傳統(tǒng)的電信數(shù)據(jù)平臺組織方案有以下兩個方面的不足需要改進(jìn)。首先是對于海量數(shù)據(jù)存儲和查詢較為困難。中心型的關(guān)系型數(shù)據(jù)庫難以承受較高的用戶查詢負(fù)載,并且關(guān)系型數(shù)據(jù)庫的成本開銷較為昂貴,并不支持簡單的線性擴(kuò)展,若采用數(shù)據(jù)庫分庫和分表等輔助手段,則整個數(shù)據(jù)平臺的復(fù)雜性有較大提升并且難以維護(hù),所以傳統(tǒng)的電信數(shù)據(jù)平臺不能應(yīng)對海量數(shù)據(jù)的存儲和查詢。第二點不足是實時性不足。一般而言,數(shù)據(jù)在數(shù)據(jù)倉庫構(gòu)建就需要很長的數(shù)據(jù),由數(shù)據(jù)倉庫經(jīng)ETL程序歸并到各類數(shù)據(jù)庫同樣耗時巨大且有很多冗余的處理,同時批處理系統(tǒng)分析數(shù)據(jù)的延時在小時級別以上,隨著越來越多數(shù)據(jù)采集端的部署,數(shù)據(jù)產(chǎn)生速度越來越快,規(guī)模越來越大,實時對數(shù)據(jù)進(jìn)行分析,并把結(jié)果進(jìn)行可視化,對于實時監(jiān)控的需求越來越重要,傳統(tǒng)的電信數(shù)據(jù)平臺延時較大,不能夠適應(yīng)數(shù)據(jù)實時性的要求。
針對以上分析的不足,本文提出一種基于Lambda架構(gòu)的電信數(shù)據(jù)平臺解決方案。Lambda架構(gòu),是Nathan Marz提出的一個實時大數(shù)據(jù)處理框架,具備高吞吐量和低延時的特點。本文結(jié)合Lambda架構(gòu),闡述了新型電信數(shù)據(jù)平臺的基本構(gòu)成和各層的職責(zé),同時也具體介紹了各層使用的互聯(lián)網(wǎng)開源大數(shù)據(jù)項目,描述了整個工作流程和數(shù)據(jù)流向,體現(xiàn)了新型電信數(shù)據(jù)平臺具備的高吞吐量,低延時,高容錯性的特點,解決了傳統(tǒng)電信數(shù)據(jù)平臺難以應(yīng)對海量數(shù)據(jù)存儲和查詢,以及不能實時分析的不足。為電信網(wǎng)各數(shù)據(jù)平臺在新需求下的轉(zhuǎn)型提供了一個良好的嘗試。
2 相關(guān)技術(shù)介紹
2.1 Lambda架構(gòu)
Lambda架構(gòu)是由Nathan Marz提出的一種大數(shù)據(jù)處理架構(gòu),結(jié)合了批處理計算和實時計算的特點,融合了不可變性,讀寫分離和復(fù)雜性隔離等一系列架構(gòu)原則,具備高容錯、低延時和可擴(kuò)展等特點。一般分為批處理層,服務(wù)層和速度層,如圖1所示。
批處理層對全量數(shù)據(jù)進(jìn)行迭代計算,全量數(shù)據(jù)可以認(rèn)為是一個不可變的持續(xù)增長的數(shù)據(jù)集。批處理層對于全量數(shù)據(jù)進(jìn)行批處理計算,得到批處理視圖,存儲到服務(wù)層。服務(wù)層可以根據(jù)查詢條件,對批處理視圖的結(jié)果進(jìn)行再次合并等處理。批處理層通過定時的重復(fù)批處理視圖的更新,可以保證數(shù)據(jù)的高容錯性,但是計算時間一般較長,延時較大,適用于全局規(guī)模的分析和預(yù)計算。批處理層一般由大數(shù)據(jù)批處理框架來實現(xiàn)。
服務(wù)層的任務(wù)是對于用戶查詢提供支持。它根據(jù)查詢條件,隨機(jī)訪問視圖,組合批處理視圖和實時視圖的結(jié)果,最終反饋給用戶。服務(wù)層一般由NoSql數(shù)據(jù)庫實現(xiàn),但是為了降低復(fù)雜性,不允許對視圖結(jié)果進(jìn)行隨機(jī)寫操作,僅提供對于批處理視圖和實時視圖的加載和隨機(jī)讀取操作。
速度層負(fù)責(zé)實時計算增量數(shù)據(jù)。由于批處理計算比較耗時,隨時而來的實時增量數(shù)據(jù)等不到有效計算,通過引入速度層解決這一問題。速度層只處理最近的數(shù)據(jù),采用快速,增量的算法,通過實時計算,維護(hù)較小規(guī)模的實時視圖,是對批處理視圖更新是較高延時的一種補充。同時,由于全量數(shù)據(jù)計算的準(zhǔn)確性,允許批處理視圖最終覆蓋實時視圖。速度層一般由消息系統(tǒng)隨時拉取新增的數(shù)據(jù),并通過實時流式計算框架完成實時視圖的生成。
2.2 Hadoop
Hadoop是一個處理海量數(shù)據(jù)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。Hadoop 2.0架構(gòu)由HDFS,YARN和MapReduce構(gòu)成。HDFS是Hadoop中的分布式文件系統(tǒng),它將海量數(shù)據(jù)存儲于DataNode中,由NameNode維護(hù)各DataNode的元數(shù)據(jù)信息。YARN是Hadoop中的資源管理系統(tǒng),監(jiān)控每個節(jié)點,并協(xié)調(diào)MapReduce任務(wù)的分配。MapReduce是Hadoop中分布式數(shù)據(jù)處理框架,它將數(shù)據(jù)處理分為兩個階段,即Map和Reduce兩個階段,提供批處理并行計算的框架。對于Map階段,對輸入數(shù)據(jù)應(yīng)用Map Function,執(zhí)行結(jié)果為Key和Value的元組,相同Key的元組通過執(zhí)行Reduce Function進(jìn)行合并,最終生成結(jié)果。Hadoop有很豐富的其他組件支持各種需求的分析,如Pig,Hive,Impala等,這些高級工具可以自動將高級原語翻譯為MapReduce任務(wù)執(zhí)行,有更好的使用體驗。本文,Hadoop作為Lambda架構(gòu)中批處理層實現(xiàn),全量數(shù)據(jù)存儲在HDFS上,應(yīng)用MapReduce計算,生成批處理視圖。
3 結(jié)束語
本文結(jié)合Nathan Marz提出的Lambda架構(gòu)和電信數(shù)據(jù)的特點,提出了基于Lambda架構(gòu)的電信數(shù)據(jù)平臺解決方案。本方案既可以通過全量數(shù)據(jù)的定期迭代計算,離線分析電信網(wǎng)收集的相關(guān)數(shù)據(jù),生成批量視圖,同時也可以通過流式計算框架,對增量數(shù)據(jù)進(jìn)行實時分析,生成增量視圖。同時,將批量視圖和增量視圖聚合,一起組合為查詢服務(wù),使得平臺既有實時系統(tǒng)的吞吐量,有具備離線系統(tǒng)的完備性。
參考文獻(xiàn)
[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