您好,登錄后才能下訂單哦!
這篇文章主要介紹了hive存儲格式有幾種,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
hive的存儲格式通常是三種:textfile 、 sequencefile 、 rcfile 、 orc 、自定義 set hive.default.fileformat=TextFile; 默認存儲格式為:textfile textFile:普通文本存儲,不進行壓縮。查詢效率較低。
hive提供的二進制序列文件存儲,天生壓縮。
sequeceFile 和 rcfile都不允許使用load方式加載數(shù)據(jù)。需要使用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
;
###加載數(shù)據(jù)錯誤方式
load data local inpath '/home/user' into table seq1;
###加載數(shù)據(jù)正確方式
insert into table seq1
select * from user1
;
rcfile可以進行行列混合壓縮,將附近的列和行的數(shù)據(jù)盡量保存到相同的塊里面,該存儲格式會提高查詢效率,但是寫數(shù)據(jù)較慢。該方式和gzcodeC壓縮屬性結合不是很好() set mapred.output.compression=true; set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
###創(chuàng)建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
;
###加載數(shù)據(jù)錯誤方式
load data local inpath '/home/user' into table rc1;
###加載數(shù)據(jù)正確方式
insert into table rc2
select * from user1
;
數(shù)據(jù): seqyd元數(shù)據(jù)文件: aGVsbG8saGl2ZQ== aGVsbG8sd29ybGQ= aGVsbG8saGFkb29w seqyd文件為base64編碼后的內(nèi)容,decode后數(shù)據(jù)為:
##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存儲格式有幾種”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。