Hive常用命令1-建庫建表建視圖等
Hive常用命令
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);
Advertisements
# 載入分區表數據:
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';
Advertisements
# 查看含有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高級知識會在後期一一列出。