HiveSql语法优化一 :分组聚合优化

Hive中未经优化的分组聚合,是通过一个MapReduce Job实现的。Map端负责读取数据,并按照分组字段分区,通过Shuffle,将数据发往Reduce端,各组数据在Reduce端完成最终的聚合运算。

Hive对分组聚合的优化主要围绕着减少Shuffle数据量进行,具体做法是map-side聚合。所谓map-side聚合,就是在map端维护一个hash table,利用其完成部分的聚合,然后将部分聚合的结果,按照分组字段分区,发送至reduce端,完成最终的聚合。map-side聚合能有效减少shuffle的数据量,提高分组聚合运算的效率。

map-side 聚合相关的参数如下:

第一个参数是map端聚合的总开关;

第二个参数reduction是指在聚合前判断该表是否适合map端聚合,它会先对若干条数据进行map-side聚合,若聚合后的条数和聚合前的条数比值小于该值,则认为该表适合进行map-side聚合;否则,认为该表数据不适合进行map-side聚合,后续数据便不再进行map-side聚合;

至于取多少条,就由第三个checkinterval参数决定;

第四个参数是map-side聚合所用的hash table,占用map task堆内存的最大比例,若超出该值,则会对hash table进行一次flush。

相关推荐
A hao2 分钟前
LED视频处理器中帧率与刷新率的区别
大数据·图像处理·人工智能·音视频
AgentMaster3 分钟前
数据治理工具选型指南:一套可复用的四阶段决策框架
大数据·数据结构·人工智能·算法
数融智域7 分钟前
2026年获客智能体排行榜top前五
大数据·人工智能
Zen200331 分钟前
建文AI·新能源项目管理软件解决方案:从立项→设计→采购→施工→并网,一条线管到底,专为光伏、风电、储能、充电桩工程打造;让新能源项目,交付快一步
大数据·工程项目管理软件·新能源项目管理·光伏项目管理·风电项目管理·充电桩项目管理·储能项目管理软件
haon11221 小时前
树模型在信贷风控怎么用——从决策树到 XGBoost
大数据·人工智能·算法·决策树·机器学习·数据挖掘
长谷深风1111 小时前
Agent 跑了 30 分钟宕机,如何从断点继续?
java·大数据·人工智能·ai·大模型·memory·aiagent
TDengine (老段)1 小时前
TDgpt 使用 — 部署、SQL、算法
大数据·数据库·sql·算法·时序数据库·tdengine·涛思数据
starzy19901 小时前
Flink基础之Transformation API详解及代码实现:从map到connect
大数据·flink
字节跳动数据平台1 小时前
PDF 文档解析算子全新升级!不仅“读得懂”,更让解析结果直接可用
大数据
爱吃火鸡面呀1 小时前
HDFS 文件读取流程深度解析:从客户端请求到数据落地的完整链路
大数据·hadoop·hdfs