AWS管理数据管道之间的依赖关系

时间:2016-07-20 15:24:58

标签: amazon-web-services jenkins scheduling amazon-data-pipeline

我有一种情况,我希望在其他管道(DP1)之后运行数据管道(DP2)。如果DP1没有成功完成,我根本不想运行DP2,如果是,我希望DP2开始运行。 事实上,将来情况会变得越来越复杂,所以我想有一个选项来轻松配置什么时候以及以何种顺序运行。

我刚刚开始研究这个并偶然发现了一个解决方案,其中包括aws lambda查看S3并在DP1在S3中生成文件时触发DP2。 这是好的,但我宁愿选择更强大的东西。

是否有工具可以为我做这种数据管道的调度/排序?

我想到的是使用Jenkins构建工具作为基础:创建jenkins作业(我可以在Jenkins中管理哪些关系)并使用它们使用aws data pipeline api按需触发数据管道 - 基本上,使用Jenkins作为一种机制来向管道api发出命令并不时检查管道状态,看它们是否正在运行,卡住,成功完成等等......

当然,这需要一些时间来构建,这就是为什么我在问我是否已经使用了一些工具。

2 个答案:

答案 0 :(得分:3)

我知道它有点晚了,但发现了这个。您可以从管道#1触发管道#2。

在Pipeline#1中,将ShellCommandActivity包含为最后一个活动,该活动在成功完成Pipeline#1后激活Pipeline#2。 要执行的命令:aws datapipeline activate-pipeline --pipeline-id#{myPipelineToActivateID}其中myPipelineToActivateID是管道#2的管道ID。

管道#2应该按照"按需创建"管道。初始设置时,将计划设置为在管道激活时运行""而不是按计划进行。

答案 1 :(得分:1)

执行此操作的标准方法是在成功完成DP1时将文件放入S3中​​,作为最后一个活动,然后让DP2有一个Preconditon来检查是否存在此文件。如果您的管道都按固定计划运行,则此方法有效。

您的管道是否按需响应事件?

相关问题