Hive常用命令1-建庫建表建視圖等

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);

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高級知識會在後期一一列出。

Advertisements

你可能會喜歡