如果我在Flink中连接键控流和非键控流,会发生什么?例如
val stream1 = source.keyBy(_.customerId)
val stream2 = source2.map(operation()...)
stream1.connect(stream2).process(processData).addSink(kafkaSink)
这里的情况是,我试图将一组规则(非键控流,stream2(应用于另一个流(stream1(,我通常在广播规则流,但广播的大小越来越大。所以,我只想知道,如果我不广播其中一个流,并根据并行性、状态等将它们连接起来,会发生什么。?
当连接两个流时,它们必须属于以下情况之一:
- 其中一个流正在广播
- 两个流都没有键控
- 两个流被键控到相同的键空间中
不能将键控流连接到非键控流,因为生成的连接不会进行键分区。