一种基于Lambda架构的电信数据平台解决方案

2017-06-10 19:52罗琦芳
电子技术与软件工程 2017年11期

罗琦芳

摘 要传统电信数据平台是中心式的,由数据仓库和关系型数据库构成。通过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