国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

超實用的任務優化與斷點執行方案

Android編程精選 ? 來源:個推技術實踐 ? 作者:淵虹 ? 2021-07-05 16:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

隨著大數據時代的快速發展,企業每天需要存儲、計算、分析數以萬億的數據,同時還要確保分析的數據具備及時性、準確性和完整性。面對如此龐大的數據體系,ETL工程師(數據分析師)如何能高效、準確地進行計算并供業務方使用,就成了一個難題。

作為一家數據智能公司,個推在大數據計算領域沉淀了豐富的經驗。本篇文章將對大數據離線計算過程中出現的任務緩慢和任務中斷這兩大痛點問題提出解決思路,期望讀者能夠有所收獲。

一、任務緩慢

“任務執行緩慢”通常是指任務的執行時間超過10個小時,且不能滿足數據使用方對數據及時性的要求。比如業務方需早上就能夠查看T-1的數據,但是因為任務延時,業務方只能等到下午或者傍晚才能查詢、瀏覽T-1的數據,從而無法及時發現經營問題、進行高效決策。因此,對緩慢任務進行優化成了ETL工程師必不可少的一項工作。

在長期的大數據實踐中,我們發現,緩慢任務往往具有一定的共性。只要我們能找到問題所在,并對癥下藥,就能將任務執行時間大大縮短。個推將任務執行緩慢的常見問題歸納為以下四點:邏輯冗余,數據傾斜、大表復用,慢執行器。接下來會對每個痛點進行詳細闡述。

1、邏輯冗余

“邏輯冗余”往往是因為ETL工程師進行數據處理和計算時更關注處理結果是否滿足預期,而未深入考慮是否存在更高效的處理方式,導致原本可通過簡單邏輯進行處理的任務,在實際中卻使用了復雜邏輯來執行。

減少“邏輯冗余”更多地依賴開發者經驗的積累和邏輯思維以及代碼能力的提升。這里分享一些高級函數,希望能夠幫助開發者進一步提升數據處理效率。

Grouping sets

分組統計函數。這個函數可以實現在一段SQL中輸出不同維度的統計數據,避免出現執行多段SQL的情況,具體寫法如下:

358e8860-d55e-11eb-9e57-12bb97331649.png

Lateral view explode()

一行轉多行函數。這個函數只能處理array格式數據,需要配合split()函數使用,具體寫法如下:

3677624c-d55e-11eb-9e57-12bb97331649.png

還有其他一些函數、函數名及功能如下,具體用法需要讀者自行查詢(可登錄hive官網查詢函數大全):

find_in_set() :查找特定字符串在指定字符串中的位置

get_json_object():從json串中抽取指定數據

regexp_extract():抽取符合正則表達的指定字符

regexp_replace() :替換符合正則替換指定字符

reverse():字符串反轉

2、數據傾斜

“數據傾斜”是指在MR計算的過程中某些Map job需要處理的數據量太大、耗時太長,從而導致整個進程長時間無法結束,任務處理進度長時間卡在99%的現象。

針對數據傾斜的情況,開發者們可通過代碼層面進行修改,具體操作如下:

使用group by方式替換count(distinct id ) 方式進行去重統計

進行大小表關聯時使用mapjoin操作或子查詢操作,來替換 join操作

group by出現傾斜需要將分組字段值隨機切分成隨機值+原始值

join操作避免出現笛卡爾積,即關聯字段不要出現大量重復

3、大表復用

“大表復用”,是指對上億甚至幾十億的大表數據進行重復遍歷之后得到類似的結果。避免大表復用就要求ETL工程師進行系統化的思考,能夠通過低頻的遍歷將幾十億的大表數據瘦身到可重復使用的中間小表,且同時支持后續的計算。

因此,工程師需要在工程開發之初就將整體的工程結構考慮進去,并且堅持“大表僅使用一次”的原則,以提升整個工程的執行效率。

這里介紹一個實戰中的例子,供讀者參考:

36838676-d55e-11eb-9e57-12bb97331649.png

geqi_win_tmp表中數據:5000萬

4、慢執行器

“慢執行器”是指數據體量過于龐大時,Hive的底層計算邏輯已經無法快速遍歷單一分區中的所有數據。

由于在同等資源的情況下,Spark進行數據遍歷的效率遠高于MapReduce;且Spark任務對資源的搶占程度遠大于MapReduce任務,可在短時間內占用大量資源高效完成任務,之后快速釋放資源,以提高整個集群任務的執行效率。

因此,針對該情況,開發者可考慮使用pyspark等更為高效的計算引擎進行數據的快速遍歷。同時,開發者也需要有意識地加強思維訓練,養成良好的開發習慣,在面對海量數據時探索更快、更準、更體系化的計算和處理方式。

