hive——DDL操作

--创建语句

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')
发布了95 篇原创文章 · 获赞 0 · 访问量 1061

猜你喜欢

转载自blog.csdn.net/weixin_43006131/article/details/103261006