Parquet性能測(cè)試之項(xiàng)目實(shí)踐中應(yīng)用測(cè)試-創(chuàng)新互聯(lián)

因?yàn)閺氖麓髷?shù)據(jù)方面的工作,經(jīng)常在操作過(guò)程中數(shù)據(jù)存儲(chǔ)占空間過(guò)大,讀取速率過(guò)慢等問(wèn)題,我開始對(duì)parquet格式存儲(chǔ)進(jìn)行了研究,下面是自己的一些見解(使用的表都是項(xiàng)目中的,大家理解為寬表即可):

創(chuàng)新互聯(lián)公司長(zhǎng)期為超過(guò)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為武山企業(yè)提供專業(yè)的做網(wǎng)站、成都做網(wǎng)站,武山網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

一、SparkSql中兩種格式存儲(chǔ)的讀寫性能(以資源產(chǎn)品拓?fù)湫畔挶頌槔?br/>1、假設(shè):由于對(duì)于parquet存儲(chǔ)格式來(lái)說(shuō),針對(duì)列式的查詢讀取操作以及列式的計(jì)算性能更高于普通的存儲(chǔ)格式,所以在讀取相同的sql過(guò)程中,表的存儲(chǔ)格式為parquet,讀取的性能更高,所花費(fèi)的時(shí)間更少。
2、測(cè)試步驟:
①將sparksql用的相關(guān)hive表,建立相同的parquet存儲(chǔ)格式的表;
②分別執(zhí)行生成的jar包,進(jìn)行數(shù)據(jù)的整合;
③統(tǒng)計(jì)運(yùn)行的時(shí)間,進(jìn)行比較得出結(jié)論。

3、測(cè)試結(jié)果:(可能是由于資源占用問(wèn)題第三次測(cè)試中parquet存儲(chǔ)格式花費(fèi)時(shí)間較長(zhǎng),但是仍然低于hdfs格式存儲(chǔ)的讀取效率)

次數(shù)|時(shí)間 Parquet格式表 普通格式表
第1次 9分0秒 14分51秒
第2次 9分38秒 14分18秒
第3次 13分9秒 16分14秒
平均時(shí)間 10分36秒 15分08秒

4、測(cè)試分析
此次測(cè)試,使用相同的sparksql進(jìn)行讀取轉(zhuǎn)化,只是所使用的hive 的存儲(chǔ)方式不同,由以上的執(zhí)行時(shí)間來(lái)看,很明顯在讀寫生成資源產(chǎn)品拓?fù)湫畔挶磉^(guò)程中,建表為parquet存儲(chǔ)所花費(fèi)的時(shí)間更少,假設(shè)成立。

二、存儲(chǔ)的格式不同,列式計(jì)算中parquet格式存儲(chǔ)比普通文件存儲(chǔ)進(jìn)行列式運(yùn)算的效率更高
1、假設(shè):由于parquet進(jìn)行列式存儲(chǔ),不需要掃描全部全部的數(shù)據(jù),只讀取每次查詢涉及的列,這樣可以將I/O降低至N倍,另外可以保存每一列的統(tǒng)計(jì)信息實(shí)現(xiàn)部分謂詞下推。因此,我們假設(shè)存儲(chǔ)的格式不同,列式計(jì)算中parquet格式存儲(chǔ)比普通文件存儲(chǔ)進(jìn)行列式運(yùn)算的效率更高
2、測(cè)試步驟:
①對(duì)sparksql中需要處理的表存儲(chǔ)為parquet格式和普通格式;
②執(zhí)行列式運(yùn)算的sparksql;
③對(duì)比執(zhí)行時(shí)間,得出結(jié)論。

3、測(cè)試結(jié)果:
生成文件來(lái)源|執(zhí)行所花費(fèi)的時(shí)間 Parquet格式存儲(chǔ)運(yùn)算耗時(shí) 普通格式存儲(chǔ)耗時(shí) Sql難度分析
七天質(zhì)量跟蹤(Build_mov_fix_7day_fix)用表ksdd_oss.build_mov_fix 2分18秒 7分50秒 Sparksql要對(duì)500萬(wàn)左右的數(shù)據(jù)進(jìn)行多次分組求大值
計(jì)算客戶健康度分?jǐn)?shù)(Cust_Count_Yarn)用表ksdd_oss.cust_health_detail 4分3秒 4分45秒 Sparksql要對(duì)40億的數(shù)據(jù)查一天并進(jìn)行多組復(fù)雜的加減求大值以及判斷最終獲取結(jié)果
客戶健康檔案--開通裝移修監(jiān)控期數(shù)據(jù)(Build_mov_fix_7day_health)用表ksdd_oss.cust_health_detail和ksdd_oss.cust_health_detail_num 12分49秒 4分2秒 Sparksql對(duì)健康檔案詳單和統(tǒng)計(jì)表7天的數(shù)據(jù)進(jìn)行計(jì)算關(guān)聯(lián),兩張表的數(shù)據(jù)在40億以上

