在生產(chǎn)中可以通過Hive表的文件格式及查詢速度的對(duì)比來確定使用哪種文件格式,以節(jié)省空間和提高查詢速度;
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),浚縣企業(yè)網(wǎng)站建設(shè),浚縣品牌網(wǎng)站建設(shè),網(wǎng)站定制,浚縣網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,浚縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
官方參考文檔:https://cwiki.apache.org/confluence/display/HIVE
結(jié)論:
????壓縮效果:
????????最好的是:bzip2;bzip2壓縮比很高,但是占用時(shí)間較久
????? ? 其次:orc和parquet的壓縮幾乎一致;生產(chǎn)建議選擇orc或者parquet;?
????查詢性能:由于數(shù)據(jù)量太小,得出的結(jié)果不準(zhǔn)確;大佬的生產(chǎn)經(jīng)驗(yàn)是parquet的查詢性能要優(yōu)于orc;
Hive支持的存儲(chǔ)格式有:
? ? Text File
????SequenceFile
????RCFile
????Avro Files
????ORC Files
????Parquet
注:Hive默認(rèn)的格式為Text File,可以通過set hive.default.fileformat查看
>?set?hive.default.fileformat; hive.default.fileformat=TextFile
以下將對(duì)每種文件格式進(jìn)行對(duì)比:
創(chuàng)建TextFile表
#原始數(shù)據(jù)格式為TextFile,大小為65M [hadoop@hadoop001?~]$?hadoop?fs?-du?-s?-h?/input/* 64.9?M??194.7?M??/input/part-r-00000 #創(chuàng)建表并加載TextFile數(shù)據(jù) CREATE?EXTERNAL?TABLE?textfile?( cdn?string,? region?string,? level?string,? time?string,? ip?string,? domain?string,? url?string,? traffic?bigint) ROW?FORMAT?DELIMITED?FIELDS?TERMINATED?BY?'\t';? load?data?local?inpath?'/home/hadoop/part-r-00000'?overwrite?into?table?textfile;
可以看到此數(shù)據(jù)大小的64.9M

從上面的表中創(chuàng)建一個(gè)bzip2壓縮的表:
hive支持在創(chuàng)建表的時(shí)候?qū)?shù)據(jù)進(jìn)行壓縮,配置如下:
設(shè)置開啟壓縮:set?hive.exec.compress.output=true;
查看壓縮的格式:set mapreduce.output.fileoutputformat.compress.codec;
配置壓縮的格式:set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.BZip2Codec
#創(chuàng)建一個(gè)bzip2壓縮的表 create?table?textfile_bzip2?as?select?*?from?textfile;
可以看到啟動(dòng)壓縮以后,大小只有13.84M,格式為bz2

創(chuàng)建SequenceFile表
#創(chuàng)建SequenceFile表 CREATE?EXTERNAL?TABLE?seqfile?( cdn?string,? region?string,? level?string,? time?string,? ip?string,? domain?string,? url?string,? traffic?bigint) ROW?FORMAT?DELIMITED?FIELDS?TERMINATED?BY?'\t' stored?as?sequencefile; #加載數(shù)據(jù) insert?into?table?seqfile?select?*?from?textfile; 注:默認(rèn)用load加載數(shù)據(jù)時(shí),由于源文件是textfile,而表格式為sequencefile,所以無法直接加載,要借用一個(gè)臨時(shí)表使用insert?into進(jìn)行加載
可以看到sequencefile格式的表數(shù)據(jù)比原始文件還要大,這是因?yàn)閟equencefile表在創(chuàng)建時(shí),增加了很多額外信息,在生產(chǎn)中不使用此種類型的文件格式;

創(chuàng)建RCFile表
#創(chuàng)建RCFile表 CREATE?EXTERNAL?TABLE?rcfile?( cdn?string,? region?string,? level?string,? time?string,? ip?string,? domain?string,? url?string,? traffic?bigint) ROW?FORMAT?DELIMITED?FIELDS?TERMINATED?BY?'\t' stored?as?rcfile; #加載數(shù)據(jù) insert?into?table?rcfile?select?*?from?textfile;
rcfile的作用僅僅是將存儲(chǔ)空間節(jié)省了10%左右,在生產(chǎn)中不使用此種文件格式;
創(chuàng)建ORC Files:orc是基于rc,是優(yōu)化過后的列式存儲(chǔ)
關(guān)于orc的官方介紹:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC
#創(chuàng)建orc格式的表;默認(rèn)orcfile是采用zlib格式進(jìn)行壓縮
CREATE?EXTERNAL?TABLE?orcfile?(
cdn?string,?
region?string,?
level?string,?
time?string,?
ip?string,?
domain?string,?
url?string,?
traffic?bigint)
ROW?FORMAT?DELIMITED?FIELDS?TERMINATED?BY?'\t'
stored?as?orcfile;
#加載數(shù)據(jù)
insert?into?table?orcfile?select?*?from?textfile;
#創(chuàng)建orc格式的表,指定不采用zlib壓縮;通過"orc.compress"="NONE"指定
create?table?orcfile_none
stored?as?orc?tblproperties?("orc.compress"="NONE")?
as?select?*?from?textfile;orcfile采用zlib壓縮:

orcfile不采用zlib壓縮:

總結(jié):通過對(duì)比,采用zlib壓縮時(shí),節(jié)省的空間更多一點(diǎn)
創(chuàng)建Parquet格式的表
#創(chuàng)建Parquet格式不使用壓縮 create?table?parquetfile stored?as?parquet as?select?*?from?textfile; #創(chuàng)建Parquet格式使用gzip壓縮 set?parquet.compression=gzip; create?table?parquetfile_gzip stored?as?parquet as?select?*?from?textfile; 注:通過對(duì)比,Parquet格式使用gzip壓縮時(shí),可以節(jié)省大量的空間
parquet不經(jīng)過gzip壓縮:可以看到幾乎沒有壓縮多少空間

parquet經(jīng)過gzip壓縮:可以看到壓縮后的數(shù)據(jù)很代;

????
查詢性能對(duì)比:
查詢語句:select count(*) from textfile|rcfile|orcfile|parquetfile where ip='210.35.230.31';
查詢條數(shù):
????textfile:查詢了全表的所有數(shù)據(jù),查詢68085397條數(shù)據(jù);
????rcfile:查詢1973371條數(shù)據(jù);
????orcfile:查詢2883851條數(shù)據(jù);
????parquetfile:查詢了8622602條數(shù)據(jù);
新聞標(biāo)題:Hive的存儲(chǔ)格式對(duì)比
文章鏈接:http://chinadenli.net/article44/gsghhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、ChatGPT、網(wǎng)站營銷、建站公司、App設(shè)計(jì)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)