Flink 在实时计算中的应用场景

(图二:Flink实时计算的主要应用场景)

1.实时BI

对于淘宝和考拉这种电商场景,有着海量的在线交易和用户数据,实时计算不同维度的数据统计数据对于指导运营有很大的帮助。

实时BI系统的流程:在线服务系统和数据库会产生大量的日志数据,通过日志收集工具采集到消息队列比如Kafkka,FlinkJob实时读取处理这些数据,然后将各种统计结果实时写到Mysql或者Hbase中,通过可视化技术,运营用户可从DashBoard中实时看到各个维度的统计分析结果。

最直观的例子就是双十一的实时GMV成交额,大屏实时显示最新的销售总额,看似一个简单的数据,背后需要Flink平稳、精准的计算。

2.实时数仓

离线计算阶段,我们的数据仓库都是非实时的,通常是天级别或者小时级别的ETL作业,通过MapReduce,将数据进行批处理,将数据load到hive分区表。但是离线建立的数据,时间上具有延迟性,天任务的ETL,只能到第二天才能对前一天的数据进行查询和计算。如果希望可以查询到实时数据,实时的ETL就显的尤为必要。

通过Flink,可以实时将数据进行处理,load到Hive表,从而实现实时数仓的搭建,数据实时可查询。

3.在线模型

传统的离线机器学习需要T+1的分析用户的历史行为,训练模型,第二天上线,但是用户的需求和预期可能已经发生了改变,因此模型的实时性就显得尤为重要。我们知道,机器学习的特征一般都是通过复杂计算得到的,所以提取特征需要大量的计算任务。FlinkJob通过实时的日志,根据需求提取需要的特征,并在线上使用最新的特征和结果数据,增量训练模型,从而达到在线机器学习的目的。

在线模型的计算更加密集和复杂,而这些正是Flink的优势所在。通过在线学习,模型也会更加实时,可以给用户带来更好的使用体验。

4.实时监控

监控系统一般采集的数据量都是巨大的,通过参数的一些阈值设定,实时报警,Flink在这类场景中也有应用。

通过用户的实时行为数据,我们可以做到实时监控。比如广告系统的实时反作弊,美团、招商等运营活动的实时反薅羊毛都是实时计算的案例,Flink在其中也能发挥巨大的价值。

上面只是介绍了Flink实时计算的一些主要的应用场景,其实更多的应用场景还有待我们发掘。