hive随笔2

Hive SQL基础操作指南
本文详细介绍Hive SQL的基本操作,包括查看建表语句、表的元信息、重命名表、创建及删除数据库等。此外,还深入解析了数据类型修改、分区管理、SQL查询语法,如where、join、group by、order by、sort by、cluster by、distinct等,以及内外部表的区别。

1.查看建表语句
show create table table_name;

2.查看表的元信息
desc table_name;
desc extended table_name;
desc formatted table_name;

3.重命名表
alter table table_name to rename to new_table;

4.创建数据库
cretae database database_name;

5.查看数据库
show databases;

6.删除数据库
drop database tmp;

7.强制删除数据库
drop database tmp cascade;

8.修改数据类型
alter table lv_test change column colxx string;

9.增加分区
alter table test_table add patition (pt=xxx)

10.删除分区
alter table test_table drop if exists partition(…);

11.select后可用语法
where --用于过滤,分区裁剪,指定条件
join --用于两表关联,left outer join,join,mapjoin
group by --用于分组聚合
order by --用于全局排列,要尽量避免排序,是针对全局排序的,即对所有的reduce输出是有序的
sort by --sort by : 当有多个reduce时,只能保证单个reduce输出有序,不能保证全局有序
cluster by = distribute by + sort by
distinct --去重

12.mapjoin
将小表广播分发到各个计算节点的内存里
用于大表关联小表,注意,关联的时候,左表需要是大表
select /+mapjoin/ uid,name from bigtable b left outer join small s on biuid=s.uid
select /+mapjoin/ * from bigtable b left outer join small s on biuid=s.uid
select /+mapjoin/ * from bigtable b left outer join small s on biuid=s.uid where …

13.join
左连接会按照左表匹配关联,不管是否能关联上,左边全部输出,没有匹配的右边表,为null。
select a from A a left join B b on a.id=b.id where b.id is not null

//先join后过滤
select * from city_data d left outer join city_id c on d.city_id=c.city_id where pt=‘join’;
优化写法:
select * from (select * from city_data where pt=‘join’) d left outer join city_id c on d.city_id=c.city_id ;
//这种写法是 先过滤(导致数据量变小)后join

去重:
select distinct city_id from country_info_table limit 100;

排序:
select * from city_data distribute by city_id sort by duration;

14.外部表和普通表 //内部表也叫普通表
create table city_data_as_S as select * from city_data_503 limit 10;
注意:新建表不允许是外部表
select 后面表需要是已经存在的表,建表同时会加载数据。
会启动mapreduce任务去读取源表数据写入新表

create external table if not exists city_data_like like data_503;

注意:
外部表和普通表的区别:
1.外部表的路径可以自定义,内部表的路径需要在 hive/warehouse/目录下
2.删除表后,普通表数据文件和表信息都删除,外部表仅删除表信息
//外部表:删除表,数据不会删除
//内部表:删除表,数据会删除

外部表其他功能:可以映射外部数据源。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值