秦皇岛纫惩金融服务有限公司

首頁 > 數(shù)據(jù)百科 > 四種常用數(shù)據(jù)處理方式的比較

四種常用數(shù)據(jù)處理方式的比較

2021-06-11 14:43:41   |  Smartbi大數(shù)據(jù)百科 9967

商業(yè)智能BI產(chǎn)品更多介紹:http://www.aobey.com.cn/

商業(yè)智能BI產(chǎn)品更多介紹:點擊前往

    常用的數(shù)據(jù)處理方式(一)傳統(tǒng)的ETL工具&sma&<p><span style="font-size: 14px;">傳統(tǒng)的ETL工具比如Kettle、Talend、Informatica等,可視化操作,上手比較快,但是對于數(shù)據(jù)量上升導(dǎo)致性能出問題,可優(yōu)化的空間就不是很大了,畢竟底層人家都已經(jīng)幫你封裝好了。</span></p>

    常用的數(shù)據(jù)處理方式(二)Mapreduce&sma&<p><span style="font-size: 14px;">寫Mapreduce進(jìn)行數(shù)據(jù)處理,需要利用java、python等語言進(jìn)行開發(fā)調(diào)試,沒有可視化操作界面來的那么方便,在性能優(yōu)化方面,常見的有在做小表跟大表關(guān)聯(lián)的時候,可以先把小表放到緩存中(通過調(diào)用Mapreduce的api),另外可以通過重寫Combine跟Partition的接口實現(xiàn),壓縮從Map到reduce中間數(shù)據(jù)處理量達(dá)到提高數(shù)據(jù)處理性能。</span></p>

    常用的數(shù)據(jù)處理方式(三)Hive&sma&<p><span style="font-size: 14px;">在沒有出現(xiàn)下面要說的Spark之前,Hive可謂獨占鰲頭,涉及離線數(shù)據(jù)的處理基本都是基于Hive來做的,早期的阿里的云梯1就是充分利用Hive的特性來進(jìn)行數(shù)據(jù)處理Hive采用sql的方式底層基于Hadoop的Mapreduce計算框架進(jìn)行數(shù)據(jù)處理,所以他的優(yōu)化方案很多,常見的場景比如數(shù)據(jù)傾斜,當(dāng)多表關(guān)聯(lián)其中一個表比較小,可以采用mapjoin,或者設(shè)置set hive.groupby.skewindata=true等,當(dāng)碰到數(shù)據(jù)量比較大的時候,可以考慮利用分桶,分區(qū)(分為靜態(tài)分區(qū),動態(tài)分區(qū))進(jìn)行數(shù)據(jù)重新組織存儲,這樣在利用數(shù)據(jù)的時候就不需要整表去掃描,比如淘寶常常對一個業(yè)務(wù)場景利用不同算法進(jìn)行營銷活動,每個算法的營銷活動可以存放到不同的分桶中,這樣統(tǒng)計數(shù)據(jù)的時候就會提高效率。對于hive的性能優(yōu)化我后面會有一個專題進(jìn)行介紹,這里只簡單提一下常用的場景。</span></p>

    常用的數(shù)據(jù)處理方式(四)Spark&sma&<p><span style="font-size: 14px;">Spark基于內(nèi)存計算的準(zhǔn)Mapreduce,在離線數(shù)據(jù)處理中,一般使用Spark sql進(jìn)行數(shù)據(jù)清洗,目標(biāo)文件一般是放在hdf或者nfs上,在書寫sql的時候,盡量少用distinct,group by reducebykey 等之類的算子,要防止數(shù)據(jù)傾斜。在優(yōu)化方面主要涉及配置每臺集群每臺機(jī)器運行task的進(jìn)程個數(shù),內(nèi)存使用大小,cpu使用個數(shù)等。從我個人的角度來看,我覺得spark sql跟上面所說的hive sql差不多,只不過spark sql更加傾向于內(nèi)存處理。但是他不具有較強(qiáng)的模板話,如果修改里面邏輯要重新編譯調(diào)試運行,比較適合改動比較小的業(yè)務(wù)場景,比如數(shù)據(jù)倉庫模型中ods,dwd層的數(shù)據(jù)處理。因為這兩層都是寬表級別的粗處理,目的很簡單旨在數(shù)據(jù)最優(yōu)存儲支撐上層ads層報表開發(fā)。</span></p>

文章目錄

