我爱编程

Hive编程指南读书笔记0001

2016-08-30  本文已影响153人  jackLee

Hive概述


数据类型和文件格式

Hive支持关系型数据库中的大多数基本数据,同时也支持3种集合数据类型,如下。

Hive基本数据类型

以上是基本数据类型,需要注意的是所有的这些数据类型都是对Java接口的实现,因此,这些数据类型的具体行为细节和Java中对应的数据类型完全一致。如:STRING是Java中的String,FLOAT是Java中的float。另外,和其他SQL一样,以上名称类型都是保留字。

Hive支持structs,maps,arrays这三种集合类型。


Hive集合类型

以上名称类型都是保留字。
以上集合类型是Hive区别于其他大部分关系型数据库的特色。

<code>
CREATE TABLE employees(
name STRING,
salary FLOAT,
subordinates ARRAY<STRING>,
deductions MAP<STRING,FLOAT>,
address STRUCT<street:STRING,city:STRING,state:STRING,zip:INT>
);
</code>

分隔符:

展开阅读


HiveQL:数据定义

HiveQL是Hive的查询语言,它不完全遵循任何一种ANSI SQL标准的修订版,在各大SQL方言中,它可能是MySQL方言最为接近。二者最大不同是:HiveQL不支持行级别的数据的插入,更新和删除操作,也不支持事务,查询延时较高。

所谓HiveQL的数据定义语言是指:用于创建,修改和删除数据库,表,视图,函数和索引,简而言之是对表结构的操作。

所谓HiveQL的数据操作语言是指:用于将数据导入到Hive的表中,以及将数据抽取到文件系统中。还包括对数据的查询,分组,过滤,连接等操作。

拓展阅读:数据定义语言和数据操作语言的区别

Hive下的数据库

注意:Hive定位为数据仓库而不是数据库,Hive和Hbase根据不同的业务需求各司其职。Hive主要用于数据的查询和分析,而并非数据的增删改查CRUD操作。Hbase是面向列的noSQL数据库,用于存储数据。

网友的点评:hbase就是一个存储key-value的大map,hive是一个做统计处理的工具,类似于awk类的。
所以如果你是一条一条读写记录用hbase,如果需要对大量数据做分析统计用hive。

拓展阅读:

上一篇 下一篇

猜你喜欢

热点阅读