簡體   English   中英

Apache Flink 多次處理流

[英]Apache Flink Process Stream Multiple Times

我正在嘗試使用 Apache Flink 來處理使用兩種不同算法的數據流。 我的偽代碼如下:

env = getEnvironment();
DataStream<Event> inputStream = getInputStream();
// How to replicate the input stream?
Array[DataStream<Event>] inputStreams = inputStream.clone()

// apply different operations on the replicated streams
outputOne = inputStreams[0].map(func1);
outputTwo = inputStreams[1].map(func2);
 ...
outputOne.addSink(sink1);
outputTwo.addSink(sink2);
env.execute();

我對 Flink 文檔做了一些研究。 似乎沒有克隆流的概念。 DataStream.iterate()DataStream.split()都不是我想要的。 是否有從源多次創建流的替代方法? 謝謝你的幫助。

“克隆”流非常簡單,不需要專門的操作員。 您可以在同一個DataStream上應用多個轉換。 所有下游轉換都將消耗完整的流。

所以在你的例子中你做:

env = getEnvironment();
DataStream<Event> inputStream = getInputStream();

outputOne = inputStream.map(func1); // apply 1st transformation
outputTwo = inputStream.map(func2); // apply 2nd transformation
...
outputOne.addSink(sink1);
outputTwo.addSink(sink2);
env.execute();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM