hive存储格式有几种

这篇文章主要介绍了hive存储格式有几种,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

成都创新互联主要从事网站设计、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务平谷,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

hive的存储格式通常是三种:textfile 、 sequencefile 、 rcfile 、 orc 、自定义 set hive.default.fileformat=TextFile; 默认存储格式为:textfile textFile:普通文本存储,不进行压缩。查询效率较低。

1.sequencefile:

hive提供的二进制序列文件存储,天生压缩。

sequeceFile 和 rcfile都不允许使用load方式加载数据。需要使用insert 方式插入

默认支付压缩、分割,使用便捷、写和查询较快。sequencefile和压缩属性可以搭配使用。

create table if not exists seq1(
id int,
name string
)
row format delimited fields terminated by '\t'
lines terminated by '\n'
stored as sequencefile
;
###加载数据错误方式
load data local inpath '/home/user' into table seq1;
###加载数据正确方式
insert into table seq1
select * from user1
;

2.rcfile:

 rcfile可以进行行列混合压缩,将附近的列和行的数据尽量保存到相同的块里面,该存储格式会提高查询效率,但是写数据较慢。该方式和gzcodeC压缩属性结合不是很好() set mapred.output.compression=true; set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

###创建rcfile表:
create table if not exists rc1(
id int,
name string
)
row format delimited fields terminated by '\t'
stored as rcfile
;
create table if not exists rc2(
id int,
name string
)
row format delimited fields terminated by '\t'
stored as rcfile
;
###加载数据错误方式
load data local inpath '/home/user' into table rc1;
###加载数据正确方式
insert into table rc2
select * from user1
;

3.存储自定义:

数据: seqyd元数据文件: aGVsbG8saGl2ZQ== aGVsbG8sd29ybGQ= aGVsbG8saGFkb29w seqyd文件为base64编码后的内容,decode后数据为:

##hello,hive
##hello,world
##hello,hadoop
create table cus(str STRING)  
stored as  
inputformat 'org.apache.hadoop.hive.contrib.fileformat.base64.Base64TextInputFormat'  
outputformat 'org.apache.hadoop.hive.contrib.fileformat.base64.Base64TextOutputFormat';  
LOAD DATA LOCAL INPATH '/home/cus' INTO TABLE cus;

通常是使用 defaultCodec + rcfile搭配效率最好

感谢你能够认真阅读完这篇文章,希望小编分享的“hive存储格式有几种”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


新闻标题:hive存储格式有几种
本文URL:http://scyanting.com/article/jjsshj.html