导航:首页 > 数据处理 > 如何预防数据倾斜

如何预防数据倾斜

发布时间:2024-12-01 00:30:07

1. ODPS SQL 优化总结

优化总结:SQL使用技巧与性能提升

1、利用null处理:在判断条件中处理null时,使用nvl或coalesce函数进行默认转换,避免null影响判断结果。

2、选择性列查询:在数据开发或线上任务中,应提前剪裁列,即使需要所有列,也明确列出,减少不必要的数据读取,预防后期表结构变动导致的错误。

3、多表插入优化:读取同一表但在不同粒度下插入多表时,采用from () tab insert overwrite A insert overwrite B方法,减少资源浪费。注意遵循团队开发规范,合理复用公共数据,如通过临时表存储逻辑。

4、分区限定:ODPS表为分区表,应习惯性限定分区ds,避免因分区限定问题导致的任务资源浪费。

5、使用limit:在临时查询或数据探查时,加上limit快速获取所需数据,减少资源消耗。

6、UDF函数下沉:将UDF函数下沉到子查询中,提高效率。

7、行转列与列转行:利用collect_set、lateral view函数实现,参考大佬经验。

8、窗口函数应用:使用row_number()或max(struct())等方法实现数据排序或计算。

9、关联类型:掌握左关联、内关联、右关联等,适应不同场景下的多表关联,确保关联字段类型一致。

10、笛卡尔积处理:针对需求翻倍一行数据的场景,创建维表并通过笛卡尔积操作,或使用:LATERAL VIEW POSEXPLODE方法。

11、提高map数:通过调整split size hint优化商品表效率,使用/*+SPLIT_SIZE(8)*/调整,单位为MB。

数据倾斜优化策略:

1)大表关联小表:使用mapjoin hint,调整中小表内存大小,通过set odps.sql.mapjoin.memory.max调整,单位M。

2)大表关联大表:拆分热点数据,使用普通join或skewjoin hint,针对分区与桶优化关联。

3)count distinct问题:通过group by先去重再count解决。

4)ODPS新特性:关注MaxCompute(ODPS2.0)特性,性能优化显着。

小表关联大表优化:使用dynamic_filter,调整/*+dynamic_filter(A,B)*/。

参数设置优化:

1)Map设置:调整odps.sql.mapper.cpu、memory、merge.limit.size、split.size,根据任务特点合理调整。

2)Join设置:调整odps.sql.joiner.instances、cpu、memory,针对Join任务特性进行调整。

3)Rece设置:调整odps.sql.recer.instances、cpu、memory,优化任务性能。

4)小文件合并参数:设置odps.merge.cross.paths、filesize.threshold、maxmerged.filesize.threshold、max.filenumber.per.instance、max.filenumber.per.job,控制文件合并。

5)UDF相关参数:调整odps.sql.udf.jvm.memory、timeout、python.memory、optimize.reuse、strict.mode,优化UDF性能。

Mapjoin设置:使用odps.sql.mapjoin.memory.max调整小表最大内存。

动态分区设置:使用set odps.sql.reshuffle.dynamicpt控制动态分区优化。

数据倾斜设置:使用set odps.sql.groupby.skewindata、odps.sql.skewjoin优化Group By与Join操作。

SQL优化案例:

关联与数据倾斜优化:发现数据倾斜,尝试使用skewjoin、热点数据分离等方法,最终通过隐式转换问题解决,确保关联操作的正确性。

分桶解决大表与大表关联:使用hash clustering分散数据,减少资源消耗,提高查询效率。

BitMap在多维汇总中的应用:利用BitMap实现去重汇总,解决数据倾斜问题,优化多维汇总模型性能。

总结:SQL优化是理解业务逻辑、合理利用工具、控制资源消耗的过程。在满足业务需求的同时,追求效率与成本的优化。

阅读全文

与如何预防数据倾斜相关的资料

热点内容
农行通知完成派息交易是什么 浏览:456
贵阳观山湖区为什么没有农贸市场 浏览:955
山海游戏怎么交易 浏览:475
星空如何处理整条程序 浏览:50
中阳啤酒怎么代理 浏览:184
注塑机产品没充满怎么办 浏览:844
男士用的护肤产品都有哪些 浏览:291
怎么做期货程序化交易软件 浏览:615
齐鲁证券交易费多少钱 浏览:618
资本市场st是什么 浏览:18
酸奶的包装技术都有哪些 浏览:13
统计局数据从哪里搞 浏览:318
市场的牛奶是什么品牌 浏览:402
现在市场批发生猪大肠是什么价格 浏览:540
没有产品如何存活 浏览:376
交易猫在哪里估价王者号值多少钱 浏览:954
如何注销武汉战疫小程序 浏览:785
巩义市厨具二手市场在什么地方 浏览:541
南京祛斑美白产品用着怎么样 浏览:939
办签证理财产品到期怎么办 浏览:931