学习 Flink(五):状态

Flink 支持有状态的操作和用户方法。例如,窗口操作使用状态维护不断追加的聚合数据,sink 操作使用状态保证一致性提供 exactly-once 语义。 Flink 状态主要分为两种: 操作状态 键状态 Flink 支持三种状态后端: 内存 文件系统 RocksDB 操作状态 操作状态(Operator State),即每个操作状态绑定到一个并发操作实例上。 Flink 提供了以下操作状态: Broadcast State: »

学习 Flink(四):水印

要理解水印(Wartermark),首先需要理解三个时间概念: 事件时间(Event Time) 摄入时间(Ingestion Time) 处理时间(Process Time) 时间 事件时间是每一个独立的事件在产生它的设备中发生的时间。以用户行为分析为例,事件时间就是用户访问页面点击按钮时的时间。 摄入时间是事件进入 Flink 的时间。以用户行为分析为例,摄入时间就是 Flink Kafka Connector 从 Kafaka »

学习 Flink(三):窗口

滚动窗口 滚动窗口(Tumbling Window)又称固定窗口(Fixed Window),将事件分配到固定大小且非重叠的桶中。当超过了窗口边界,事件就会发送到执行函数进行处理。 计数滚动窗口 基于计数的滚动窗口,定义了在出发执行之前需要收集多少事件: ds.keyBy(0) .countWindow(5) // ① .sum(1) .print() ① 计数为 5 的窗口 时间滚动窗口 基于时间的滚动窗口, »

学习 Flink(一):初识 Flink

Apache Flink 是在有界(bounded)和无界(unbounded)数据流之上进行有状态计算的框架和分布式处理引擎。 有界数据流,有始有终,之上的计算即为批处理。无界数据流,有始无终,之上的计算即为流处理。 Flink 采用了流优先的架构,批处理被作为流处理的特殊情况。 参考:The world beyond batch: Streaming 101 体系 Runtime Runtime »