--创建语句
create DATABASE/SCHEMA, TABLE, VIEW, FUNCTION, INDEX
--删除语句
drop DATABASE/SCHEMA, TABLE, VIEW, FUNCTION, INDEX
--清空语句
truncate table
--修改语句
alter DATABASE/SCHEMA, TABLE, VIEW
--查看创建语句
SHOW DATABASES/SCHEMAS, TABLES, TBLPROPERTIES, PARTITIONS, FUNCTIONS, INDEX[ES], COLUMNS, CREATE TABLE
--查看结构语句
desc
怎样查看库的元数据?
desc database 库名
怎样查看建库语句?
show create database 库名
查看建表语句:
desc 表名
创建简单表:
hive表由三种:
内部表:create table 表名(字段 属性)
特性:删除内部表,同时会删除表中数据
外部表:create extaner table(字段 属性)
特性:删除表数据,不会删除表中数据,创建表时需要指定目录。
临时表:create temporary table (字段表名)
特性:临时表存在于会话中,会话结束临时表的数据自动删除
创建分区表:
创建分区表的好处在于,不需要全表查询!分区表可以是内部表亦可以是外部表
示例:
创建一个分区表
create table student_par(
name string
)
partitioned by (age int,sex string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
2)给分区表添加一个分区
--添加partition
alter table student_par add IF NOT EXISTS partition(age=10,sex='boy') location '10/boy'; <-- 指定HDFS的目录格式 不能乱
add partitions的时候,如果不指定location路径就给你创建一个 经验 : 一定要指定我们的分区的location 如果不指定的话会破坏分区格式
--添加partition
alter table student_par add IF NOT EXISTS partition(age=11,sex='girl');
分区表的数据要放在分区中,否则是查询不到。
3)给分区表添加多个分区
--再加两个分区
alter table student_par add IF NOT EXISTS partition (age=11,sex='boy') location '11/boy' partition (age=11,sex='girl') location '11/girl';
4)如何查看任务扫描输入目录
mapreduce.input.fileinputformat.inputdir
--分区表,不扫描全表
select count(*) from student_par where age=10 and sex='girl';
5)删除分区
alter table student_par drop partiton(age=11,sex='boy')