第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

氣流:為每個(gè)文件運(yùn)行 DAG 的正確方法

氣流:為每個(gè)文件運(yùn)行 DAG 的正確方法

有只小跳蛙 2022-07-19 15:18:18
我有以下任務(wù)要解決:文件不定期通過端點(diǎn)發(fā)送并存儲在本地。我需要為這些文件中的每一個(gè)觸發(fā) DAG 運(yùn)行。對于每個(gè)文件,將執(zhí)行相同的任務(wù)總體而言,流程如下所示:對于每個(gè)文件,運(yùn)行任務(wù) A->B->C->D正在批量處理文件。雖然這項(xiàng)任務(wù)對我來說似乎微不足道,但我已經(jīng)找到了幾種方法來做到這一點(diǎn),我對哪一種是“正確的”(如果有的話)感到困惑。第一種模式:使用實(shí)驗(yàn)性 REST API 觸發(fā) dag。也就是說,公開一個(gè) Web 服務(wù),它攝取請求和文件,將其存儲到文件夾中,并使用實(shí)驗(yàn)性 REST api通過將 file_id 作為 conf 來觸發(fā) DAG缺點(diǎn):REST api 仍處于實(shí)驗(yàn)階段,不確定 Airflow 如何處理同時(shí)出現(xiàn)許多請求的負(fù)載測試(這不應(yīng)該發(fā)生,但是,如果發(fā)生了怎么辦?)第二種模式:2 dags。一個(gè)用 TriggerDagOperator 感知和觸發(fā),一個(gè)進(jìn)程。始終使用與之前描述的相同的 ws,但這次它只是存儲文件。然后我們有:第一個(gè) dag:使用 FileSensor 和 TriggerDagOperator 來觸發(fā) N 個(gè)給定 N 個(gè)文件的 dag第二天:任務(wù)A->B->C缺點(diǎn):需要避免將相同的文件發(fā)送到兩個(gè)不同的 DAG 運(yùn)行。例子:文件夾 x.json 中的文件 傳感器找到 x,觸發(fā) DAG (1)傳感器返回并再次安排。如果 DAG (1) 未處理/移動(dòng)文件,則傳感器 DAG 可能會重新安排使用相同文件運(yùn)行的新 DAG。這是不需要的。第三種模式:對于文件中的文件,任務(wù) A->B->C正如在這個(gè)問題中看到的那樣。缺點(diǎn):這可能有效,但我不喜歡 UI 可能會變得混亂,因?yàn)槊看?DAG 運(yùn)行看起來都不一樣,但它會隨著正在處理的文件數(shù)量而改變。此外,如果要處理 1000 個(gè)文件,則運(yùn)行可能會非常難以閱讀第四種模式:使用 subdags我還不確定它們是如何完全工作的,因?yàn)槲铱吹?nbsp;它們不被鼓勵(lì)(最后),但是應(yīng)該可以為每個(gè)文件生成一個(gè) subdag 并讓它運(yùn)行。類似于這個(gè)問題。缺點(diǎn):似乎 subdags 只能與順序執(zhí)行器一起使用。我是否遺漏了什么并且過度思考了一些應(yīng)該(在我看來)非常直截了當(dāng)?shù)氖虑椋恐x謝
查看完整描述

3 回答

?
GCT1015

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊

我知道我遲到了,但我會選擇第二種模式:“2 dags。一個(gè)用 TriggerDagOperator 感知和觸發(fā),一個(gè)進(jìn)程”,因?yàn)椋?/p>

  • 每個(gè)文件都可以并行執(zhí)行

  • 第一個(gè) DAG 可以選擇要處理的文件,重命名它(添加后綴 '_processing' 或?qū)⑵湟苿?dòng)到處理文件夾)

  • 如果我是貴公司的新開發(fā)人員,我打開工作流,我想了解工作流的邏輯是什么,而不是上次處理了哪些文件是動(dòng)態(tài)構(gòu)建的

  • 如果 dag 2 發(fā)現(xiàn)文件存在問題,則將其重命名(使用 '_error' 后綴或?qū)⑵湟苿?dòng)到錯(cuò)誤文件夾)

  • 這是一種處理文件的標(biāo)準(zhǔn)方法,無需創(chuàng)建任何額外的運(yùn)算符

  • 它使 de DAG 冪等且更易于測試。本文中的更多信息

重命名和/或移動(dòng)文件是在每個(gè) ETL 中處理文件的一種非常標(biāo)準(zhǔn)的方法。

順便說一句,我總是推薦這篇文章https://medium.com/bluecore-engineering/were-all-using-airflow-wrong-and-how-to-fix-it-a56f14cb0753。它沒有


查看完整回答
反對 回復(fù) 2022-07-19
?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊

似乎您應(yīng)該能夠使用 bash 運(yùn)算符運(yùn)行批處理器 dag 來清除文件夾,只需確保depends_on_past=True在 dag 上進(jìn)行設(shè)置以確保在下次安排 dag 之前成功清除文件夾。



查看完整回答
反對 回復(fù) 2022-07-19
?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊

我發(fā)現(xiàn)這篇文章:https ://medium.com/@igorlubimov/dynamic-scheduling-in-airflow-52979b3e6b13

其中使用了一個(gè)新的運(yùn)算符,即 TriggerMultiDagRunOperator。我認(rèn)為這符合我的需要。


查看完整回答
反對 回復(fù) 2022-07-19
  • 3 回答
  • 0 關(guān)注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號