首页 > 其他 > 详细

Flink的应用场景和架构模型

时间:2020-09-19 17:58:03      阅读:50      评论:0      收藏:0      [点我收藏+]

?????Flink可以完成数据的实时采集、实时计算和下游发送。

一、应用场景
1、实时计算
Flink 在实时数仓和实时 ETL 中有天然的优势:

  • 状态管理,实时数仓里面会进行很多的聚会计算,这些都需要对于状态进行访问和管理,Flink支持强大的状态管理
  • 丰富的API,Flink提供极为丰富的多层底API,包括Stream API,Table API以及Flink SQL
  • 生态完善,实时数仓的用途广泛,Flink支持多种存储(HDFS、ES等)
  • 批流一体,Flink已经在将流计算和批计算的API进行统一

2、事件驱动
????? 事件驱动型应用是一类具有状态的应用,他从一个或多个事件流提取数据,并根据到来的事件出发计算、状态更新或其他外部动作。
Flink的以下特性完美的支持了事件驱动应用:

  • 高效的状态管理,Flink自带的State Backend可以很好的存储中间状态信息
  • 丰富的窗口支持,Flink支持包含滚动窗口、滑动窗口已经其他窗口
  • 多种时间语义,Flink支持Event Time,Processing Time和Ingestion Time
  • 不同级别的容错,Flink支持At least once或Exactly once容错级别

二、架构模型
1、Flink的分层模型
技术分享图片

Flink提供了不同级别的抽象来支持开发流式或批量处理程序,如上图。
一般完美不需要上图最低级别的Low-level抽象,而是针对Core API编程,比如DataStream API和DataSet API。Table API和SQL是Flink更高级的API操作。

2、Flink的数据流模型
Flink程序的基础构建模块是流(Streams)和转换(transformations),每一个数据流起始于一个或多个Source,并终止与一个或多个Sink,类似有向无环图(DAG)。

3、Flink中的窗口和时间
Flink支持流多种窗口模型,比如滚动窗口(Tumbling Window)、滑动窗口(Sliding Window)以及会话窗口(Session Window)等。
技术分享图片

同时Flink支持事件时间(Event Time)、摄取时间(Ingestion Time)和处理时间(Processing Time)这三种语义来满足实际生产中对于时间的特殊需求。

Flink的应用场景和架构模型

原文:https://www.cnblogs.com/liufei-yes/p/13696983.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!