2023江苏省赛样题解析-数据采集与实时计算_任务二:使用Flink处理Kafka中的数据
任务描述
编写Scala工程代码,使用Flink消费Kafka中Topic为order的数据并进行相应的数据统计计算。
1、使用Flink消费Kafka中的数据,统计个人实时订单总额,将key设置成totalprice存入Redis中(再使用hash数据格式,key存放为用户id,value存放为该用户消费总额),使用redis cli以get key方式获取totalprice值,将结果截图粘贴至对应报告中,需两次截图,第一次截图和第二次截图间隔一分钟以上,第一次截图放前面,第二次放后面。
任务分析
任务描述中,“使用Flink消费Kafka中的数据,统计个人实时订单总额”,说明需要使用keyed stream(键控流),按个人id分区;
另外,虽然需求描述中没有说明,但是在统计订单总额时,需要考虑订单状态,若有取消订单、申请退回、退回完成则不计入订单实收金额(可以认为取消订单、退回完成时要从订单总额中减去相应的金额;申请退回则不计入订单实收金额),其他状态的则累加。
说明:因为官方给出的样本数据只包含一种订单状态"1005",因此本案例基于官方的样本数据,对订单状态随机重新设置,使其包含取消订单、申请 退回、退回完成等多种不同状的订单。另外,并不是所有订单字段在实时计算中都需要,因此我们实现的数据生成器所生成的订单记录的字段做了适当简化。
实现原理
本案例实现原理如下图所示:
会员登录