Flink数据流结构
DataStream 转换
通常我们需要分析的业务数据可能存在如下问题:
-
数据中包含一些我们不需要的数据
-
数据格式不方面分析
因此我们需要对原始数据流进行加工,比如过滤、转换等操作才可以进行数据分析。
“Flink DataStream 转换主要作用:
对输入的数据流(DataStream)经过各种转换操作以生成新的数据流
操作分类
-
单条记录操作
-
比如 Map 、 Fliter
-
-
基于窗口 (Window)操作
-
窗口根据某些特征(例如,过去 5 秒内到达的数据)对所有流事件进行分组
-
-
合并数据流
-
union 、join、connect 可以将多个DataStream 合并为一个DataStream 进行分析处理
-
-
拆分数据流
-
将数据流拆分为多个数据流分别对每个数据流进行分析
-
基本操作
操作 | 描述 | 备注 |
---|---|---|
Map | 将数据流中每个元素转换为新的元素 | 类似 Java 中 stream.map 操作 |
Filter | 筛选只保留符合条件的数据 | 类似 Java 中 stream.filter 操作 |
FlatMap | 将一个输入"展开"为多个元素 | |
KeyBy | 将流逻辑划分为不相交的分区。所有具有相同键的记录都分配到同一个分区。 | |
Reduce | 对具有相同键的元素进行规约操作,如求和、求最大值 |
使用示例
Map
“将数据流中每个元素转换为新的元素
使用场景很多,主要对原始数据进行加工