flink

流计算应用场景:对实时产生的数据进行实时统计分析
Apache Flink 采用了基于操作符(Operator)的连续流模型,可以做到微秒级别的延迟

Flink 中最核心的数据结构是 Stream,它代表一个运行在多个分区上的并行流。
Stream 代表一个数据流而不是静态数据的集合。所以,它包含的数据是随着时间增长而变化的。在 Stream 上同样可以进行各种转换操作,而且 Stream 上的转换操作都是逐条进行的,即每当有新的数据进来,整个流程都会被执行并更新结果。
当一个 Flink 程序被执行的时候,它会被映射为Streaming Dataflow

在这里插入图片描述
在 Flink 中,程序天生是并行和分布式的。一个 Stream 可以包含多个分区,一个操作符可以被分成多个操作符子任务,每一个子任务是在不同的线程或者不同的机器节点中独立执行的。
在这里插入图片描述
Stream 在操作符之间传输数据的形式有两种:一对一和重新分布

在这里插入图片描述
Flink 的核心是 DataStream
在 DataSet 和 DataStream 之上,有更高层次的 Table API。Table API 和 Spark SQL 的思想类似,是关系型的 API,用户可以像操作 SQL 数据库表一样的操作数据
Table API 同样统一了 Flink 的批处理和流处理,目前还不完善

比对:
对于以下场景,你可以选择 Spark。
【1】数据量非常大而且逻辑复杂的批数据处理,并且对计算效率有较高要求(比如用大数据分析来构建推荐系统进行个性化推荐、广告定点投放等);
【2】基于历史数据的交互式查询,要求响应较快;
【3】基于实时数据流的数据处理,延迟性要求在在数百毫秒到数秒之间。

Flink适用于各种需要非常低延迟(微秒到毫秒级)的实时数据处理场景,比如实时日志报表分析。

窗口:
Spark 只支持基于时间的窗口操作(处理时间或者事件时间)
Flink对于窗口的支持远比Spark要好,这是它相比Spark最大的优点之一。它不仅支持基于时间的窗口(处理时间、事件时间和摄入时间),还支持基于数据数量的窗口。
此外,在窗口的形式上,Flink支持滚动窗口(Tumbling Window)、滑动窗口(Sliding Window)、全局窗口(Global Window)和会话窗口(Session Windows)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值