AWS Glue 中的工作流程概觀 - AWS Glue

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS Glue 中的工作流程概觀

在 AWS Glue 中,您可以使用工作流程來建立和視覺化包含多項爬蟲程式、任務和觸發的複雜性擷取、轉換和載入 (ETL) 活動。每項工作流程都管理其所有任務和爬蟲程式的執行和監控。因為工作流程執行每個元件,所以會記錄執行進度和狀態。這為您提供較大型任務和各步驟詳細資訊的概觀。AWS Glue 主控台以圖形視覺化呈現工作流程。

您可以從 AWS Glue 藍圖建立工作流程,或者您可以使用 AWS Management Console 或 AWS Glue API 一次建置一個元件以手動建立工作流程。如需有關藍圖的詳細資訊,請參閱 AWS Glue 中的藍圖概觀

工作流程中的觸發可啟動任務或爬蟲程式,並可在任務和爬蟲程式完成時引發。使用觸發,您可以建立相互依存之任務和爬蟲程式的大型鏈結。除了定義任務和爬蟲程式相依性的工作流程中的觸發之外,每個工作流程都有啟動觸發。啟動觸發有三種類型:

  • 排程 — 工作流程會根據您定義的排程啟動。排程可以是每日、每週、每月等,也可以是根據 cron 表達式的自訂排程。

  • 隨需 - 工作流程是從 AWS Glue 主控台、API 或 AWS CLI 手動啟動。

  • EventBridge - 工作流程會在單一 Amazon EventBridge 事件或一批 Amazon EventBridge 事件發生時啟動。使用此觸發類型,AWS Glue 可以是事件驅動架構中的事件消費者。任何 EventBridge 事件類型都可以啟動工作流程。一個常見的使用案例是 Amazon S3 儲存貯體中的新物件到達 (S3 PutObject 操作)。

    使用批次事件啟動工作流程表示等到收到指定數量的事件,或直到指定的時間過去。當您建立 EventBridge 事件觸發時,您可以選擇性地指定批次條件。如果您指定批次條件,則必須指定批次大小 (事件數),並且可以選擇性地指定批次時段 (秒數)。預設和最大批次時段為 900 秒 (15 分鐘)。符合的批次條件會先啟動工作流程。當第一個事件到達時,批次時段會啟動。如果您在建立觸發時未指定批次條件,則批次大小預設為 1。

    當工作流程啟動時,批次條件會重設,事件觸發會開始監控下一個批次條件,以便再次啟動工作流程。

    下表顯示批次大小和批次時段如何一起運作以觸發工作流程。

    批次大小 批次視窗 產生的觸發條件
    10 工作流程會在 10 個 EventBridge 事件抵達時觸發,或在第一個事件抵達後 15 分鐘觸發 (以先發生者為準)。(如未指定時段大小,預設值為 15 分鐘。)
    10 2 分鐘 工作流程會在 10 個 EventBridge 事件抵達時觸發,或在第一個事件抵達後 2 分鐘觸發 (以先發生者為準)。
    1 工作流程會在第一個事件到達時觸發。窗口大小是無關緊要的。當您建立 EventBridge 事件觸發時如果未指定批次條件,則批次大小預設為 1。

    GetWorkflowRun API 操作會傳回觸發工作流程的批次條件。

無論工作流程的啟動方式為何,您都可以在建立工作流程時指定並行工作流程執行的最大數目。

如果事件或事件批次啟動最終失敗的工作流程執行,則不再考慮該事件或事件批次來啟動工作流程執行。只有在下一個事件或事件批次到達時,才會啟動新的工作流程執行。

重要

將工作流程中的任務、爬蟲程式和觸發程序總數限制在 100 或更少。如果包含超過 100 個,則嘗試繼續或停止工作流程執行時可能會出現錯誤。

如果工作流程執行會超過為工作流程設定的並行限制,即使符合事件條件,也不會啟動工作流程執行。建議您根據預期的事件量調整工作流程並行限制。AWS Glue 不會重試因超出並行限制而失敗的工作流程執行。同樣地,建議您根據預期的事件數量,在工作流程中調整任務和爬蟲程式的並行限制。

工作流程執行屬性

若要共享和管理整個工作流程回合的狀態,您可以定義預設工作流程回合屬性。這些屬性都是名稱/值對,可供工作流程中的所有任務使用。使用 AWS Glue API,任務可以擷取工作流程回合屬性並修改它們,供工作流程的後續任務使用。

工作流程圖

下圖顯示 AWS Glue 主控台的基本工作流程圖形。您的工作流程可能擁有數十個元件。

顯示工作流程 Graph (圖形) 標籤的主控台螢幕擷取畫面。此圖形包含代表排程觸發的 5 個圖示、2 項任務、一個事件成功觸發,以及更新結構描述的爬蟲程式。

此工作流程是由排程觸發 Month-close1 啟動,這會啟動兩項任務 De-duplicateFix phone numbers。成功完成這兩項任務時,事件觸發 Fix/De-dupe succeeded 會啟動爬蟲程式 Update schema

靜態和動態工作流程檢視

每項工作流程都有「靜態檢視」和「動態檢視」的概念。靜態檢視指出工作流程的設計。動態檢視是包含每項任務和爬蟲程式最新執行資訊的執行時間檢視。執行資訊包含成功狀態和錯誤的詳細資訊。

當工作流程執行時,主控台會顯示動態檢視,以圖形指示已經完成和還在執行的任務。您也可以使用 AWS Glue API 擷取執行中工作流程的動態檢視。如需更多詳細資訊,請參閱 使用 AWS Glue API 查詢工作流程