如何基于SQL Server值驱动Azure数据工厂

问题描述 投票:0回答:1

我在Azure数据工厂中有一个管道设置,它有一个名为MonthsBack的管道变量设置,假设默认为12。在Until循环中,我构建一个使用此MonthsBack变量生成SQL语句的SQL语句,并在循环中将值减1并将这些SQL语句附加到另一个Collection变量中。在Until块运行之后,我有一个包含12个SQL语句的数组,然后在ForEach块中使用它来执行这12个语句并动态生成12个存​​储在Data Lake中的文件。这一切都很好,完全符合我的要求。

现在我有一个新的要求,而不是有12个SQL语句,我希望能够做的是将MonthsBack变量设置为等于SQL数据库中的某个值,所以理想情况下我会创建一个新的DataSet来查询和检索这个数据库中的值,然后使用它来设置MonthsBack数据库的默认值。我似乎无法弄清楚如何使用给定的任务完成此任务。

我知道我在动态内容窗格中看到了一种引用上一个任务结果的方法,但我不记得以前是怎么做到的。有人可以告诉我或指出有关如何执行此操作的正确文档。谢谢

azure-data-factory
1个回答
1
投票

您想要做的是使用Lookup活动并使用Set Variable活动捕获其输出。

在查找活动中,从所需的数据库中选择任何数据集,然后单击“查询”并编写带有所需值的查询,我将举例说明:

select Max(Id) as Var1 from dbo.YourTable

然后,在Set Variable活动中,您可以使用以下内容捕获Lookup Activity的输出:

@activity('LookupActivityName').output.firstRow.Var1

请注意,我在查询(在查找上)和动态内容(在set变量上)上都使用了Var1。

在此之后,变量将使用您希望从数据库中设置的值进行设置。

Link the set variable after the Lookup

希望这有帮助!

链接到有关数据工厂函数和表达式的文档:https://docs.microsoft.com/en-us/azure/data-factory/control-flow-expression-language-functions

© www.soinside.com 2019 - 2024. All rights reserved.