分区前的flink过滤器

li9yvcax  于 2021-06-26  发布在  Flink
关注(0)|答案(2)|浏览(365)

apacheflink使用类似于apachespark的dag风格的延迟处理模型(如果我错了,请纠正我)。也就是说,如果我使用下面的代码

DataStream<Element> data = ...;
DataStream<Element> res = data.filter(...).keyBy(...).timeWindow(...).apply(...);
``` `.keyBy()` 皈依者 `DataStream` 至 `KeyedStream` 并将其分配给flink工作节点。
我的问题是,Flink怎么处理 `filter` 在这里?将筛选器应用于传入 `DataStream` 在划分/分配流和 `DataStream` 将只创建 `Element` 是否通过筛选条件?
pdtvr36n

pdtvr36n1#

据我所知 filterkeyBy . 正如你所说的,它是一个dag(d==定向的)。你有没有看到任何迹象表明情况并非如此?

c86crjj0

c86crjj02#

在对数据流进行分区/分发之前,是否将筛选应用于传入的数据流,并且仅创建通过筛选条件的元素的数据流?
是的,没错。我唯一可以说不同的是,澄清原始流 data 通常已经从源分发(并行)。过滤将在多个任务中并行应用,之后keyby将在worker中重新编写/重新分配流。
您可以使用flink的webui检查作业生成的执行图的可视化。

相关问题