tft每日頭條

 > 職場

 > 工作流數據分析

工作流數據分析

職場 更新时间:2024-08-26 05:17:46

  讓我們通過現實生活中的類比來消除這些術語的歧義,以更好地理解工作流編排! 工作流數據分析(工作流編排與數據編排)(1)

  Pexels 上的Artem Podrez 拍攝的照片

  W随着現代數據堆棧的興起,業内許多工具開始将自己定位為“數據編排器”而不是“工作流編排器”。本文試圖消除這些術語的歧義。我認為數據編排綽号是一個令人困惑的簡寫術語,工作流編排數據流自動化更好地代表了現代數據堆棧的編排。

  注意:當我在Prefect工作時,本文僅代表我的個人觀點,而不是 Prefect 對該主題的官方觀點。将我個人博客(而不是Prefect 博客)上發布的任何内容視為我自己對該主題的看法。

  目錄:·什麼是工作流編排? ·人們說“數據編排”是什麼意思? ·工作流程編排 — 像我 5 歲一樣解釋 ∘順序、并發和分布式工作流程執行 ∘可擴展和優雅的故障處理 ∘混合執行模型 ·為什麼“工作流程編排”比“數據編排”更容易混淆 ·結論

  什麼是工作流編排? 工作流編排意味着以尊重編排規則業務邏輯的方式管理您的數據流。工作流編排工具允許您将任何代碼轉換為可以調度運行觀察的工作流。

  一個好的工作流程編排工具将為您提供連接到現有數據堆棧的構建塊,并允許您:

  在任務之間傳遞數據,觸發臨時 參數化運行,分配自定義(複雜)時間表當出現故障時提醒您,重試并從失敗中恢複,通過緩存避免昂貴的重新計算,并且将節省您編寫防禦性代碼的時間,隻是為了确保您的工作流程步驟以正确的順序運行,并且您可以找出發生故障的時間(可見性)。 簡而言之,好的工作流程軟件可以消除負面工程。

  當您考慮好的工作流程工具時,您應該考慮當出現問題時它們是如何工作的。隻有當事情失敗時,工作流程才有意義;它們有點像代碼的保險或風險管理 。假設事情會出錯 - 他們會 - 正确的工作流程工具應該可以快速簡單地處理那些“錯誤的事情”并指導您如何解決它們。——耶利米·洛溫,2020 年 5 月

  人們說“數據編排”是什麼意思? 它們通常指的是涉及數據的工作流節點的編排。任何與數據交互的工作流節點,無論是生産數據還是消費數據,都屬于這一類。

  按照這個定義,“數據編排”是編排數據(或數據倉庫)工作流的簡寫,但它仍然描述了工作流編排或數據流自動化。

  工作流程編排——像我 5 歲一樣解釋 想象一下工作流編排工具是您的個人交付服務:

  每個訂單(或購物車)都反映了您的工作流程,每次交付都是一個工作流運行,将東西放入購物車非常簡單方便——你隻需添加幾個裝飾器,你就可以參加比賽了,在每個訂單(或購物車)中,您可能有許多産品被打包到盒子中——您的任務盒子裡的産品可能有不同的口味、形式和形狀,它們反映了您放入購物車的内容——您希望安排什麼以及如何安排風味可能反映您的數據複制作業(例如 Airbyte)、數據轉換(例如 dbt)、數據清理(例如 pandas)、您的 ML 用例(例如 scikit-learn)等等。您的盒子可以随心所欲地小或大- 最終是您的訂單(您的工作流程設計),您盒子裡的産品可能來自不同的供應商,即您的數據工具,例如 dbt、Fivetran、您最喜歡的 ML 框架、您的自定義數據清理庫、收貨地址可以是您的家庭地址(您的數據倉庫)、您的假期地址(您的數據湖庫)或朋友的地址(某些外部數據庫、數據處理服務、微服務或應用程序)。 工作流數據分析(工作流編排與數據編排)(2)

  Pexels 上的Norma Mortenson拍攝的照片

  順序、并發和分布式工作流執行 按照交付服務的類比,在編排中,您可以:

  決定您是要一次性交付訂單還是按順序交付訂單——任務的執行順序,選擇您的交付類型——您可以選擇标準(順序執行)或使用特殊分布式服務的快遞,例如DaskRay(想象多輛送貨卡車),甚至使用異步并發async )在單個線程内加速執行(a單一但更快、更高效的交付者,可以更好地進行上下文切換),确定您的訂單應該如何(禮物)包裝——您可以選擇将其打包子流程Docker容器、Kubernetes作業或 ECS 任務中。 工作流編排将負責交付,即執行。它将确保您的産品按要求進行包裝,按正确的時間表發貨,并為所有箱子使用正确的交付類型——一些包裹需要通過快遞快速交付,而另一些則可以等待并按順序執行。

  擴展和優雅的故障處理 一個好的交付(編排)服務的擴展性非常好。您可以同時安排多個交付,可能有數千輛卡車(甚至是貨船車隊)和數百萬個包裹,它仍然可以讓您對每個包裹的交付狀态進行細粒度的可見性。

  此調度服務是異步高度可用的,可确保即使某些供應商生病或某些卡車發生故障,您的訂單也能發貨。在交付過程中可能會出現許多問題:

  有些盒子可能會損壞,可能需要退回,即重試重新啟動,由于您當時不在家,因此可能需要重新安排整個交付時間。混合執行模型 良好的送貨服務也尊重您的隐私,純粹對元數據進行操作,例如您的送貨地址、送貨類型、包裝形式等。然後它負責傳輸和執行(數據流),但它不能也不應該打開 檢查裡面有什麼的盒子(你的數據)。

  為什麼“工作流程編排”比“數據編排”更容易混淆 一個好的工作流程編排工具(您的交付服務)允許您挑選和選擇您的産品,将它們放入盒子并根據需要定制您的訂單,但最終它負責數據移動(交付,運輸,數據流,執行),而不是關于這些框中的實際産品(您的數據)。因此,術語數據編排是一個令人困惑的簡寫,缺少描述數據流經系統時的實際移動的詞。數據編排、工作編排、數據移動編排、數據處理編排和數據傳輸編排——所有這些都比簡寫的術語“數據編排”要清楚得多。

  工作流程編排是關于數據的,并确保您可以通過各種故障處理機制依賴其執行。它可以讓您了解交付所需的時間。它可以為您提供所有貨件更新(您的工作流程執行日志)。它可以告訴你一個盒子是否成功運送到最終收件人,但它不能直接打開它來檢查裡面産品的品牌、質量和産地。

  借用這篇博文中的類比,編排是關于指示各種框(任務)在執行時在它們之間進行轉換的箭頭,而不是關于本身(您的數據)。它應該保證您的流程和任務在正确的時間以正确的順序以正确的并行度按預期運行。它應該防止錯誤和故障,并幫助您從中恢複并正确解釋執行狀态。

  結論 本文旨在消除這些術語的歧義,并讓您深入了解什麼是工作流編排。如果您仍有任何疑問或想進一步讨論這個話題,您可以加入 Prefect Community Slack:prefect.io/slack。有一個專門的頻道#best-practices-orchestration,您可以在其中向我提問。

  謝謝閱讀!

  ,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关職場资讯推荐

热门職場资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved