1. 程式人生 > 其它 >大資料--HiveQL語句(基本操作)

大資料--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  TABLE
IF 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;


分桶表,分割槽表,臨時表,檢視,索引等待更新~