ODPS SQL问题之为什么使用odps.sql.groupby.skewindata = true优化后,逻辑执行计划会发生改变如何解决

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: ODPS SQL问题之为什么使用odps.sql.groupby.skewindata = true优化后,逻辑执行计划会发生改变如何解决

问题一:odps.sql.groupby.skewindata 参数的作用是什么?

odps.sql.groupby.skewindata 参数的作用是什么?


参考回答:

odps.sql.groupby.skewindata 参数用于优化含有GROUP BY和DISTINCT操作的SQL查询,以应对数据倾斜问题。当设置为true时,系统会根据数据的分布自动调整查询的执行计划,以避免热点数据聚集导致的数据倾斜。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/632186



问题二:为什么使用odps.sql.groupby.skewindata = true优化后,逻辑执行计划会发生改变?

为什么使用odps.sql.groupby.skewindata = true优化后,逻辑执行计划会发生改变?


参考回答:

使用odps.sql.groupby.skewindata = true优化后,逻辑执行计划会发生变化,主要是因为系统会根据数据的倾斜情况自动调整查询的执行策略。例如,在Map阶段可能会增加Hash分区的字段,以避免Reduce阶段的数据倾斜。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/632188



问题三:Sort Merge Join和Broadcast Hash Join的主要区别是什么?

Sort Merge Join和Broadcast Hash Join的主要区别是什么?


参考回答:

Sort Merge Join和Broadcast Hash Join的主要区别在于数据处理方式。Sort Merge Join会将两张表根据join key进行重新分区、排序,然后在每个分区节点上执行merge操作。而Broadcast Hash Join则是将小表广播分发到大表所在的所有节点上,与大表进行hash join操作。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/632189



问题四:什么情况下应该使用Broadcast Hash Join而不是Sort Merge Join?

什么情况下应该使用Broadcast Hash Join而不是Sort Merge Join?


参考回答:

当小表数据量较小,而大表数据量较大时,使用Broadcast Hash Join可能会更有效率。因为Broadcast Hash Join可以避免shuffle和sort操作,减少数据传输和计算资源的使用。但是,如果小表数据量也很大,使用Broadcast Hash Join可能会消耗过多的内存资源,导致性能下降。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/632193



问题五:Distributed Map Join是如何工作的?

Distributed Map Join是如何工作的?


参考回答:

Distributed Map Join将小表数据分片(shard),并在多个节点上构建分布式哈希表。大表的数据则通过网络传输方式将join keys分批次发送到小表所在的节点进行哈希查找。这种方式可以并行处理大量数据,但要求大表数据量远大于小表,以避免网络传输成为性能瓶颈。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/632195

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
打赏
0
0
0
0
191
分享
相关文章
MySQL进阶突击系列(07) 她气鼓鼓递来一条SQL | 怎么看执行计划、SQL怎么优化?
在日常研发工作当中,系统性能优化,从大的方面来看主要涉及基础平台优化、业务系统性能优化、数据库优化。面对数据库优化,除了DBA在集群性能、服务器调优需要投入精力,我们研发需要负责业务SQL执行优化。当业务数据量达到一定规模后,SQL执行效率可能就会出现瓶颈,影响系统业务响应。掌握如何判断SQL执行慢、以及如何分析SQL执行计划、优化SQL的技能,在工作中解决SQL性能问题显得非常关键。
|
4天前
|
SQL
【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading
【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading
【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading
玩转大数据:从零开始掌握SQL查询基础
玩转大数据:从零开始掌握SQL查询基础
94 35
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
46 9
|
26天前
|
SQL
【YashanDB 知识库】使用 leading hint 调整 SQL 执行计划后报错 YAS-04522 invalid hint leading
在 YashanDB 的所有版本中,使用 leading hint 调整 SQL 执行计划时可能出现“YAS-04522 invalid hint leading”错误,导致 SQL 无法正常执行。原因是 YashanDB 优化器的 Bug。解决方法为避免使用 leading hint。可通过创建测试表 a、b、c 并执行特定 SQL 语句来验证问题是否存在。
|
14天前
|
SQL
【YashanDB知识库】收集分区表统计信息采样率小于1导致SQL执行计划走偏
【YashanDB知识库】收集分区表统计信息采样率小于1导致SQL执行计划走偏
MySQL原理简介—10.SQL语句和执行计划
本文介绍了MySQL执行计划的相关概念及其优化方法。首先解释了什么是执行计划,它是SQL语句在查询时如何检索、筛选和排序数据的过程。接着详细描述了执行计划中常见的访问类型,如const、ref、range、index和all等,并分析了它们的性能特点。文中还探讨了多表关联查询的原理及优化策略,包括驱动表和被驱动表的选择。此外,文章讨论了全表扫描和索引的成本计算方法,以及MySQL如何通过成本估算选择最优执行计划。最后,介绍了explain命令的各个参数含义,帮助理解查询优化器的工作机制。通过这些内容,读者可以更好地理解和优化SQL查询性能。
如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
在 Oracle 数据库中,SQL Profiles 是优化查询性能的工具,通过提供额外统计信息帮助生成更有效的执行计划。配置和使用步骤包括:1. 启用自动 SQL 调优;2. 手动创建 SQL Profile,涉及收集、执行调优任务、查看报告及应用建议;3. 验证效果;4. 使用 `DBA_SQL_PROFILES` 视图管理 Profile。
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
108 11
Spark SQL向量化执行引擎框架Gluten-Velox在AArch64使能和优化
本文摘自 Arm China的工程师顾煜祺关于“在 Arm 平台上使用 Native 算子库加速 Spark”的分享,主要内容包括以下四个部分: 1.技术背景 2.算子库构成 3.算子操作优化 4.未来工作
192 0