好程序員大數據學習路線之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

相關文章
相關標籤/搜索