[英]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.