Hive常用命令
Apache Hive LOGO
Hive命令关键字不区分大小写
# 查看Hive包含的数据库(注意DATABASES与SCHEMAS均带“S”)
SHOW DATABASES;
SHOW SCHEMAS;
# 创建数据库
CREATE DATABASE demo;
# 选择所使用的数据库(不选择则默认是数据库default)
USE demo;
# 创建表
CREATE TABLE t1 (foo INT, bar STRING);
# 创建分区表
CREATE TABLE p1(foo INT, bar STRING) PARTITIONED BY (dt STRING,provinceid STRING);
# 加载分区表数据:
LOAD DATA LOCAL INPATH '/home/hadoop/input/hive/partitions/file1' INTO TABLE p1 PARTITION (dt='2017-10-01',country='110000');
# 展示所有表
SHOW TABLES;
# 展示分区表中有多少分区(注意PARTITIONS带“S”)
SHOW PARTITIONS p1;
# 查看所有以t开头的表(注意TABLES带“S”)
SHOW TABLES 't*';
SHOW TABLES 't.*';
# 查看所有以t结尾的表
SHOW TABLES '*t';
SHOW TABLES '*.t';
# 查看含有tmp的表
SHOW TABLES '*tmp*';
SHOW TABLES '*.tmp.*';
# 显示表的结构信息(下面2种方法都可以)
DESCRIBE p1;
DESC p1;
# 更新表的名称(从表source修改为表target)
ALTER TABLE source RENAME TO target;
# 添加新一列(添加列new_col)
ALTER TABLE p1 ADD COLUMNS (new_col INT COMMENT 'a comment');
# 修改表的列名(从列new_col修改为列new_col2)
ALTER TABLE p1 CHANGE new_col new_col2 INT;
# 删除表
DROP TABLE p1;
DROP TABLE IF EXISTS p1;
删除外部表时,表中的数据不会被删除。
删除管理表会移除表的元数据和数据,而HDFS上的数据,如果配置了Trash,会移到.Trash/Current(当前操作用户的hdfs的home目录,即如果是用户zyl,则目录为/user/zyl/.Trash/Current)目录下。
# 删除外部表中数据,但要保持外部表的结构定义
hdfs dfs -rmr /user/hive/warehouse/p1;
# 截断表(所谓截断,即是清空表的数据。不能截断非管理表):
TRUNCATE TABLE p1;
TRUNCATE TABLE p1 PARTITION (dt='2017-10-01');
从表或者表分区删除所有行,不指定分区,将截断表中的所有分区,也可以一次指定多个分区,截断多个分区。
# 显示所有函数(注意FUNCTIONS带“S”)
SHOW FUNCTIONS;
# 查看函数用法(注意FUNCTION不带“S”)
DESCRIBE FUNCTION substr;
# 创建视图
CREATE VIEW v1 AS SELECT * FROM t1 WHERE foo !=9999;
# 查看视图详细信息
DESCRIBE EXTENDED v1;
Hive高级知识会在后期一一列出。