Son*_*Son 5 apache-flink flink-streaming
我有一个来自 Kafka 的 DataStream,它对 MyModel 中的一个字段有 2 个可能的值。MyModel 是一个 pojo,具有从来自 Kafka 的消息解析的特定领域字段。
DataStream<MyModel> stream = env.addSource(myKafkaConsumer);
Run Code Online (Sandbox Code Playgroud)
我想分别在每个键 a1、a2 上应用窗口和运算符。有什么好的方法可以将它们分开?我有 2 个选项过滤和选择,但不知道哪个更快。
过滤方法
stream
.filter(<MyModel.a == a1>)
.keyBy()
.window()
.apply()
.addSink()
stream
.filter(<MyModel.a == a2>)
.keyBy()
.window()
.apply()
.addSink()
Run Code Online (Sandbox Code Playgroud)
拆分和选择方法
SplitStream<MyModel> split = stream.split(…)
split
.select(<MyModel.a == a1>)
…
.addSink()
split
.select<MyModel.a == a2>()
…
.addSink()
Run Code Online (Sandbox Code Playgroud)
如果 split 和 select 更好,如果我想根据 MyModel 中某个字段的值进行拆分,如何实现它们?
| 归档时间: |
|
| 查看次数: |
4744 次 |
| 最近记录: |