Hive之Hive快捷查询(避免Mapruduce查询)-阿里云开发者社区

开发者社区> 潜水到明朝> 正文

Hive之Hive快捷查询(避免Mapruduce查询)

简介: Hive之Hive快捷查询(避免Mapruduce查询)
+关注继续查看

避免Mapruduce查询

如果你想查询某个表的某一列,Hive默认是会启用MapReduce Job来完成这个任务。
但是,我们可以设置参数来避免Mapruduce查询,下面先介绍一下几个小的知识点,并不Mapruduce查询。

hive (zb_dwd)> select * from  user_id  limit 1;
OK
14510812944   
Time taken: 1.608 seconds, Fetched: 1 row(s)

这种情况下,Hive可以简单地读取user_id对应的存储目录下的文件,然后输出格式化后的内容到控制台。
对于WHERE语句中的过滤条件只是分区字段情况,也是无需MapRuduce过程。

hive (zb_dwd)> select * from  user_id  where date_id='20140512' limit 1;
OK
14510812944 
Time taken: 0.782 seconds, Fetched: 1 row(s)

参数设置

Hive查询的时候,启用MapReduce Job是会消耗系统开销的。对于这个问题,从Hive0.10.0版本开始,对于简单的不需要聚合的类似SELECT

from

###1.
set hive.fetch.task.conversion=more;开启了Fetch任务,所以对于上述简单的列查询不在启用MapReduce job

hive> set hive.fetch.task.conversion=more;
hive> SELECT id, money FROM m limit 10;
OK
1       122
1       185
1       231
1       292
1       316
1       329
1       355
1       356
1       362
1       364
Time taken: 0.138 seconds, Fetched: 10 row(s)

2.

bin/hive设置

bin/hive --hiveconf hive.fetch.task.conversion=more

3.

上面的两种方法都可以开启了Fetch任务,但是都是临时起作用的;如果你想一直启用这个功能,可以在${HIVE_HOME}/conf/hive-site.xml里面加入以下配置

<property>
  <name>hive.fetch.task.conversion</name>
  <value>more</value>
  <description>
    Some select queries can be converted to single FETCH task 
    minimizing latency.Currently the query should be single 
    sourced not having any subquery and should not have
    any aggregations or distincts (which incurrs RS), 
    lateral views and joins.
    1. minimal : SELECT STAR, FILTER on partition columns, LIMIT only
    2. more    : SELECT, FILTER, LIMIT only (+TABLESAMPLE, virtual columns)
  </description>
</property>

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9703 0
今天你并行了吗?POLARDB for MySQL并行查询加速全程详解
在刚刚结束的乌镇世界互联网大会上,阿里云自研POLARDB云原生数据库当选世界互联网领先科技成果。POLARDB既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、自我迭代的优势。
4640 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10862 0
HiveSQL常用查询句式
HiveSQL分组排序取topN; 使用(if / when-then-else); 一列变成多列多行:lateral view explode + split
25 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13418 0
MySql数据库列表数据分页查询、全文检索API零代码实现
前面文档主要介绍了元数据配置,包括表单定义和表关系管理,以及表单数据的录入,本文主要介绍数据查询和分页在crudapi中的实现。数据查询主要是指按照输入条件检索出符合要求的数据列表,如果数据量大的情况下,需要考虑分页。
94 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7096 0
Delta Lake 0.5.0 正式发布,支持包括 Hive/Presto 等多种查询引擎
Delta Lake 0.5.0 于2019年12月13日正式发布,这个版本支持多种查询引擎查询 Delta Lake 的数据,比如常见的 Hive、Presto 查询引擎。并发操作得到改进。
1159 0
+关注
潜水到明朝
Just do IT.
10
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载