二、任務中斷

因為各種各樣的原因,線上任務經常會出現被kill掉然后重新執行的情況。任務重新執行會嚴重浪費集群資源,同時使得數據計算結果延遲從而影響到業務方的數據應用。如何避免這種現象的發生呢?個推是這樣解決該問題的。

個推的定時任務是基于Azkaban調度系統開發的,個推的數據分析師主要使用shell、HSQL、MySQL、Pypark四種代碼進行數據處理,將原始日志清洗、計算,然后生成公共層、報表層數據,最終供業務方使用。

因此個推需要設定四種代碼執行器以支持腳本中對不同類型代碼的處理。這里主要對其中的三個核心內容進行介紹:代碼塊輸入、執行函數以及循環器。

1、代碼塊輸入

一般情況下,腳本中的shell、HSQL、MySQL、pypark代碼會按照順序直接執行,不能選擇性執行。在實踐中,我們將代碼塊以字符串的方式賦值給shell中的變量,并在字符串的開頭標記是何種類型的代碼,代碼執行到具體步驟時只有賦值操作,不會解析執行,具體如下:

? 執行HSQL代碼塊

36d0d5a2-d55e-11eb-9e57-12bb97331649.png

? 執行shell代碼塊

36dda980-d55e-11eb-9e57-12bb97331649.png

? 執行mysql代碼塊

36eb8d48-d55e-11eb-9e57-12bb97331649.png

? 執行pyspark代碼塊

36f7b424-d55e-11eb-9e57-12bb97331649.png

如此,就實現了將不同的代碼放入對應的step_n中。在后續的執行器中這些代碼能夠直接執行,開發者只需要關心邏輯處理即可。

2、執行函數

執行函數是對shell中變量step_n當中的字符串進行代碼解析并執行。不同類型的代碼塊解析方式不同,因此需要定義不同的執行函數。函數一般單獨放在整個工程的配置文件中,通過source的方式調用,具體函數定義如下:

3703effa-d55e-11eb-9e57-12bb97331649.png

Hive、MySQL以及shell的執行函數比較簡單,通過hive-e 或者eval的方式就可以直接執行。pyspark需要配置相應的隊列、路徑、參數等,還需要在工程中增spark.py文件才能執行,此處不做贅述。

3、循環器

循環器是斷點執行功能的核心內容,是步驟的控制器。循環器通過判斷shell變量名確定需要執行哪一步,通過判斷變量中字符串內容確定使用何種函數解析代碼并執行。

下圖是參考案例,代碼如下:

37159a0c-d55e-11eb-9e57-12bb97331649.png

開發者需要在腳本的開始定義好整個代碼的結束步驟,以確保循環器正常運行;同時,可將開始步驟當作腳本參數傳入,這樣就很好地實現了任務的斷點執行功能。

總結

ETL工程中的任務緩慢和任務中斷問題是每個大數據工程師都需要面對和解決的。本文基于個推大數據實踐,針對任務緩慢和任務中斷問題提出了相應解決思路和方案,希望能夠幫助讀者在任務優化以及ETL工程開發方面擴寬思路,提高任務執行效率,同時降低任務維護的人力成本和機器成本。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲
    +關注

    關注

    13

    文章

    4791

    瀏覽量

    90064
  • SQL
    SQL
    +關注

    關注

    1

    文章

    789

    瀏覽量

    46700
  • ETL
    ETL
    +關注

    關注

    0

    文章

    25

    瀏覽量

    10118
  • 函數
    +關注

    關注

    3

    文章

    4417

    瀏覽量

    67513
  • 大數據
    +關注

    關注

    64

    文章

    9063

    瀏覽量

    143759

