等待爬行器和作业作为胶水作业触发器的依赖项

时间:2018-12-05 02:09:14

标签: aws-glue

我正在尝试找出如何编排对爬虫和胶水作业具有上游依赖性的作业。

当前,AWS Glue作业触发器支持其他作业的完成,但不支持搜寻器。如果我想在PrevJobA和CrawlerB完成后执行一项工作,有没有人找到这样做的好方法?

从另一个问题来看,爬虫似乎会发出CloudWatch Events。爬虫是否可以通过发送带有lambda的事件来伪造工作? How to kick off AWS Glue Job when Crawler Completes

2 个答案:

答案 0 :(得分:4)

不幸的是,没有内置选项可以设置Glue搜寻器和作业之间的依赖关系。但是,您可以orchestrate it using StepFunction and Lambdas或自动执行CloudWatch事件和Lambda。

第一个更加灵活和清晰,因为您正在构建一个工作流程,其中包含可以监视的任何复杂步骤。通过调用Glue API通过AWS开发工具包来触发搜寻器和作业。顺便说一句,AWS最近宣布了native support of Glue jobs invocations,因此它不需要一两个Lambda。

通过CloudWatch事件,可以实现一些简单的情况(例如,搜寻器完成时触发作业)。可以使用与其他任何类型的CW事件相同的方式来创建CloudWatch规则,您只需要选择适当的事件类型即可(请参见events for "detail-type":"Glue Crawler State Change")。通过这种方法,以视觉方式监视当前正在发生的事情并不是很方便,但是对于简单的情况,它仍然是很好的解决方案。

除了可以结合使用这两种方法之外,Glue还可以根据定义的时间表触发搜寻器,当CloudWatch规则从Glue Crawler接收到“成功”事件时触发Lambda,然后Lambda触发StepFunction以适当的顺序启动ETL作业。

答案 1 :(得分:2)

自2019年6月以来,您可以在Glue中使用workflows。 通过工作流,您可以通过在Glue作业,触发器和搜寻器之间建立依赖关系来编排ETL作业。

您可以找到有关工作流程here

的更多文档