首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Amazon数据管道中的管道调用管道

从Amazon数据管道中的管道调用管道
EN

Stack Overflow用户
提问于 2015-04-14 22:28:59
回答 2查看 959关注 0票数 0

我的团队目前正在寻找一个替代一个相当昂贵的ETL工具,目前,我们正在使用它作为一个光荣的调度器。我们使用自己的python代码改进了ETL工具提供的任何集成,所以我确实需要它的调度能力。我们正在考虑的一种选择是数据管道,我目前正在试用该管道。

因此,我的问题是:假设我们有两个数据集来加载产品和销售。每个数据集都需要许多步骤来加载(获取源数据,调用python脚本进行转换,加载到Redshift)。然而,在销售运行之前,产品需要加载,因为我们需要产品成本等来计算利润率。是否有可能在数据管道中有一个“主”管道,先调用产品,等待其成功完成,然后调用销售?如果是这样的话,是怎么做的?如果数据管道不太适合这种类型的工作流,我也愿意接受其他产品建议。感谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-15 09:53:10

我想我可以和这个用例联系起来。无论如何,数据管道本身不做这种依赖管理。但是,可以使用文件先决条件来模拟它。

在本例中,您的子管道可能依赖于启动前存在的文件(作为先决条件)。主管道将根据其活动中执行的某些逻辑创建触发器文件。子管道可能会创建其他触发文件,从而启动后续管道下游。

另一个解决方案是使用简单工作流产品。这具有您正在寻找的特性--但是需要使用Flow SDK进行自定义编码。

票数 1
EN

Stack Overflow用户

发布于 2015-04-17 19:20:48

这是datapipeline的一个基本用例,应该是可能的。您可以使用他们的图形管道编辑器来创建这个管道。解决问题:

有两个数据集:

  1. 产品
  2. 销售量

加载这些数据集的步骤

  1. 获取源数据:例如从S3。为此,请使用S3DataNode
  2. 调用python脚本来转换:使用ShellCommandActivity进行暂存。数据管道为附加到S3DataNodes的ShellCommandActivity隐式地进行数据暂存。您可以使用提供的特殊env变量来使用它们:详细信息
  3. 将输出加载到Redshift:使用RedshiftDatabase

您需要为您需要处理的每个数据集添加上述组件(在本例中为产品和销售)。为了便于管理,您可以在EC2实例上运行这些。

条件:在“销售”运行之前,需要加载“产品”

  • 添加dependsOn关系。在ShellCommandActivity of Sales上添加此字段,该字段引用产品的ShellCommandActivity。请参阅dependsOn字段中的文档。它说:“一个或多个对其他活动的引用必须在此活动开始之前到达已完成的状态”。

提示:在大多数情况下,您不希望在前一天的执行仍然处于活动状态(也就是正在运行)时开始第二天的执行。要避免这种情况,请使用'maxActiveInstances‘字段并将其设置为“1”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29638483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档