1.2 语法
 	创建数据库
 		create database if not exists orders;
 	查询建表的方式
 		create table as select 方式:根据查询的结果自动创建表,并将查询结果数据插入新建的表中。
 	克隆表
 		create table like tablename 方式:是克隆表,只复制tablename的表结构。
 	1、创建一个分区表,以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];

 	2、将数据添加到时间为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');
 	3、从一个分区中查询数据:
 		select * from invites where dt='2017-12-07';
 	4、往一个分区表的某一个分区中添加数据:
 		insert overwrite table invites partition (dt='2017-12-07') select id,max(name) from test group by id;
 	5、查看分区的具体情况
 		show partitions tablename; eq: hive> show partitions orders;

 	【
 		精解:
 			这个日志表以dt字段分区,dt是个虚拟的字段,dt下并不存储数据,而是用来分区的,实际数据存储时,dt字段值一样的数据存入同一个子目录中,插入数据或者导入数据时,
 			同一天的数据dt字段赋值一样,这样就实现了数据dt日期分区存储。
 			当hive查询数据时,如果指定了dt筛选条件,那么只需要到对应的分区下去检索数据即可,大大提高了效率。所以对于分区表查询时,尽量添加上分区字段筛选条件。
 	】

  

posted on 2018-01-02 00:45  缪阿布  阅读(170)  评论(0编辑  收藏  举报