我对#34;广播状态"之间的区别感到困惑。和broadcast()运算符,最后我从以下线程中的Flink专家那里得到了帮助。
最终似乎得出的结论是"播出状态"可以通过RichCoFlatMap将动态规则存储在键控流中,但是broadcast()运算符不能,所以我可以知道"广播状态"存储RichCoFlatMap的动态规则以及为什么broadcast()运算符不能存储RichCoFlatMap的动态规则?我可以举例解释吗?
答案 0 :(得分:1)
这些完全是两个不同的概念。此外,broadcast()
是BroadcastState
的先决条件。
broadcast()
指定数据分区,表示应将流的每个元素广播到每个并行下游运算符。
BroadcastState
是一种运营商状态,首先允许从广播流中读写并从非广播流中读取。在此之前,没有办法加入这两个流。此外,此状态将确保在恢复之后,跨所有并行实例的状态的每个实例都是相同的。
有关BroadcastState
的详细信息,请查看this文档。
答案 1 :(得分:0)
它们是不同的概念,BroadcastState是一个存储概念,Broadcast()是一个操作,目的是为你构建BroadcastStream。