常用的數(shù)據(jù)處理方式(一)傳統(tǒng)的ETL工具&sma&<p><span style="font-size: 14px;">傳統(tǒng)的ETL工具比如Kettle、Talend、Informatica等,可視化操作,上手比較快,但是對于數(shù)據(jù)量上升導(dǎo)致性能出問題,可優(yōu)化的空間就不是很大了,畢竟底層人家都已經(jīng)幫你封裝好了。</span></p>
常用的數(shù)據(jù)處理方式(二)Mapreduce&sma&<p><span style="font-size: 14px;">寫Mapreduce進(jìn)行數(shù)據(jù)處理,需要利用java、python等語言進(jìn)行開發(fā)調(diào)試,沒有可視化操作界面來的那么方便,在性能優(yōu)化方面,常見的有在做小表跟大表關(guān)聯(lián)的時候,可以先把小表放到緩存中(通過調(diào)用Mapreduce的api),另外可以通過重寫Combine跟Partition的接口實現(xiàn),壓縮從Map到reduce中間數(shù)據(jù)處理量達(dá)到提高數(shù)據(jù)處理性能。</span></p>
常用的數(shù)據(jù)處理方式(三)Hive&sma&<p><span style="font-size: 14px;">在沒有出現(xiàn)下面要說的Spark之前,Hive可謂獨占鰲頭,涉及離線數(shù)據(jù)的處理基本都是基于Hive來做的,早期的阿里的云梯1就是充分利用Hive的特性來進(jìn)行數(shù)據(jù)處理Hive采用sql的方式底層基于Hadoop的Mapreduce計算框架進(jìn)行數(shù)據(jù)處理,所以他的優(yōu)化方案很多,常見的場景比如數(shù)據(jù)傾斜,當(dāng)多表關(guān)聯(lián)其中一個表比較小,可以采用mapjoin,或者設(shè)置set hive.groupby.skewindata=true等,當(dāng)碰到數(shù)據(jù)量比較大的時候,可以考慮利用分桶,分區(qū)(分為靜態(tài)分區(qū),動態(tài)分區(qū))進(jìn)行數(shù)據(jù)重新組織存儲,這樣在利用數(shù)據(jù)的時候就不需要整表去掃描,比如淘寶常常對一個業(yè)務(wù)場景利用不同算法進(jìn)行營銷活動,每個算法的營銷活動可以存放到不同的分桶中,這樣統(tǒng)計數(shù)據(jù)的時候就會提高效率。對于hive的性能優(yōu)化我后面會有一個專題進(jìn)行介紹,這里只簡單提一下常用的場景。</span></p>
常用的數(shù)據(jù)處理方式(四)Spark&sma&<p><span style="font-size: 14px;">Spark基于內(nèi)存計算的準(zhǔn)Mapreduce,在離線數(shù)據(jù)處理中,一般使用Spark sql進(jìn)行數(shù)據(jù)清洗,目標(biāo)文件一般是放在hdf或者nfs上,在書寫sql的時候,盡量少用distinct,group by reducebykey 等之類的算子,要防止數(shù)據(jù)傾斜。在優(yōu)化方面主要涉及配置每臺集群每臺機(jī)器運行task的進(jìn)程個數(shù),內(nèi)存使用大小,cpu使用個數(shù)等。從我個人的角度來看,我覺得spark sql跟上面所說的hive sql差不多,只不過spark sql更加傾向于內(nèi)存處理。但是他不具有較強(qiáng)的模板話,如果修改里面邏輯要重新編譯調(diào)試運行,比較適合改動比較小的業(yè)務(wù)場景,比如數(shù)據(jù)倉庫模型中ods,dwd層的數(shù)據(jù)處理。因為這兩層都是寬表級別的粗處理,目的很簡單旨在數(shù)據(jù)最優(yōu)存儲支撐上層ads層報表開發(fā)。</span></p>

商業(yè)智能BI資料包

掃碼添加「小麥」領(lǐng)取 >>>

新一代商業(yè)智能BI工具

覆蓋傳統(tǒng)BI、自助BI、現(xiàn)代BI不同發(fā)展階段,滿足企業(yè)數(shù)字化轉(zhuǎn)型的多樣化需求

讓數(shù)據(jù)成為增長引擎,解鎖行業(yè)領(lǐng)先的智能BI實踐方案!

前往下載
Copyright? 廣州思邁特軟件有限公司  粵ICP備11104361號 網(wǎng)站地圖

電話咨詢

售前咨詢
400-878-3819 轉(zhuǎn)1

售后咨詢
400-878-3819 轉(zhuǎn)2
服務(wù)時間:工作日9:00-18:00

微信咨詢

添加企業(yè)微信 1V1專屬服務(wù)