知识卡片

数据分配策略的取舍

专业/工作 · 500.a

内容

物理数据流图中,数据从一个任务节点流向下一个任务节点时有四种分配策略:转发——同一台机器上的相邻任务直接传递数据,避免网络通信,是延迟最低的方式;基于Key分配——按某个字段做分区,保证相同Key的数据固定由同一任务处理,是实现有状态聚合(如分组求和)的前提;随机分配——数据随机打散到下游并行任务,目的是负载均衡而非语义正确性;广播分配——把上游全部数据发给下游每一个并行任务,代价最高(涉及网络传输和数据拷贝),只在下游每个实例都需要看到全量数据时使用(如广播一份小维表)。这四种策略本质是在”避免不必要的网络开销”和”保证计算所需的数据可见性/正确性”之间做选择。

参考来源

《Flink入门与实战》第2章《定义、架构与原理》