随着大数据的快速发展,业务场景越来越复杂,离线式的批处理框架 MapReduce 已经不能满足业务,大量的场景需要实时的数据处理结果来进行分析,决策。例如实时的订单统计,就需要采集前分钟,甚至前几秒的数据进行分析。实时计算适用于这种对历史数据依赖不强,短时间内变化较大的数据。订单统计、业务监控、用户行为分析等不断随环境和时间实时变化的数据都可能用到实时计算。
SparkStreaming 是 Spark 提供的分布式的大数据实时计算框架,是基于 SparkCore的扩展,他提供了动态的,高吞吐量的,可容错的流式数据处理。他可以从多个数据源 Kafka,Flume,Kinesis,Twitter,Tcp scokets 中获取数据,然后使用复杂的算法和高级的函数算子如:map,reduce,join,window 进行数据处理加工。最后可以将处理后的数据输出到文件系统、数据库和可视化界面,同样也可以在数据流上使用机器学习和图形计算算法。
实时订单统计系统,整体架构如下:
马上商城实时订单统计系统基于商城订单数据,采集后实时计算,并输出结算结果供业务系统使用。以下进行相关模块介绍:
功能模块
1. 数据采集
订单信息从业务系统产生,实时发送到kafka消息中间件。消息格式采用易于解析的JSON格式存储。包括基础订单信息、订单详细信息、订单支付信息、订单的新建、订单状态变更、订单支付状态变更等。
2. 数据计算
使用Spark Streaming从Kafka中实时消费订单消息,并进行清洗和计算。为保证无数据丢失及防止重复消费,需要维护Kafka订单Topic的消费Offset。计算维度包括时间、业务类型等,计算的指标包括下单额、下单数、成单额、成单数等。计算方式包括分时段统计、对比统计等。
3.数据应用
业务系统基于实时计算的订单统计数据,进行利用。常见的利用方式如使用BI系统进行报表分析,提供折线图、饼状图等展现方式。
效益分析
商城实时订单统计系统的引入,为运营人员和数据分析人员提供了更好的支撑。提供了实时报表的快速查询和制作,配合数据挖掘工具、关联业务数据进行业务分析,帮助运营人员实时的感知业务的运行情况,业务策略的调整更为及时、有效。
作者:张磊
版权申明:本文为公众号原创,如需转载,请在公众号后台留言。
图片来源:网络
领取专属 10元无门槛券
私享最新 技术干货