从Azure数据工厂中的源结果设置变量



我一直在努力做到这一点。从指向我的第一个数据库的数据源,我希望有一个日期-时间引用,然后将其用作另一个数据库上的另一个源的参数,以限制寄存器的数量。

我会是这样的:

Source_1:实现下一个代码并将结果保存在变量@dateRef中。

SELECT IIF(UpdateDtm > CreatedDtm, UpdateDtm, COALESCE(CreatedDtm,UpdateDtm, cast('1900-01-01' as smalldatetime))) as dateRef
FROM 
(
SELECT MAX(UpdatedDtm) as UpdateDtm, MAX(CreatedDtm) as  CreatedDtm
FROM schema.table
) max_value

Source_2:在我的select语句中使用@dateRef。

select  Client, location
from schema.table
where date >= @dateRef

我是数据工厂的新手,在过去的几年里,我一直在Pentaho工作,在那里我可以做这种操作,但这里有点让我困惑。我找了一些例子。然而,似乎没有任何东西显示出我想要实现的场景。

问候,

为了满足您的需求,我认为您可以考虑使用Azure Function Activity来执行上面的sql:

SELECT IIF(UpdateDtm > CreatedDtm, UpdateDtm, COALESCE(CreatedDtm,UpdateDtm, cast('1900-01-01' as smalldatetime))) as dateRef FROM  (
SELECT MAX(UpdatedDtm) as UpdateDtm, MAX(CreatedDtm) as  CreatedDtm
FROM schema.table ) max_value

然后从Azure Function输出结果,以便在下一步中使用它。无需在变量中设置它。您可以使用@activity('Azure Function1').output引用该值

下一步是在sql中使用上面的输出,不能只将@activity('Azure Function1').output写入sql。您必须使用@concat()方法。例如:

@concat('select  Client, location
from schema.table
where date >=', activity('Azure Function1').output)

最新更新