原文標題:ETL工程師必看!超實用的任務優化與斷點執行方案

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于蜂鳥E203的硬件斷點功能添加

    Hardware Trigger Module中即包含Trigger Register用于支持硬件斷點。設置硬件斷點后,斷點信息存儲于硬件斷點寄存器內,程序
    發表于 10-23 07:11

    工業網關的斷點續傳有哪些作用

    工業網關的斷點續傳功能在工業場景中具有重要作用,它通過在數據傳輸中斷后能夠從中斷點繼續傳輸,而非重新開始,顯著提升了數據傳輸的可靠性、效率和靈活性。以下是其核心作用及具體應用場景的詳細分析: 1.
    的頭像 發表于 10-10 13:58 ?563次閱讀

    UPS電源“不間斷點”全解析:技術原理、關鍵指標與選購避坑指南

    的UPS解決方案。一、不間斷點的本質:毫秒級切換背后的技術博弈“不間斷點”是UPS的核心價值標簽,指市電異常時,UPS輸出電力無感知切換(零延遲)的能力。其技術目
    的頭像 發表于 09-23 08:49 ?1141次閱讀
    UPS電源“不間<b class='flag-5'>斷點</b>”全解析:技術原理、關鍵指標與選購避坑指南

    MES - 制造執行系統

    : 制藥業:遵守嚴格的法規和質量標準 醫療技術:確保最高精度和質量 航空航天業:優化復雜的制造流程 安全行業:嚴格的文檔和質量要求 那么,在這些領域中,MES 又能完成哪些具體任務呢?制造執行
    發表于 09-04 15:36

    Task任務:LuatOS實現“任務級并發”的核心引擎

    Task任務通過其強大的并發處理能力,使LuatOS能夠在單線程環境中模擬多線程執行,通過協程的掛起與恢復機制,實現任務級的并行操作,顯著提升系統效能。 sys核心庫是LuatOS運行框架庫,也是
    的頭像 發表于 08-28 13:49 ?514次閱讀
    Task<b class='flag-5'>任務</b>:LuatOS實現“<b class='flag-5'>任務</b>級并發”的核心引擎

    鴻蒙5開發寶藏案例分享---Web加載時延優化解析

    鴻蒙開發寶藏:Web加載完成時延優化實戰 大家好呀!今天在翻鴻蒙開發者文檔時,發現了一個隱藏的 性能優化寶藏區 ——官方竟然悄悄提供了多實戰案例!尤其是****Web加載完成時延分析這塊,簡直是
    發表于 06-12 17:11

    鴻蒙5開發寶藏案例分享---性能優化案例解析

    發現問題 : // 頁面初始化時同步執行耗時操作 aboutToAppear() { initData(); // 耗時2s的同步操作 } 優化方案 : // 拆分為異步任務
    發表于 06-12 16:36

    HarmonyOS優化應用文件上傳下載慢問題性能優化

    (一)文件上傳 對于大文件斷點續傳上傳,本文采用request(上傳下載)模塊中的request.agent任務托管接口,可以自動實現暫停繼續重試等操作,無需手動將文件分片和記錄上傳分片信息。流程圖
    發表于 05-28 15:06

    工控一體機多線程任務調度優化:聚徽分享破解工業復雜流程高效協同密碼

    在當今工業 4.0 的浪潮下,工業生產正朝著高度自動化、智能化的方向大步邁進。生產流程日益復雜,眾多任務需要同時、高效地協同執行,這對工業控制系統的核心 —— 工控一體機提出了前所未有的挑戰。多線程
    的頭像 發表于 05-28 14:06 ?636次閱讀

    HarmonyOS優化應用文件上傳下載慢問題性能優化

    參考該工程。 (三)文件上傳 對于大文件斷點續傳上傳,本文采用request(上傳下載)模塊中的request.agent任務托管接口,可以自動實現暫停繼續重試等操作,無需手動將文件分片和記錄上傳分片
    發表于 05-27 16:19

    邊緣計算網關支持斷點續傳嗎

    邊緣計算網關通常支持斷點續傳功能 。斷點續傳功能是邊緣計算網關的重要特性之一,它能夠在網絡中斷或設備故障時,將采集到的數據暫存在本地存儲空間中,待網絡恢復后再將數據上傳至云平臺,從而保證數據的完整性
    的頭像 發表于 05-27 15:25 ?779次閱讀

    HarmonyOS優化應用文件上傳下載慢問題性能優化

    查詢指定任務信息、用戶查詢指定隱藏任務信息、系統查詢指定任務信息、系統清理指定任務等。 任務自動恢復:網絡條件不滿足時
    發表于 05-26 15:50

    HarmonyOS優化應用文件上傳下載慢問題性能優化

    參考該工程。 (三)文件上傳 對于大文件斷點續傳上傳,本文采用request(上傳下載)模塊中的request.agent任務托管接口,可以自動實現暫停繼續重試等操作,無需手動將文件分片和記錄上傳分片
    發表于 05-22 10:54

    使用串口dma環形接收+空閑中斷,觸發空閑中斷后進入任務中拷貝數據發現拷貝的數據全為0,怎么處理?

    求助,我使用串口dma環形接收+空閑中斷,默認應該開了緩存,在觸發空閑中斷后進入任務中拷貝數據發現拷貝的數據全為0,但是我掛上調試之后在拷貝之前只要打上斷點斷一次執行之后再執行就正常了
    發表于 03-27 06:17

    【干貨】LLC設計指導-PI方案(經典版)

    LLC設計指導-PI方案(經典版) 部分內容截取......(如果內容有幫助麻煩回帖支持一下哦~) 獲取完整文檔資料可下載附件哦!!!!
    發表于 03-13 14:17