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

Pau*_*cas 1 azure-data-factory-2

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

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

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

Mar*_*ita 5

您想要做的是使用查找活动并使用设置变量活动捕获其输出来实现。

在查找活动中,从您想要的数据库中选择任何数据集,然后单击“查询”并编写带有您想要的值的查询,我将举一个例子:

select Max(Id) as Var1 from dbo.YourTable
Run Code Online (Sandbox Code Playgroud)

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

@activity('LookupActivityName').output.firstRow.Var1
Run Code Online (Sandbox Code Playgroud)

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

在此之后,变量将被设置为您想要从数据库中获得的值。

在 Lookup 之后链接 set 变量

希望这有帮助!

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