91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hive文件輸出如何優化

發布時間:2021-12-10 10:01:44 來源:億速云 閱讀:158 作者:小新 欄目:云計算

這篇文章給大家分享的是有關hive文件輸出如何優化的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

開發ETL工具,抽取數據時遇到這樣一個問題。hive執行sql語句MR執行只用了1分鐘,相應的數據記錄寫到本地文件中間有十多分鐘的時間都在寫文件。細致的研究了一下hive導出文件的方式有兩種方式:

第一種:大家最常用的,最后結果是生成一個大文件。操作方便。因為是單行寫文件,CPU,IO浪費嚴重。

hive -e "use dw;select detail.siid siid, si.basic_class1_id, si.basic_class1_name, si.basic_class2_id, si.basic_class2_name, si.classify, si.bi_name, city_id, city.name city_name, operate_area, object_id, operate_type, operate_type_text, instock_amount, instock_price, instock_total, outstock_amount, outstock_price, outstock_total, stock_amount, stock_cost, stock_total, sale_price, sale_total, profit_total, operate_origin_amount, operate_origin_price, from_unixtime(operate_time,'yyyyMMdd HH:mm:ss'), if(delivery_datekey is null,0,delivery_datekey), financial_origin_adjustment, warehouse_origin_adjustment from dw.dw_wms_operate_flow_detail_v2 detail left join dw.dw_goods_standard_item si on detail.siid=si.id left join dim.dim_city city on city.id=detail.city_id where delivery_datekey>=20151213" > /home/meicai/test/data.txt

第二種方式:INSERT OVERWRITE LOCAL DIRECTORY  '/home/meicai/test'  row format delimited FIELDS TERMINATED BY '\t' 在hive中指定文件后。由mapper或者reduce來寫文件。多線程并發寫文件,結果為多分文件。充分利用CPU和IO等資源。

hive -e "use dw;INSERT OVERWRITE LOCAL DIRECTORY  '/home/meicai/test'  row format delimited FIELDS TERMINATED BY '\t' select detail.siid siid, si.basic_class1_id, si.basic_class1_name, si.basic_class2_id, si.basic_class2_name, si.classify, si.bi_name, city_id, city.name city_name, operate_area, object_id, operate_type, operate_type_text, instock_amount, instock_price, instock_total, outstock_amount, outstock_price, outstock_total, stock_amount, stock_cost, stock_total, sale_price, sale_total, profit_total, operate_origin_amount, operate_origin_price, from_unixtime(operate_time,'yyyyMMdd HH:mm:ss'), if(delivery_datekey is null,0,delivery_datekey), financial_origin_adjustment, warehouse_origin_adjustment from dw.dw_wms_operate_flow_detail_v2 detail left join dw.dw_goods_standard_item si on detail.siid=si.id left join dim.dim_city city on city.id=detail.city_id where delivery_datekey>=20151212"

通過測試第一種需要11分鐘左右,第二種二十秒搞定。

對于第二種產生多個文件進行load到數據庫或者做一次本地的文件合并

cat ./* | sed 's/NULL/\\N/g' > all.data  (將文本中的NULL替換成\N,保障背mysql識別位空)。

或者循環load進數據庫。

感謝各位的閱讀!關于“hive文件輸出如何優化”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜昌市| 钟山县| 临湘市| 凤庆县| 松原市| 霸州市| 兴安县| 图们市| 永年县| 徐闻县| 桦甸市| 绿春县| 曲沃县| 焦作市| 本溪| 栾城县| 福安市| 香河县| 洪洞县| 天气| 南昌市| 石渠县| 桦南县| 宿州市| 车险| 红河县| 万宁市| 临桂县| 城固县| 罗田县| 喜德县| 霸州市| 吉安县| 平阳县| 平利县| 南漳县| 吴堡县| 兰州市| 汉川市| 长治市| 富裕县|