【问题标题】:Azure Data factory Dynamic content get month nameAzure 数据工厂动态内容获取月份名称
【发布时间】:2020-12-14 11:16:45
【问题描述】:

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

{{静态 URL}}/TestFile_October_2020.zip

{{静态 URL}}/TestFile_November_2019.zip

{{静态 URL}}/TestFile_December_2020.zip

【问题讨论】:

  • 您是在问如何 1) 确定当前月份,2) 获取月份名称,以及 3) 使用月份名称值构建字符串?
  • 正如@Joel Cochran 所说,您是否想在当月每个月构建一个查询字符串?
  • @JoelCochran 我们希望将静态 URL 部分与当前月份名称和当前年份连接起来。
  • 嗨@Vijayaretnam Menakanan TestFile_November_2019.zip -> TestFile_November_2020.zip?这个改动对吗?
  • @Joseph Xu 是的。根据月份和年份,我们需要生成动态内容

标签: azure azure-data-factory azure-data-factory-2 azure-data-factory-pipeline


【解决方案1】:

我们可以在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 活动中,我们可以将@item().value 存储在变量MonthString

  1. 然后在If Condition活动中,我们可以使用@equals(item().id,int(subString(utcnow(),5,2)))来选择当前月份的值。这里我们需要使用int()函数将string类型转换为int类型。

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

  1. 输出如下:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      • 2011-03-12
      • 1970-01-01
      • 2022-09-29
      相关资源
      最近更新 更多