hive常用命令总结
一、hive 建表
1、普通表
create table db_name.table_name (
name string comment '姓名',
user_id int comment '用户ID'
)
comment '表描述' -----添加表描述
row format delimited fields terminated by '\t' ----指定分隔符(hive默认分隔符为‘/001’、' '、'|')
NULL DEFINED AS '' -----NULL值处理(控制显示为 '',可不处理)
stored as textfile; ----hdfs文件存储格式(常见 rcfile\textfile)
2、分区表
create table db_name.table_name (
name string comment '姓名',
user_id int comment '用户ID'
)
partitioned by (part_name string) ------指定分区字段和数据类型,多个分区用逗号分割
row format delimited fields terminated by '\t'
stored as textfile;
3、外部表
create external table db_name.table_name (
name string comment '姓名',
user_id int comment '用户ID'
)
partitioned by (part_name string)
row format delimited fields terminated by '\t'
stored as textfile
location hdfs_path; ------指定文件存储目录(目录为HDFS目录,也可不指定,使用默认路径)
4、桶表
create table db_name.table_name (
name string comment '姓名',
user_id int comment '用户ID'
)
comment '表描述'
clustered by (name) into 2 buckets -----指定分桶字段和个数 (可指定多个字段,包括分区字段)
row format delimited fields terminated by '\t'
NULL DEFINED AS ''
stored as textfile;
二、视图创建
1、create view view_name
as select * from
db_name.table_name;
三、操作命令
1、show databases; ------查看有哪些数据库
2、use db_name; ------进入指定数据库
3、show tables; ------查看数据库内有哪些表
4、show tables like '*关键字*'; -----支持正则表达式查找
5、show create table table_name; ------查看建表语句
6、desc table_name; -----查看表结构
7、show partitions table_name; ----查看表有哪些分区
8、show partitions table_name partition (part_name='part_name'); ----查看表有哪些分区
9、 drop table table_name; ----- 删除表
10、truncate table table_name; -----清楚表数据 注:不能删除外部表的数据,因为外部表的数据不是存放在hive中,不归hive管理
11、truncate table table_name partition (part_name='part_name'); -----清空指定分区
12、alter table table_name rename to table_name_new; -------修改表名
13、alter table table_name add partition (part_name='part_name'); --------给表增加分区
14、alter table table_name drop partition (part_name='part_name'); --------给表删除分区
15、alter table table_name change column_name column_name_new data_type first|after column_name; ------修改表的字段名称或数据类型
例:alter table test change name name_1 string first; -----将表test的字段name改为name_1,并把字段放在第一个位置
16、alter table table_name set tblpeoperties('comment'='表描述'); ------修改表描述
17、alter table table_name set serdeproperties('field.delim'='\t'); -----修改表的分隔符 注:对已经存在的分区表没有影响,要对已存在分区进行修改要指定分区进行修改
18、alter table table_name set fileformat file_format; ------修改表的存储文件类型 注:对已经存在的分区表没有影响,要对已存在分区进行修改要指定分区进行修改
19、show locks table_name; -----查看表的锁(锁分为共享锁和独占锁)
共享锁:查询操作使用共享锁,共享锁是可以多重、并发使用的
独占锁:修改表操作使用独占锁,它会阻止其他的查询、修改操作
unlock table table_name; ------解锁

浙公网安备 33010602011771号