码迷,mamicode.com
首页 > 其他好文 > 详细

hive操作小记(未完成……)

时间:2015-08-07 11:37:07      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

一、CLI操作:

1、普通设置:

set hive.cli.print.header=true;    // 打印查询头,需要显示设置
set hive.mapred.mode=strict;     // hive strict模式,分区表必须在where中分区过滤,不允许笛卡尔积查询
set hive.mapred.mode=nostrict;    // 与上一行相反 
// 分区已经对应目录结构,因此在数据文件就可以不用存分区的数据了;
set hive.exec.dynamic.partition = true;    // 动态分区
set hive.exec.dynamic.partition.mode = nonstrict;

2、性能设置:

set hive.map.aggr=true // 提高聚合性能,需要更多内存。允许map阶段进行“顶级”聚合,(非顶级聚合将会在执行一个GROUP BY后执行) 《HIVE编程指南》P86
set hive.auto.convert.join=true;    // 开启map-side-join

PS: 分区已经对应目录结构,因此在数据文件就可以不用存分区的数据了。

二、元数据:

1、显示所有表:

SHOW TABLES;
SHOW TABLES IN bi;    // 查看某个schema下所有表
SHOW TABLES ‘*rathan*‘;    // 正则匹配表名

2、表结构:

DESC bi.rathan_table_name;    // 最简,只显示数据列信息
DESC EXTENDED bi.rathan_table_name;     // 查看完整表结构,Detailed Table Information 压缩显示
DESC FORMATTED bi.rathan_table_name;    // 查看完整表结构,Detailed Table Information展开显示
// DESC == DESCRIBE
SHOW PARTITIONS bi.rathan_table_name;    // 查看所有分区
SHOW PARTITIONS bi.rathan_table_name PARTITION(hp_cal_dt=‘2015-08-06‘);     //某个分区是否存在

三、DDL:

1、建表:

CREATE TABLE IF NOT EXISTS bi.rathan_table_name LIKE bi.rathan_another_tablename;

四、DML:

INSERT INTO TABLE bi.rathan_table_name;    // 追加数据
INSERT OVERWRITE TABLE bi.rathan_table_name;    //覆盖数据
// 如果target目录不存在,则创建。使用了OVERWRITE就会把目标文件夹的数据全部删掉,使用INTO则不会删掉(重名的话会把之前文件重命名为“之前文件名_序列号”);

五、其他:

发现了写了很多的关于hive的blog,在此偷偷mark一下,留待慢慢消化:

http://my.oschina.net/leejun2005/blog/308427#OSC_h2_12


hive操作小记(未完成……)

标签:

原文地址:http://my.oschina.net/u/2266556/blog/488967

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!