答案 0 :(得分:4)
请参考下面的工作图(Fraud Detection using Flink)。
FORWARD 连接意味着Source运算符的一个并行实例消耗的所有数据都被传输到了后续运算符的一个实例。它还表明两个连接的运算符具有相同的并行度。
DynamicKeyFunction和DynamicAlertFunction之间的 HASH 连接意味着,对于每条消息,将计算哈希码,并且消息将均匀分布在下一个运算符的可用并行实例之间。需要使用keyBy 从Flink 明确“请求”这样的连接。
REBALANCE 分布是由于显式调用rebalance()引起的,或者是由于并行度的改变引起的(对于工作图为12的> 1图2)。调用rebalance()会使数据以循环方式进行重新分区,并有助于减轻某些情况下的数据偏斜。
图2中的欺诈检测作业图包含一个附加数据源:规则源。它还从卡夫卡消费。规则通过 BROADCAST 通道“混合”到主要处理数据流中。与在运营商之间传输数据的其他方法(例如转发,哈希或重新平衡)使每个消息仅可在接收运营商的并行实例之一中进行处理不同,广播使每个消息在所有运营商的输入处均可用。广播流所连接的运营商的并行实例。这使得广播适用于需要影响所有消息的处理的各种任务,而不管其密钥或源分区如何。
参考Document。
答案 1 :(得分:2)
首先,众所周知,Flink流作业将根据其作业图(或DAG)被拆分为多个任务。 FORWARD / HASH是上游任务和下游任务之间的分区程序,用于对输入中的数据进行分区。
什么是前进?而且什么时候发生转发?
这意味着分区程序将仅将元素转发到本地运行的下游任务。如果您不直接指定任何分区程序,或者不与reblance / keyBy等分区程序一起使用功能,则Forward是默认的分区程序。
什么是哈希?哈希何时发生?
这是一个分区器,用于根据键组索引对记录进行分区。调用keyBy时会发生这种情况。