当前位置: 首页 > news >正文

国外做博彩网站安全吗网站推广论坛

国外做博彩网站安全吗,网站推广论坛,网络专业的网站建设价格,推广公司经营范围目录 HQL语法优化之数据倾斜 数据倾斜概述 分组聚合导致的数据倾斜 优化说明 优化案例 Join导致的数据倾斜 优化说明 优化案例 HQL语法优化之数据倾斜 数据倾斜概述 数据倾斜问题通常指的是参与计算的数据分布不均,即某个key或某些key的数据量远超其他key&#xff…

目录

 HQL语法优化之数据倾斜

 数据倾斜概述

 分组聚合导致的数据倾斜

 优化说明

 优化案例

 Join导致的数据倾斜

 优化说明

 优化案例


 HQL语法优化之数据倾斜

 数据倾斜概述

数据倾斜问题通常指的是参与计算的数据分布不均,即某个key或某些key的数据量远超其他key,导致在shuffle阶段,大量相同key的数据被发送到同一个Reduce节点,从而使该Reduce节点所需的时间远超其他Reduce节点,成为整个任务的瓶颈。Hive中的数据倾斜常见于分组聚合和join操作的场景中。

 分组聚合导致的数据倾斜

 优化说明

在Hive中,未经优化的分组聚合是通过一个MapReduce Job来实现的。Map端负责读取数据并按分组字段进行分区,通过shuffle将数据发送到Reduce端,在此完成最终的聚合运算。如果分组字段的值分布不均,则可能导致大量相同key的数据进入同一个Reduce,从而引起数据倾斜。

针对由分组聚合导致的数据倾斜问题,有两种解决思路:

  1. Map-Side聚合 开启Map-Side聚合后,数据会在Map端完成部分聚合工作。即使原始数据是倾斜的,经过Map端的初步聚合后,发送给Reduce的数据也会更加均匀,从而减轻数据倾斜的问题。相关参数包括:

    • set hive.map.aggr=true; (启用map-side聚合)
    • set hive.map.aggr.hash.min.reduction=0.5; (用于检测源表是否适合进行map-side聚合)
    • set hive.groupby.mapaggr.checkinterval=100000; (用于检测源表是否适合map-side聚合的条数)
    • set hive.map.aggr.hash.force.flush.memory.threshold=0.9; (map-side聚合所用的hash table,占用map task堆内存的最大比例)
  2. Skew-GroupBy优化 Skew-GroupBy优化的原理是启动两个MR任务,第一个MR任务按照随机数分区,将数据分散发送到Reduce,完成部分聚合;第二个MR任务按照分组字段分区,完成最终的聚合。相关参数包括:

    • set hive.groupby.skewindata=true; (启用分组聚合数据倾斜优化)
 优化案例

示例SQL语句

hive (default)> select province_id, count(*) from order_detail group by province_id;

优化思路

  1. Map-Side聚合 设置参数:
    • set hive.map.aggr=true;
    • set hive.groupby.skewindata=false;
  2. Skew-GroupBy优化 设置参数:
    • set hive.groupby.skewindata=true;
    • set hive.map.aggr=false;

 Join导致的数据倾斜

 优化说明

未经优化的join操作,默认使用common join算法,通过一个MapReduce Job完成计算。Map端负责读取join操作所需表的数据,并按照关联字段进行分区,通过shuffle发送到Reduce端,在此完成最终的join操作。如果关联字段的值分布不均,则可能导致大量相同key的数据进入同一个Reduce,从而引起数据倾斜。

对于由join导致的数据倾斜问题,有如下三种解决方案:

  1. Map Join 使用map join算法可以在Map端完成join操作,无需shuffle和reduce阶段,适用于大表join小表时发生数据倾斜的情况。相关参数包括:

    • set hive.auto.convert.join=true; (启动Map Join自动转换)
    • set hive.mapjoin.smalltable.filesize=250000; (Common Join转为Map Join的判断条件)
    • set hive.auto.convert.join.noconditionaltask=true; (开启无条件转Map Join)
    • set hive.auto.convert.join.noconditionaltask.size=10000000; (无条件转Map Join时的小表之和阈值)
  2. Skew Join Skew Join的原理是为倾斜的大key单独启动一个map join任务进行计算,其余key进行正常的common join。相关参数包括:

    • set hive.optimize.skewjoin=true; (启用skew join优化)
    • set hive.skewjoin.key=100000; (触发skew join的阈值)
  3. 调整SQL语句 若参与join的两表均为大表,其中一张表的数据是倾斜的,可以通过调整SQL语句的方式来进行优化。

 优化案例

示例SQL语句

hive (default)> select * from order_detail od join province_info pi on od.province_id=pi.id;

优化思路

  1. Map Join 设置参数:

    • set hive.auto.convert.join=true;
    • set hive.optimize.skewjoin=false;
  2. Skew Join 设置参数:

    • set hive.optimize.skewjoin=true;
    • set hive.auto.convert.join=false;
http://www.mmbaike.com/news/52422.html

相关文章:

  • 重庆网站排名优化公司网络营销推广方案ppt
  • 网站首页模版个人推广平台
  • seo网站描述之间用什么标点符号广告推广赚钱
  • 学做php网站有哪些媒体软文发稿
  • 淮安制作企业网站百度推广登录网址
  • 鞍山制作公司网站的公司搜索引擎优化的目标
  • 邹城手机网站建设百度一下百度知道
  • 怎样网站seo整合营销名词解释
  • 长沙高端网站建设公司百度网址是多少 百度知道
  • 道路建设去什么网站能看到网站如何优化排名软件
  • 如何选网站服务器拓客渠道有哪些
  • 做网站好还是做app好制作公司官网多少钱
  • 怎么做网站管理网络营销有哪几种方式
  • 大庆市建设局网站东莞有限公司seo
  • 网站做授权登录网络推广费用大概价格
  • 怎么注册一个属于自己的网站西安企业seo外包服务公司
  • 做门窗接活的网站上海抖音seo公司
  • 徐水网站建设公司万能bt搜索引擎
  • 400建筑网挂靠官网成都纯手工seo
  • 宜昌营销型网站建设太原seo推广
  • 海拉尔网站开发百度总部地址
  • azure2019怎么做网站怎么收录网站
  • 带有数据库的网站模板百度网站的优化方案
  • 合肥市人民政府办公室招聘seo辅助优化工具
  • 泰安八戒电子商务有限公司石家庄seo网络推广
  • 信息门户网站制作费用网站设计服务企业
  • 网站布局方案营销网站建设哪家快
  • 有哪些可以做问卷赚钱的网站seo排名平台
  • 不花钱可以做网站吗b2b关键词排名工具
  • 有什么网站可以做设计赚钱适合30岁短期培训班