Flink应用场景分析

在数据剧增的今天,大数据技术也越来越被大家重视,而作为实时流计算的代表性框架之一,Flink在近几年的发展趋势无疑也是惊人的,一方面是Flink社区的活跃度,另一方面是Flink在大数据计算上的优异表现,都让我们知道,Flink落地应用的潜力所在。今天我们就主要来了解下Flink应用场景分析。

Flink的提出,本身就是针对于实时流计算的,因为之前的无论是Hadoop框架还是Spark框架,都不能算是真正意义上的实时流计算处理引擎,只有Flink,实现了毫秒级低延迟的实时流数据计算。
在这里插入图片描述
Flink落地应用场景主要有三类:Event-driven Applications(事件驱动)、Data Analytics Applications(数据分析)、Data Pipeline Applications(管道式ETL)。

以事件驱动来说,其执行流程:
采集的数据Events可以不断的放入消息队列,Flink应用会不断ingest(消费)消息队列中的数据,Flink应用内部维护着一段时间的数据(state),隔一段时间会将数据持久化存储(Persistent sstorage),防止Flink应用死掉。Flink应用每接受一条数据,就会处理一条数据,处理之后就会触发(trigger)一个动作(Action),同时也可以将处理结果写入外部消息队列中,其他Flink应用再消费。
典型的事件驱动类应用,包括欺诈检测(Fraud detection)、异常检测(Anomaly detection)、基于规则的告警(Rule-based alerting)、业务流程监控(Business process monitoring)、Web应用程序(社交网络)等。
而数据分析应用,包含Batch analytics(批处理分析)和Streaming analytics(流处理分析)。
批处理分析,可以理解为周期性查询:比如Flink应用凌晨从Recorded Events中读取昨天的数据,然后做周期查询运算,最后将数据写入Database或者HDFS,或者直接将数据生成报表供公司上层领导决策使用。
流处理分析,可以理解为连续性查询:比如实时展示双十一天猫销售GMV,用户下单数据需要实时写入消息队列,Flink应用源源不断读取数据做实时计算,然后不断的将数据更新至Database或者K-VStore,最后做大屏实时展示。
而数据管道ETL,包含Periodic(周期性)ETL和Data Pipeline(管道)。
周期性的任务处理,比如每天凌晨周期性的启动一个Flink ETL Job,读取传统数据库中的数据,然后做ETL,最后写入数据库和文件系统。
数据管道任务,比如启动一个Flink实时应用,数据源(比如数据库、Kafka)中的数据不断的通过Flink Data Pipeline流入或者追加到数据仓库(数据库或者文件系统),或者Kafka消息队列。
总体来说,Flink落地应用的场景还是比较广泛的,在国内阿里系的平台对于Flink的应用很多,各种广告推荐系统、业务监控系统的背后,都涉及到到Flink落地应用,大家如果感兴趣的可以多去研究研究,也欢迎各位朋友相关关注讨论DT最新技术。

发布了23 篇原创文章 · 获赞 21 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43443852/article/details/104396502