本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 控制台上的基本工作流图。您的工作流程可能拥有几十个组件。
此工作流由计划触发器 Month-close1
启动,该计划触发器启动两个任务 De-duplicate
和 Fix phone numbers
。在成功完成这两个任务后,事件触发器 Fix/De-dupe succeeded
将启动爬网程序 Update schema
。
静态和动态工作流视图
对于每个工作流程,存在静态视图 和动态视图 的概念。静态视图表示工作流程的设计。动态视图是一个运行时视图,包含每个任务和爬网程序的最新运行信息。运行信息包含成功状态和错误详细信息。
当工作流程正在运行时,控制台将显示一个动态视图,它以图形方式指示作业已完成且尚未运行。您还可以使用 AWS Glue API 检索正在运行的工作流程的动态视图。有关更多信息,请参阅 使用 AWS Glue API 查询工作流。
另请参阅
-
工作流程(用于工作流 API)