好程序员大数据学习路线之hive存储格式

  好程序员大数据学习路线之hive存储格式,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;apache

加载数据正确方式

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;oop

建立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搭配效率最好code

相关文章
相关标签/搜索