性能调优 性能调优 rocksdb状态调优 topN排序、窗口聚合计算以及流流join等都涉及大量的状态操作,因而如果发现这类算子存在性能瓶颈,可以尝试优化状态操作的性能。主要可以尝试通过如下方式优化: 1.增加状态操作内存,降低磁盘IO 增加单slot cu资源数 配置优化参数: taskmanager.memory.managed.fractionxx state.backend.rocksdb.block.cachesizexx state.backend.rocksdb.writebuffer.sizexx 2.开启微批模式,避免状态频繁操作 配置参数: table.exec.minibatch.enabledtrue table.exec.minibatch.allowlatencyxx table.exec.minibatch.sizexx 3.使用超高IO本地盘规格机型,加速磁盘操作 group agg单点及数据倾斜调优 按天聚合计算或者group by key不均衡场景下,group聚合计算存在单点或者数据倾斜问题,此时,可以通过将聚合计算拆分成LocalGlobal进行优化。配置方式为设置调优参数: table.optimizer.aggphasestrategyTWOPHASE count distinct优化 在count distinct关联key比较稀疏场景下,即使使用LocalGlobal,单点问题依然非常严重,此时可以通过配置以下调优参数进行分桶拆分优化: table.optimizer.distinctagg.split.enabledtrue table.optimizer.distinctagg.split.bucketnumxx 使用filter替换case when: 例如: COUNT(DISTINCT CASE WHEN flag IN ('android', 'iphone')THEN userid ELSE NULL END) AS appuv 可调整为 COUNT(DISTINCT userid) FILTER(WHERE flag IN ('android', 'iphone')) AS appuv 维表join优化 维表join根据左表进入的每条记录join关联键,先在缓存中匹配,如果匹配不到,则从远程拉取。因而,可以通过如下方式优化: 增加JVM内存并增加缓存记录条数 维表设置索引,加快查询速度