Apache Flink 提供了一个 split
API,可以将数据流分支:
val splited = datastream.split { i => i match {
case i if ... => Seq("red", "blue")
case _ => Seq("green")
}}
splited.select("green").flatMap { .... }
它还提供了另一种方法称为Side Output(https://ci.apache.org/projects/flink/flink-docs-release-1.5/dev/stream/side_output.html),让您做同样的事情!这两种方式有什么区别?它们使用相同的低级结构吗?它们的成本相同吗?我们应该在何时以及如何选择它们之一?