大資料--HiveQL語句(基本操作)
一.資料庫操作
1.顯示當前所有資料庫
Show databases;
2.建立資料庫study
CREATE DATABASE IF NOT EXISTS study
COMMENT "This is study database"
LOCATION '/user/hive_db/create_db/';
3.切換資料庫
USE study;
4.刪除資料庫
DROP DATABASE IF EXISTS study;
二.資料表操作
1.建立資料表
(1)概念
資料表是Hive儲存資料的基本單位,Hive資料表主要分為內部表(又叫託管表)和外部表,以內部表和外部表為基礎可以建立分割槽表或分桶表,即內/外部分割槽表或內/外部分桶表。
①內部表
資料由Hive自身管理,資料檔案儲存在Hive配置檔案中引數hive.metastore.warehouse.dir指定的HDFS路徑
(/user/hive_local/warehouse)。當刪除內部表時,內部表的元資料和資料檔案會一同刪除。
②外部表
資料由HDFS管理,資料檔案儲存在建立表時LOCATION子句指定的HDFS路徑,若不指定則儲存在Hive配置檔案中引數hive.metastore.warehouse.dir指定的HDFS路徑。當刪除外部表時,外部表只會刪除元資料,不會刪除資料檔案。
(2)在study中建立內部表managed_table
CREATE TABLEIF NOT EXISTS study.managed_table( staff_id INT COMMENT "This is staffid", staff_name STRING COMMENT "This is staffname", salary FLOAT COMMENT "This is staff salary", hobby ARRAY<STRING> COMMENT "This is staff hobby", deductions MAP<STRING, FLOAT> COMMENT "This is staff deduction", address STRUCT<street:STRING,city:STRING> COMMENT "This is staff address") ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' COLLECTION ITEMS TERMINATED BY '_' MAP KEYS TERMINATED BY ':' LINES TERMINATED BY '\n' STORED AS textfile TBLPROPERTIES("comment"="This is a managed table");
(3)在study中建立外部表external_table
CREATE EXTERNAL TABLE IF NOT EXISTS study.external_table( staff_id INT COMMENT "This is staffid", staff_name STRING COMMENT "This is staffname", salary FLOAT COMMENT "This is staff salary", hobby ARRAY<STRING> COMMENT "This is staff hobby", deductions MAP<STRING, FLOAT> COMMENT "This is staff deduction", address STRUCT<street:STRING,city:STRING> COMMENT "This is staff address") ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' COLLECTION ITEMS TERMINATED BY '_' MAP KEYS TERMINATED BY ':' LINES TERMINATED BY '\n' STORED AS textfile LOCATION '/user/hive_external/external_table/' TBLPROPERTIES("comment"="This is a external table");
2.檢視資料表
(1)顯示當前資料庫所有資料表
SHOW TABLES;
(2)檢視指定資料表的結構資訊(詳細:formatted)
DESC [formatted] managed_table;
3.刪除資料表
DROP TABLE IF EXISTS managed_table PURGE;
分桶表,分割槽表,臨時表,檢視,索引等待更新~