【问题标题】:Set a variable from a Source Result in Azure Data Factory从 Azure 数据工厂中的源结果设置变量
【发布时间】:2020-04-06 23:47:56
【问题描述】:

我一直在尝试这样做。从指向我的第一个数据库的数据源,我希望有一个日期时间参考,然后我将其用于不同数据库上的另一个源作为参数来限制寄存器的数量。

我会是这样的:

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 进行此类操作,但这让我有点困惑。我找了一些例子。但是,似乎没有任何东西显示我想要实现的场景。

问候,

【问题讨论】:

  • 嗨,我的回答对你有帮助吗?
  • 嗨,这里有什么进展吗?

标签: variables set azure-data-factory


【解决方案1】:

为了满足您的需求,我认为您可以考虑使用 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多