4、測(cè)試分析
此次測(cè)試,通過(guò)復(fù)雜的大數(shù)據(jù)量的數(shù)據(jù)進(jìn)行運(yùn)算,寫出結(jié)果。通過(guò)執(zhí)行的時(shí)間,我們可以從里面看出執(zhí)行效率如何。從前兩次測(cè)試結(jié)果來(lái)看parquet格式存儲(chǔ)的優(yōu)勢(shì)明顯高于普通的文件存儲(chǔ)。而從第三個(gè)來(lái)看關(guān)聯(lián)查詢運(yùn)算,數(shù)據(jù)量也比較大,測(cè)試結(jié)果并非我們所假設(shè)的那樣。什么原因造成的上述結(jié)果,經(jīng)過(guò)查詢資料,我們得知在列數(shù)查詢較少的情況下,我們使用parquet格式存儲(chǔ)進(jìn)行查詢的效率很高,包括直接impala查詢大表所消耗的時(shí)間也是相比來(lái)說(shuō)非常短。造成上述原因的主要原因應(yīng)該是所需要進(jìn)行聚合函數(shù)的字段過(guò)多,導(dǎo)致parquet格式存儲(chǔ)的查詢效率極具降低。因此,我們?cè)谶M(jìn)行sparksql執(zhí)行時(shí)要考慮到所使用的表字段的個(gè)數(shù),若是字段過(guò)多,建議使用一般的存儲(chǔ)格式,不宜使用parquet來(lái)存儲(chǔ)。通過(guò)分析,我們對(duì)假設(shè)要分情況來(lái)討論,通過(guò)具體的字段數(shù)來(lái)決定使用哪種方式來(lái)進(jìn)行數(shù)據(jù)格式的存儲(chǔ)。

三、存儲(chǔ)格式不同,Parquet格式存儲(chǔ)所占用的內(nèi)存更小
1、假設(shè):由于parquet存儲(chǔ)格式每一列的成員都是同構(gòu)的,針對(duì)不同的數(shù)據(jù)類型使用更高效的數(shù)據(jù)壓縮算法,進(jìn)一步減少I/O;并且由于每一列的成員的同構(gòu)性,可以使用更加適合CPU pipeline的編碼方式,減少CPU的緩存失效,所以我們假設(shè)存儲(chǔ)格式不同,Parquet格式存儲(chǔ)所占用的內(nèi)存更小。
2、測(cè)試步驟:
①生成相同數(shù)據(jù)量;
②將生成的數(shù)據(jù)按照普通文件格式存儲(chǔ)和parquet格式存儲(chǔ);
③查看生成文件所占用的空間大小,進(jìn)而得出結(jié)論。

3、測(cè)試結(jié)果:

生成文件的來(lái)源|所占用內(nèi)存大小 Parquet存儲(chǔ)文件大小 普通文件大小 相對(duì)節(jié)約比例 節(jié)約空間大小
資源產(chǎn)品拓?fù)湫畔挶碇虚g文件(zyproinfotwo) 3.6G 12.6G 71.4% 9G
資源寬表回寫oracle的數(shù)據(jù)(zydata_to_oracle) 726M 2.3G(2355.2M) 69.2% 1629.2M
拓?fù)鋵?dǎo)入bras數(shù)據(jù)(topo_add_stb) 294.3M 1.2G(1228.8M) 76% 934.5M

4、測(cè)試分析
此次測(cè)試,我們可以通過(guò)測(cè)試的數(shù)據(jù)看出使用Parquet格式來(lái)存儲(chǔ)數(shù)據(jù),占用的空間更小,節(jié)約的空間在70%以上,在我們的應(yīng)用之中針對(duì)大數(shù)據(jù)量的基礎(chǔ)表的存儲(chǔ),我們可以生成parquet格式進(jìn)行存儲(chǔ),在代碼之中我們可以通過(guò)讀取所需的文件解析注冊(cè)成臨時(shí)表再進(jìn)行操作提取所需要的字段。由此看見假設(shè)成立,存儲(chǔ)格式不同,Parquet格式存儲(chǔ)所占用的內(nèi)存更小。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前題目:Parquet性能測(cè)試之項(xiàng)目實(shí)踐中應(yīng)用測(cè)試-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://www.muchs.cn/article44/ceodhe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、自適應(yīng)網(wǎng)站、Google、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站收錄、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開發(fā)