首页 > 代码库 > 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