SQL性能问题已经逐步发展成为数据库性能的首要问题,80%的数据库性能问题都是因SQL而导致. 1.1 基数(CARDINALITY) 某个列唯一键(Distinct_Keys)的数量叫作基数.比如性别列,该列只有男女之分,所以这一列基数是2.主键列的基数等于表的总行数.基数的高低影响列的数据分布. 以测试表test为例,owner列和object_id列的基数分别如下所示. SQL> select count(distinct owner),count(distinct object_id),…
1.概述 继续<那些年使用Hive踩过的坑>一文中的剩余部分,本篇博客赘述了在工作中总结Hive的常用优化手段和在工作中使用Hive出现的问题.下面开始本篇文章的优化介绍. 2.介绍 首先,我们来看看Hadoop的计算框架特性,在此特性下会衍生哪些问题? 数据量大不是问题,数据倾斜是个问题. jobs数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联多次汇总,产生十几个jobs,耗时很长.原因是map reduce作业初始化的时间是比较长的. sum,count,max,mi…
https://blog.csdn.net/mrlevo520/article/details/76339075 1.介绍 首先,我们来看看Hadoop的计算框架特性,在此特性下会衍生哪些问题? 数据量大不是问题,数据倾斜是个问题. jobs数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联多次汇总,产生十几个jobs,耗时很长.原因是map reduce作业初始化的时间是比较长的. sum,count,max,min等UDAF,不怕数据倾斜问题,hadoop在map端的汇总合…
1.介绍 首先,我们来看看Hadoop的计算框架特性,在此特性下会衍生哪些问题? 数据量大不是问题,数据倾斜是个问题. jobs数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联多次汇总,产生十几个jobs,耗时很长.原因是map reduce作业初始化的时间是比较长的. sum,count,max,min等UDAF,不怕数据倾斜问题,hadoop在map端的汇总合并优化,使数据倾斜不成问题. count(distinct ),在数据量大的情况下,效率较低,如果是多count(…
一.核心思想 把HQL当做MapReduce程序去优化. 注意,以下SQL不会转为MapReduce执行: 1.select仅查询本表字段. 2.where仅对本表字段做条件过滤. 二.启动Hive 备注:Hive依赖Zookeeper和HDFS,因此需要先开启! 三.Explain Explain显示执行计划,Explain [EXTENDED] query 1.普通查询,不执行mapreduce任务 1.1.普通查询 1.2.不带EXTENDED的Explain 1.3.带EXTENDED的…
推荐理由 随着 互联网的蓬勃发展,并且伴随着产品功能的越来越复杂,对于技术人员来说最大的挑战就是如何在保证业务快速发展的同时,也可保证不断复杂的业务对用户体验的影响,其中对用户来说最重要的体验指标是如何快速.稳定的访问业务网站以及产品功能,既是网站的性能.本系列文章将会从前后端性能指标定义.性能工具使用.产品业务核心性能指标.前后端性能解决方案出发对这个性能优化体系进行完整的阐述. 建议阅读人群: 前端工程师.后端工程师.产品经理 核心性能定义介绍: 由于涉及前后端的性能指标.定义非常多,本文将…
之前的文章<更高的压缩比,更好的性能–使用ORC文件格式优化Hive>中介绍了Hive的ORC文件格式,它不但有着很高的压缩比,节省存储和计算资源之外,还通过一个内置的轻量级索引,提升查询的性能.这个内置的轻量级索引,就是下面所说的Row Group Index. 其实ORC支持的索引不止这一种,还有一种BloomFilter索引,两者结合起来,更加提升了Hive中基于ORC的查询性能. 说明一下:本文使用Hive2.0.0 + hadoop-2.3.0-cdh5.0.0作为测试环境.表lxw…
一.严格模式 通过设置以下参数开启严格模式: >set hive.mapred.mode=strict;[默认为nonstrict非严格模式] 查询限制: 1.对于分区表,必须添加where查询条件来对分区字段进行条件过滤. 2.order by语句必须包含limit输出限制. 3.限制执行笛卡尔积的查询. 二.Hive排序 1.order by:对于查询结果做全排序只允许有一个reduce处理,当数据量较大时,应慎用.严格模式下必须结合limit来使用. 2.sort by:对于单个reduc…
转自http://superlxw1234.iteye.com/blog/1582880 一.    控制hive任务中的map数:  1.    通常情况下,作业会通过input的目录产生一个或者多个map任务. 主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改): 2.    举例: a)    假设input目录下有1个文件a,大小为780M,那…
性能优化 代码应该运行的尽量快,而不是更快 - 理查德 在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性.Core Animation功能和性能都非常强大,但如果你对背后的原理不清楚的话也会降低效率.让它达到最优的状态是一门艺术.在这章中,我们将探究一些动画运行慢的原因,以及如何去修复这些问题. CPU VS GPU 关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器).在现代iOS设备中,都有可以运行不同软件的可编程芯片,但是由于历史…