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;      ------解锁

    

   

                                          

    

posted @ 2018-05-02 11:33  Windsong的博客  阅读(269)  评论(0)    收藏  举报