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>
时间: 2024-11-05 21:41:18

Hive之Hive快捷查询(避免Mapruduce查询)的相关文章

Hive基本操作,DDL操作(创建表,修改表,显示命令),DML操作(Load Insert Select),Hive Join,Hive Shell参数(内置运算符、内置函数)等

1.  Hive基本操作 1.1  DDL操作 1.1.1    创建表 建表语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name    [(col_name data_type[COMMENT col_comment], ...)] +    [COMMENT table_comment]    [PARTITIONED BY (col_namedata_type [COMMENT col_comment], ...)]    [CLUST

NHibernate之旅(4):探索查询之条件查询(Criteria Query)

本节内容 NHibernate中的查询方法 条件查询(Criteria Query) 1.创建ICriteria实例 2.结果集限制 3.结果集排序 4.一些说明 根据示例查询(Query By Example) 实例分析 结语 上一节,我们介绍了NHibernate查询语言的一种:NHibernate查询语言(HQL,NHibernate Query Language),这一节介绍一下条件查询(Criteria API). NHibernate中的查询方法 在NHibernate中提供了三种查

php实现12306火车票余票查询和价格查询

 这篇文章主要介绍了使用php实现的12306火车票余票查询和价格查询功能,大家参考使用吧 name.php 代码如下: <?php return array(         "北京北" => "VAP",         "北京东" => "BOP",         "北京" => "BJP",         "北京南" => &

mybatis级连查询问题-Mybatis级连查询问题数据库查询中有映射到实体就少了

问题描述 Mybatis级连查询问题数据库查询中有映射到实体就少了 "1","管理员权限","管理员权限","15:00:00",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL "1","管理员权限","管理员权限","15:00:00","R_M","资源管理",&

mysql 数据库-关于mysql关联多列查询,分组查询并输出每组数据的中值

问题描述 关于mysql关联多列查询,分组查询并输出每组数据的中值 imei phone key value 863184021544828 lenovoa788t c14 484 355799050650579 samsungi9500 c14 542 355799050650579 samsungi9500 c14 623 868331013987821 huaweiu9508 c14 523 868331013987821 huaweiu9508 c14 498 8683310139878

thinkphp普通查询与表达式查询实例分析_php实例

本文实例讲述了thinkphp普通查询与表达式查询.分享给大家供大家参考.具体分析如下: 一.普通查询方式 a.字符串方式: 复制代码 代码如下: $arr=$m->where("sex=0 and username='gege'")->find();//字符串需要加引号 b.数组方式: 复制代码 代码如下: $data['sex']=0;  $data['username']='gege';  $arr=$m->where($data)->find();//传

Java操作MongoDB模糊查询和分页查询_java

本文实例为大家分享了Java操作MongoDB模糊查询和分页查询,供大家参考,具体内容如下 模糊查询条件: 1.完全匹配 Pattern pattern = Pattern.compile("^name$", Pattern.CASE_INSENSITIVE); 2.右匹配 Pattern pattern = Pattern.compile("^.*name$", Pattern.CASE_INSENSITIVE); 3.左匹配 Pattern pattern =

数据-订单列表查询SQL,查询出订单的数量和订单详细信息(包括订单中的所有商品)

问题描述 订单列表查询SQL,查询出订单的数量和订单详细信息(包括订单中的所有商品) 一对多关系的数据比如订单和订单商品,要一起显示订单和其商品信息,怎么样查询最优 就像淘宝一样,每个订单(order表)对应多个商品(order_item表)时,查询订单信息必须把该订单的商品主要信息也显示出来. 解决方案 使用连接进行查询.有订单肯定就有商品了 涉及到三张表订单表订单商品表商品表select * from (select 订单.*订单商品.* from 订单 left join 订单商品 on

jsp-JSP页面添加一个“查询”按钮,查询条件为“姓名”反正就是字符串就行

问题描述 JSP页面添加一个"查询"按钮,查询条件为"姓名"反正就是字符串就行 JSP页面添加一个"查询"按钮,查询条件为"姓名"反正就是字符串就行,应该怎么写,对应的action和daoa怎么写?求代码~最主要,我是想知道,字符串怎么传值的,数据类型转换吗?所以我想看看代码..我用的是ssh架构,IntelliJ IDEA 10.5工具,拜托各位大神啦 解决方案 就正常的提交请求呀,和增删查改一样的 解决方案二: 很简单,按