首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据融合:将运行时参数从一个管道传递到另一个管道

数据融合:将运行时参数从一个管道传递到另一个管道
EN

Stack Overflow用户
提问于 2020-08-21 00:40:14
回答 3查看 607关注 0票数 0

我在命名空间中设置了一个运行时参数,它是business_date:${logicalStartTime(yyyy-MM-dd)}。我在流水线中使用了这个参数,并希望在其他流水线中使用相同的参数。有许多背靠背的管道,我希望在第一个管道中计算出的值在所有管道中都是相同的。假设该值计算为'2020-08-20 20:14:11‘,一旦管道1成功,我会将此参数传递给管道2,但由于此参数是在命名空间级别定义的,因此当pipeline2启动时它将被覆盖。

我怎样才能防止这个值被再次计算?

EN

回答 3

Stack Overflow用户

发布于 2020-08-22 02:53:25

如前所述,您可以设置一个管道来触发另一个管道;您可以在第一个管道中设置一个运行时变量,该变量将在触发的管道中设置。您可以按照以下步骤创建入站触发器:

  1. 创建管线后,选择要运行的最后一个管线。在我的例子中,我有DataFusionQuickstart2管道。

设置管道进入管道应用程序,在左侧,单击"Inbound triggers“->” pipeline triggers“,您将看到可以触发的管道。检查将从DataFusionQuickstart触发DataFusionQuickstart2管道的事件并将其启用。

如果您查看前面的管道触发器,您将在

  1. 选项(右侧)中看到将由DataFusionQuickstar.

触发的管道

  1. 终于设置了运行时参数。

附加信息

在这个post中,提到了有三种方法可以设置管道的运行时参数:

  1. Argument Setter plugin (您可以将该值写入文件中的第一个管道中。在所有后续管道中,创建一个参数来读取file.)
  2. Passing runtime argument when starting a pipeline (描述的那个above)
  3. Setting Preferences (它提供了在系统的各个级别保存配置信息的能力,包括CDAP实例、名称空间、应用程序和程序级别)。
票数 1
EN

Stack Overflow用户

发布于 2020-09-02 19:17:14

您可以将该值写在第一个管道中的文件中。在所有后续管道中,创建一个参数来读取该文件。这样的话,目标就应该实现了。

票数 0
EN

Stack Overflow用户

发布于 2020-10-29 15:16:33

@Sudhir,您可以浏览首选项。https://cdap.atlassian.net/wiki/spaces/DOCS/pages/477561058/Preferences+HTTP+RESTful+API

您已经在名称空间级别设置了变量,并且根据您的发现,每次使用它时都会对其进行计算。

您可以尝试在应用程序级别设置它吗?并将其传递到下一个管道。我相信在这种情况下,它应该在特定的应用程序(管道)中只计算一次,然后值将被传递。

首选项也可在程序级别上使用。

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

https://stackoverflow.com/questions/63509570

复制
相关文章

相似问题

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