You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flink Table API是否支持重分区及算子并行度配置?

Table API实现算子并行度与重分区策略的方法

一、设置算子并行度

Table API支持全局和单算子级别的并行度配置:

  • 全局配置:通过SQL SET语句统一设置所有算子的并行度,示例:
    SET table.exec.parallelism = 5;
    
  • 单算子配置:针对特定算子(聚合、Sink、Join等),用查询hint指定单独的并行度,示例:
    SELECT /*+ OPTIONS('parallelism'='3') */ user_id, COUNT(*) 
    FROM user_behavior 
    GROUP BY user_id;
    
    也可以在定义Sink时单独设置并行度:
    tableEnv.executeSql("CREATE TABLE my_sink (...) WITH ('sink.parallelism'='2')");
    

二、实现重分区策略

Table API没有像DataStream那样直接暴露rescale()、global()这类方法,但可以通过查询hint或配置间接实现对应逻辑:

  • Rebalance分区:使用/*+ REBALANCE */ hint,让数据在算子间均匀重分区,对应DataStream的rebalance():
    SELECT /*+ REBALANCE */ * FROM user_behavior;
    
  • Rescale分区:使用/*+ RESCALE */ hint,基于上下游算子并行度比例分区,对应DataStream的rescale():
    SELECT /*+ RESCALE */ user_id, amount FROM order_info;
    
  • Global分区:将目标算子并行度设为1,或用/*+ GLOBAL */ hint强制所有数据发送到同一个并行实例:
    SELECT /*+ GLOBAL, OPTIONS('parallelism'='1') */ MAX(price) FROM product;
    

如果有复杂分区需求,还可以先把Table转为DataStream,用DataStream API完成重分区后再转回Table,灵活性更高。

内容的提问来源于stack exchange,提问作者Pavel Orekhov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 00:04:53