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。

    工作流程启动后,系统将重置批处理条件,事件触发器开始监控下一个要满足的批处理条件,以重新启动工作流。

    下表显示了批处理大小和批处理时间如何协同运行来触发工作流。

    Batch 大小 Batch 时间 生成的触发条件
    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 个图标,它们分别表示 1 个计划触发器、两个任务、1 个事件成功触发器以及 1 个更新架构的爬网程序。

此工作流由计划触发器 Month-close1 启动,该计划触发器启动两个任务 De-duplicateFix phone numbers。在成功完成这两个任务后,事件触发器 Fix/De-dupe succeeded 将启动爬网程序 Update schema

静态和动态工作流视图

对于每个工作流程,存在静态视图动态视图 的概念。静态视图表示工作流程的设计。动态视图是一个运行时视图,包含每个任务和爬网程序的最新运行信息。运行信息包含成功状态和错误详细信息。

当工作流程正在运行时,控制台将显示一个动态视图,它以图形方式指示作业已完成且尚未运行。您还可以使用 AWS Glue API 检索正在运行的工作流程的动态视图。有关更多信息,请参阅 使用 AWS Glue API 查询工作流