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,AB,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并key的类型为K  它返回对应于映射中关键字的值.
S.x S是一个结构  它返回S的s字段

你可能感兴趣的:(HIVE教程)