数据湖探索 DLI-Flink作业性能调优:性能调优
性能调优
- rocksdb状态调优
topN排序、窗口聚合计算以及流流join等都涉及大量的状态操作,因而如果发现这类算子存在性能瓶颈,可以尝试优化状态操作的性能。主要可以尝试通过如下方式优化:
- 增加状态操作内存,降低磁盘IO
- 增加单slot cu资源数
- 配置优化参数:
- taskmanager.memory.managed.fraction=xx
- state.backend.rocksdb.block.cache-size=xx
- state.backend.rocksdb.writebuffer.size=xx
- 开启微批模式,避免状态频繁操作
- table.exec.mini-batch.enabled=true
- table.exec.mini-batch.allow-latency=xx
- table.exec.mini-batch.size=xx
- 使用超高IO本地盘规格机型,加速磁盘操作
- 增加状态操作内存,降低磁盘IO
- group agg单点及数据倾斜调优
按天聚合计算或者group by key不均衡场景下,group聚合计算存在单点或者数据倾斜问题,此时,可以通过将聚合计算拆分成Local-Global进行优化。配置方式为设置调优参数: table.optimizer.aggphase-strategy=TWO_PHASE
- count distinct优化
- 在count distinct关联key比较稀疏场景下,即使使用Local-Global,单点问题依然非常严重,此时可以通过配置以下调优参数进行分桶拆分优化:
- table.optimizer.distinct-agg.split.enabled=true
- table.optimizer.distinct-agg.split.bucket-num=xx
- 使用filter替换case when:
COUNT(DISTINCT CASE WHEN flag IN ('android', 'iphone')THEN user_id ELSE NULL END) AS app_uv
可调整为
COUNT(DISTINCT user_id) FILTER(WHERE flag IN ('android', 'iphone')) AS app_uv
- 在count distinct关联key比较稀疏场景下,即使使用Local-Global,单点问题依然非常严重,此时可以通过配置以下调优参数进行分桶拆分优化:
- 维表join优化
维表join根据左表进入的每条记录join关联键,先在缓存中匹配,如果匹配不到,则从远程拉取。因而,可以通过如下方式优化:
- 增加JVM内存并增加缓存记录条数
- 维表设置索引,加快查询速度
- 文档数据库服务DDS性能调优_MongoDB性能调优_华为云
- 什么是Spark SQL作业_数据湖探索DLISpark SQL作业
- GaussDB性能怎么调_GaussDB性能调优_高斯数据库性能怎么调-华为云
- GaussDB计算性能_gaussdb递归_高斯数据库计算性能_华为云
- GaussDB硬件_金融级高可用_高斯数据库硬件-华为云
- GaussDB性能怎么调_华为gaussdb_gaussdb性能_gaussdb学习
- ModelArts模型训练_创建训练作业_如何创建训练作业
- GaussDB案例指南_高斯数据库函数_高斯数据库案例指南_华为云
- 什么是数据湖探索服务_数据湖探索DLI用途与特点
- GaussDB数据库设计_GaussDB教程_高斯数据库设计