Azure 数据工厂动态内容获取月份名称

Azure Data factory Dynamic content get month name

我想每个月通过 Azure 数据工厂从网站中提取数据。有什么方法可以通过动态内容功能更改带有月份名称的每个月的 URL 吗?

{{静态URL}}/TestFile_October_2020.zip

{{静态URL}}/TestFile_November_2019.zip

{{静态URL}}/TestFile_December_2020.zip

我们可以在ADF管道中定义一个数组类型的变量,如下
[{"id": 1,"Value": "January"},{"id": 2,"Value": "February"},{"id": 3,"Value": "March"},{"id": 4,"Value": "April"},{"id": 5,"Value": "May"},{"id": 6,"Value": "June"},{"id":7,"Value": "July"},{"id": 8,"Value": "August"},{"id": 9,"Value": "September"},{"id": 10,"Value": "October"},{"id": 11,"Value": "November"},{"id": 12,"Value":"December"}]

  1. 我们可以预先定义几个变量。

  1. 然后我们可以 foreach Array 变量。

  1. 在 ForEach activity 中,我们可以将 @item().value 存储在变量 MonthString

  1. 那么在If条件activity处,我们可以用@equals(item().id,int(subString(utcnow(),5,2)))到select当月的值。这里我们需要使用int()函数将string类型转为int类型

  1. 然后我们可以在activity中设置一个Web True活动。我们可以使用 @concat(variables('BasicURL'),concat('/TestFile_',variables('MonthString')),concat('_',substring(utcnow(),0,4),'.zip')) 来构建查询字符串。

  1. 输出如下:

如果你有 Azure SQL,你可以创建一个 table 来存储这个 Array 并使用 Lookup activity 来查找 Value,这样会更容易。

您可以使用格式为 'MMMM' 的函数“formatDateTime”来获取动态内容中的完整月份名称。你可以参考documentation同样的。