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筛选条件,那么只需要到对应的分区下去检索数据即可,大大提高了效率。所以对于分区表查询时,尽量添加上分区字段筛选条件。 】