hive的初识(基本操做)

 1.2 语法
 	建立数据库
 		create database if not exists orders;
 	查询建表的方式
 		create table as select 方式:根据查询的结果自动建立表,并将查询结果数据插入新建的表中。
 	克隆表
 		create table like tablename 方式:是克隆表,只复制tablename的表结构。
 	一、建立一个分区表,以dt为分区列:
 		create table if not exists invites 
 		(
 			id int,
 			name string
 		) 
 		partitioned by 
 		(
 			dt string
 		) 
 		row format delimited fields terminated by '\t' [stored as textfile];

 	二、将数据添加到时间为2017-12-07这个分区中:
 		load data local inpath '/home/orders.csv' overwrite into table invites partition (dt='2017-12-07');
 		load data local inpath '/home/orders.csv' overwrite into table invites partition (dt='2017-11-11');
 	三、从一个分区中查询数据:
 		select * from invites where dt='2017-12-07';
 	四、往一个分区表的某一个分区中添加数据:
 		insert overwrite table invites partition (dt='2017-12-07') select id,max(name) from test group by id;
 	五、查看分区的具体状况
 		show partitions tablename; eq: hive> show partitions orders;

 	【
 		精解:
 			这个日志表以dt字段分区,dt是个虚拟的字段,dt下并不存储数据,而是用来分区的,实际数据存储时,dt字段值同样的数据存入同一个子目录中,插入数据或者导入数据时,
 			同一天的数据dt字段赋值同样,这样就实现了数据dt日期分区存储。
 			当hive查询数据时,若是指定了dt筛选条件,那么只须要到对应的分区下去检索数据便可,大大提升了效率。因此对于分区表查询时,尽可能添加上分区字段筛选条件。
 	】
相关文章
相关标签/搜索