我在命名空间中设置了一个运行时参数,它是business_date:${logicalStartTime(yyyy-MM-dd)}。我在流水线中使用了这个参数,并希望在其他流水线中使用相同的参数。有许多背靠背的管道,我希望在第一个管道中计算出的值在所有管道中都是相同的。假设该值计算为'2020-08-20 20:14:11‘,一旦管道1成功,我会将此参数传递给管道2,但由于此参数是在命名空间级别定义的,因此当pipeline2启动时它将被覆盖。
我怎样才能防止这个值被再次计算?
发布于 2020-08-22 02:53:25
如前所述,您可以设置一个管道来触发另一个管道;您可以在第一个管道中设置一个运行时变量,该变量将在触发的管道中设置。您可以按照以下步骤创建入站触发器:

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

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


附加信息
在这个post中,提到了有三种方法可以设置管道的运行时参数:
发布于 2020-09-02 19:17:14
您可以将该值写在第一个管道中的文件中。在所有后续管道中,创建一个参数来读取该文件。这样的话,目标就应该实现了。
发布于 2020-10-29 15:16:33
@Sudhir,您可以浏览首选项。https://cdap.atlassian.net/wiki/spaces/DOCS/pages/477561058/Preferences+HTTP+RESTful+API
您已经在名称空间级别设置了变量,并且根据您的发现,每次使用它时都会对其进行计算。
您可以尝试在应用程序级别设置它吗?并将其传递到下一个管道。我相信在这种情况下,它应该在特定的应用程序(管道)中只计算一次,然后值将被传递。
首选项也可在程序级别上使用。
https://stackoverflow.com/questions/63509570
复制相似问题