首页 > 代码库 > Hive

Hive

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

Hive 是一种底层封装了Hadoop 的数据仓库处理工具,使用类SQL 的HiveQL 语言实现数据查询,所有Hive 的数据都存储在Hadoop 兼容的文件系统,Hive 在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS 中Hive 设定的目录下,因此,Hive 不支持对数据的改写和添加,所有的数据都是在加载的时候确定的。

Hive基本数据类型

TINYINT、SMALINT、INT、bigint,BOOLEAN、FLOAT、DOUBLE、STRING等基本数据类型

基本数据类型

类型

描述

示例

TINYINT

1个字节(8位)有符号整数

1

SMALLINT

2字节(16位)有符号整数

1

INT

4字节(32位)有符号整数

1

BIGINT

8字节(64位)有符号整数

1

FLOAT

4字节(32位)单精度浮点数

1.0

DOUBLE

8字节(64位)双精度浮点数

1.0

BOOLEAN

true/false

true

STRING

字符串

‘xia’,”xia”

Hive支持两种数据类型,一类叫原子数据类型,一类叫复杂数据类型。

TINYINT、SMALLINT、INT和BIGINT分别等价于java的byte、short、int和long原子类型

下面我们看看hive使用复杂数据类型的实例,建表:

create table complex

(

 col1 array<int>,

col2 map<string ,int>,

col3 struct<a:string,b:int,c:double> 

);

查询语句:

Select col1[0],col2[‘b’],col3.c from complex;

hive导入数据:

sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.111:1521:DBNAME --username USERNAME --password PASSWORD --verbose -m 1
--table TABLENAME
DBNAME:数据库名
USERNAME:用户名
PASSWORD:密码
TABLENAME:表名

插入数据:

LOAD DATA LOCAL INPATH ‘/home/user/sample.txt‘ OVERWRITE INTO TABLE employee;

 


show tables 查看所有表

导入增量;
sqoop import--hive-import --connect jdbc:oracle:thin:@192.168.56.111:1521:DBNAME --usernameUSERNAME --password PASSWORD --verbose -m 1 --
table TABLENAME --check-column ID--incremental append --last-value 4

 

alter table V_EVT_FIX_LOCAL add partition (yyyymm=‘201707‘) location ‘201707‘;

Hive