因?yàn)閺氖麓髷?shù)據(jù)方面的工作,經(jīng)常在操作過程中數(shù)據(jù)存儲占空間過大,讀取速率過慢等問題,我開始對parquet格式存儲進(jìn)行了研究,下面是自己的一些見解(使用的表都是項(xiàng)目中的,大家理解為寬表即可):
創(chuàng)新互聯(lián)公司長期為超過千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(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ǎn)品拓?fù)湫畔挶頌槔?br/>1、假設(shè):由于對于parquet存儲格式來說,針對列式的查詢讀取操作以及列式的計算性能更高于普通的存儲格式,所以在讀取相同的sql過程中,表的存儲格式為parquet,讀取的性能更高,所花費(fèi)的時間更少。
2、測試步驟:
①將sparksql用的相關(guān)hive表,建立相同的parquet存儲格式的表;
②分別執(zhí)行生成的jar包,進(jìn)行數(shù)據(jù)的整合;
③統(tǒng)計運(yùn)行的時間,進(jìn)行比較得出結(jié)論。
3、測試結(jié)果:(可能是由于資源占用問題第三次測試中parquet存儲格式花費(fèi)時間較長,但是仍然低于hdfs格式存儲的讀取效率)
次數(shù)|時間 Parquet格式表 普通格式表
第1次 9分0秒 14分51秒
第2次 9分38秒 14分18秒
第3次 13分9秒 16分14秒
平均時間 10分36秒 15分08秒
4、測試分析
此次測試,使用相同的sparksql進(jìn)行讀取轉(zhuǎn)化,只是所使用的hive 的存儲方式不同,由以上的執(zhí)行時間來看,很明顯在讀寫生成資源產(chǎn)品拓?fù)湫畔挶磉^程中,建表為parquet存儲所花費(fèi)的時間更少,假設(shè)成立。
二、存儲的格式不同,列式計算中parquet格式存儲比普通文件存儲進(jìn)行列式運(yùn)算的效率更高
1、假設(shè):由于parquet進(jìn)行列式存儲,不需要掃描全部全部的數(shù)據(jù),只讀取每次查詢涉及的列,這樣可以將I/O降低至N倍,另外可以保存每一列的統(tǒng)計信息實(shí)現(xiàn)部分謂詞下推。因此,我們假設(shè)存儲的格式不同,列式計算中parquet格式存儲比普通文件存儲進(jìn)行列式運(yùn)算的效率更高
2、測試步驟:
①對sparksql中需要處理的表存儲為parquet格式和普通格式;
②執(zhí)行列式運(yùn)算的sparksql;
③對比執(zhí)行時間,得出結(jié)論。
3、測試結(jié)果:
生成文件來源|執(zhí)行所花費(fèi)的時間 Parquet格式存儲運(yùn)算耗時 普通格式存儲耗時 Sql難度分析
七天質(zhì)量跟蹤(Build_mov_fix_7day_fix)用表ksdd_oss.build_mov_fix 2分18秒 7分50秒 Sparksql要對500萬左右的數(shù)據(jù)進(jìn)行多次分組求大值
計算客戶健康度分?jǐn)?shù)(Cust_Count_Yarn)用表ksdd_oss.cust_health_detail 4分3秒 4分45秒 Sparksql要對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對健康檔案詳單和統(tǒng)計表7天的數(shù)據(jù)進(jìn)行計算關(guān)聯(lián),兩張表的數(shù)據(jù)在40億以上
4、測試分析
此次測試,通過復(fù)雜的大數(shù)據(jù)量的數(shù)據(jù)進(jìn)行運(yùn)算,寫出結(jié)果。通過執(zhí)行的時間,我們可以從里面看出執(zhí)行效率如何。從前兩次測試結(jié)果來看parquet格式存儲的優(yōu)勢明顯高于普通的文件存儲。而從第三個來看關(guān)聯(lián)查詢運(yùn)算,數(shù)據(jù)量也比較大,測試結(jié)果并非我們所假設(shè)的那樣。什么原因造成的上述結(jié)果,經(jīng)過查詢資料,我們得知在列數(shù)查詢較少的情況下,我們使用parquet格式存儲進(jìn)行查詢的效率很高,包括直接impala查詢大表所消耗的時間也是相比來說非常短。造成上述原因的主要原因應(yīng)該是所需要進(jìn)行聚合函數(shù)的字段過多,導(dǎo)致parquet格式存儲的查詢效率極具降低。因此,我們在進(jìn)行sparksql執(zhí)行時要考慮到所使用的表字段的個數(shù),若是字段過多,建議使用一般的存儲格式,不宜使用parquet來存儲。通過分析,我們對假設(shè)要分情況來討論,通過具體的字段數(shù)來決定使用哪種方式來進(jìn)行數(shù)據(jù)格式的存儲。
三、存儲格式不同,Parquet格式存儲所占用的內(nèi)存更小
1、假設(shè):由于parquet存儲格式每一列的成員都是同構(gòu)的,針對不同的數(shù)據(jù)類型使用更高效的數(shù)據(jù)壓縮算法,進(jìn)一步減少I/O;并且由于每一列的成員的同構(gòu)性,可以使用更加適合CPU pipeline的編碼方式,減少CPU的緩存失效,所以我們假設(shè)存儲格式不同,Parquet格式存儲所占用的內(nèi)存更小。
2、測試步驟:
①生成相同數(shù)據(jù)量;
②將生成的數(shù)據(jù)按照普通文件格式存儲和parquet格式存儲;
③查看生成文件所占用的空間大小,進(jìn)而得出結(jié)論。
3、測試結(jié)果:
生成文件的來源|所占用內(nèi)存大小 Parquet存儲文件大小 普通文件大小 相對節(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、測試分析
此次測試,我們可以通過測試的數(shù)據(jù)看出使用Parquet格式來存儲數(shù)據(jù),占用的空間更小,節(jié)約的空間在70%以上,在我們的應(yīng)用之中針對大數(shù)據(jù)量的基礎(chǔ)表的存儲,我們可以生成parquet格式進(jìn)行存儲,在代碼之中我們可以通過讀取所需的文件解析注冊成臨時表再進(jìn)行操作提取所需要的字段。由此看見假設(shè)成立,存儲格式不同,Parquet格式存儲所占用的內(nèi)存更小。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前題目:Parquet性能測試之項(xiàng)目實(shí)踐中應(yīng)用測試-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://jinyejixie.com/article44/ceodhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、自適應(yīng)網(wǎng)站、Google、網(wǎng)站設(shè)計公司、網(wǎng)站收錄、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容