知识卡片

逻辑数据流图与物理数据流图

专业/工作 · 500

内容

流处理引擎内部用有向无环图描述一个作业:逻辑数据流图以算子为节点,只表达”数据依赖哪些处理步骤”,是一种更宏观简练的描述,不代表实际执行情况;分布式引擎会把它转换成物理数据流图,节点变成任务(同一个算子的多个并行实例),从而真正调度到不同机器上执行。这个转换背后是两个维度的并行优化:数据并行——按规则把数据切成多个分区分别处理以提升吞吐;计算并行——同时利用多核内存计算降低延迟。把逻辑和物理两层拆开的好处是开发者只需要在逻辑层描述业务逻辑,并行调度的复杂度完全由引擎在物理层处理,这也是分布式计算框架相对手写并行程序的核心价值所在。

参考来源

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