亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

维西| 铁力市| 图们市| 朝阳区| 徐闻县| 江津市| 息烽县| 阿瓦提县| 阿巴嘎旗| 永兴县| 商丘市| 桦甸市| 长丰县| 石台县| 肃宁县| 宣威市| 红桥区| 胶州市| 基隆市| 三门峡市| 当雄县| 龙川县| 高邑县| 大冶市| 青海省| 丹阳市| 方城县| 石棉县| 富平县| 临夏县| 嵩明县| 和静县| 克拉玛依市| 卢湾区| 花莲县| 房山区| 定结县| 大埔县| 太湖县| 山丹县| 南阳市|