HIVE教程

HIVE教程

Hadoop

Hadoop是一個開源框架來存儲和處理大型數據在分佈式環境。它包含兩個模塊,一個是MapReduce,另外一個是Hadoop分佈式文件系統(HDFS).

MapReduce: 它是一種並行編程模型在大型集羣普遍硬件可用於處理大型結構化,半結構化和非結構化數據。

Hadoop生態系統包含了用於協助Hadoop的不同的子項目(工具)模塊,如Sqoop, Pig 和 Hive。
Sqoop: 它是用來在HDFS和RDBMS之間來回導入和導出數據。
Pig: 它是用於開發MapReduce操作的腳本程序語言的平臺。
Hive: 它是用來開發SQL類型腳本用於做MapReduce操作的平臺。

Hive

Hive是一個數據倉庫基礎工具在Hadoop中用來處理結構化數據。它架構在Hadoop之上,總歸爲大數據,並使得查詢和分析方便。 最初,Hive是由Facebook開發,後來由Apache軟件基金會開發,並作爲進一步將它作爲名義下Apache Hive爲一個開源項目。它用在好多不同的公司。例如,亞馬遜使用它在 Amazon Elastic MapReduce。

https://www.yiibai.com/hive/hive_data_types.html#article-start



HIVE語法

創建數據庫
CREATE DATABASE [IF NOT EXISTS] usrdb;
或
CREATE SCHEMA userdb;
下面的查詢用於驗證數據庫列表
SHOW DATABASE;
default
userdb

刪除數據庫
DROP DATABASE IF EXISTS userdb;
以下使用CASCADE查詢刪除數據庫。這意味着要全部刪除相應的表在刪除數據庫之前。
DROP DATABASE IF EXISTS userdb CASCADE
DROP SCHEMA userdb

創建表
下面的數據是一個註釋,行格式字段,如字段終止符,行終止符,並保存的文件類型。
COMMENT 'Employee detail'
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORTED IN TEXT FILE
下面的查詢創建使用上述數據的表明爲employee

CREATE TABLE IF NOT EXISTS Employee( eid int, name String,salary String, destination String)
COMMENT 'Employee details'
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORTED IN TEXT FILE

LOAD DATA 語句
***HIVE中插入數據的語法不是INSERT***
OVERWRITE是可選的,覆蓋表中的數據
PARTITION 可選

在/home/user 目錄中名爲sample.txt 的文件
將給定文本插入表中
LOAD DATA LOCAL INPATH '/home/user/sample.txt'
OVERWRITE INTO TABLE employee;

修改表
ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])
ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])
添加列語句
ALTER TABLE employee ADD COLUMNS ( 
 dept STRING COMMENT 'Department name')
REPLACE語句
ALTER TABLE employee REPLACE COLUMNS ( 
eid INT empid Int, 
ename STRING name String)

DROP TABLE [IF EXISTS] table_name;
DROP TABLE IF EXISTS employee;
驗證表的列表
SHOW TABLES;
 
HIVE分區
ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec
[LOCATION 'LOCATION1'] partition_spec [LOCATION 'LOCATION2']...;
partition_spec:
:(p_column = p_col_value, p_column = p_col_value, ...)

hive> ALTER TABLE employee
> ADD PARTITION (year=’2013’)
> location '/2012/part2012';原文出自【易百教程】,商業轉載請聯繫作者獲得授權,非商業請保留原文鏈接:https://www.yiibai.com/hive/hive_partitioning.html#article-start

重命名分區
ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec

ALTER TABLE employee PARTITION (year='1203')
RENAME TO PARTITION (Yoj='1203');

刪除分區
ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec

ALTER TABLE employee DROP [IF EXISTS]
PARTITION (year='1203')

HIVE內置運算符
HIVE有四種類型的運算符:
關係運算符,算術運算符,邏輯運算符,複雜運算符
A=B,A!=B,A<B,A<=B,A>B,A>=B,A IS NULL,A IS NOT NULL,A LIKE B,A RLIKE B,
A REGEXP B

SELECT * FROM employee WHERE Id=1205;

SELECT * FROM employee WHERE Salary>=40000;
算術運算符
A+B,A-B,A*B,A/B,A%B,A&B,A|B,A^B,~A

SELECT 20+30 ADD FROM temp;
邏輯運算符
A AND B,A&&B,A OR B,A || B,NOT A,!A
SELECT * FROM employee WHERE Salary>40000 && Dept=TP;
複雜的運算符
A[n] A是一個數組,n是一個int  它返回數組A的第n個元素,第一個元素的索引0.
M[key] M是一個Map<K,V>並key的類型爲K  它返回對應於映射中關鍵字的值.
S.x S是一個結構  它返回S的s字段

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章