Hive手册入门篇

  • Post author:
  • Post category:其他


基于hadoop的数仓工具,将结构画的数据映射为一张表,并提供hsql的查询功能,本质是将sql语句转化为MapReduce的任务进行执行,底层由HDFS来提供数据支持。存储用HDFS,计算用MapReduce



数据类型

数据类型 备注
tinyint 1字节有符号整数,范围-128~127
samllint 2字节有符号整数,范围-32768~32767
int 4字节有符号整数,范围-2^31 ~2^31-1
bigint 8字节有符号整数,范围-2^63 ~2^63-1
float 4字节单精度浮点数
double 8字节双精度浮点数
decimal 任意精度的带符号小数
boolean true/false
string 变长字符串
varchar 变长字符串
char 定长字符串
date 日期
timestamp 时间戳
binary 字节数组,存储变长的二进制数据



集合类型

数据类型 备注
struct 结构体
map 键值对,key和value都是string类型
array 组,可以存多个数据,用逗号隔开

示例:

create table test(
man struct<name:string,agt:int> comment "个人信息"
,marry_info map<string,string> comment "婚姻信息"
,hobby array<string> comment "爱好"
);
-- 插入数据
insert into test
select name_struct("name","小明","age",12)
,str_to_map("小明:单身,时长:3年")
,array("打球,游泳,滑雪")

--查询数据
select 
a.man.name
,a.marry_info["小明"]
,a.hobby[0]
from
test a 



建表

create table test(
id int comment "序号"
,start_time timestamp comment "开始时间"
,name string comment "姓名"
)
comment "小小牛学院信息"



插入

-- 部分字段插入
insert into test(id,name)
select 33882,"刚子"

-- 全字段插入
insert into test
select 33882,current_timestamp(),"刚子"



查询

select * from test a where a.id=33882



删除

-- 覆盖重写
insert overwrite table test
select * from test a where a.id=33



更新