【问题标题】:How to get files from a subfolder present under nested parent folder in azure data factory?如何从 azure 数据工厂中嵌套父文件夹下的子文件夹中获取文件?
【发布时间】:2021-06-24 20:23:57
【问题描述】:

我的文件夹结构如下,

容器/xx56585/DST_1/2021-03-26/xxxxxxxx.csv

容器/xx56585/DST_1/2021-03-26/xxxxxxxx.ctl

容器/xx56585/DST_2/2021-03-26/yyyyyyyyy.csv

容器/xx56585/DST_2/2021-03-26/yyyyyyyyy.ctl

容器/xx56585/DST_3/2021-03-26/zzzzzzzzz.csv

容器/xx56585/DST_3/2021-03-26/zzzzzzzzz.ctl

容器/xx56585/DST_4/2021-03-26/sssssssssss.csv

容器/xx56585/DST_4/2021-03-26/ssssssssss.ctl

我需要将 .csv 和 .ctl 文件复制到 sFTP 目标并移动这些文件以实现文件夹(在复制活动后的 blob 存储中)

请帮帮我

【问题讨论】:

  • 以下链接有什么不清楚的地方:google.com/search?q=sftp+recursive+copy
  • Joseph Xu:请帮帮我,因为它类似于:stackoverflow.com/questions/64504159/…
  • 您的文件都在xx56585 文件夹中吗? 2021-03-26 文件夹中是否只有两个文件?
  • 2021-03-26文件夹是动态生成的吗?
  • 是的,父文件夹 'xx56585' 下有 4 个子文件夹。每个子文件夹都有 文件夹。我们需要复制此 文件夹下的 .csv 和 .ctl 文件。这些文件夹由 spark(数据块)创建。

标签: azure csv azure-data-factory-2 copy-activity


【解决方案1】:

更新:
我们可以使用 Get Metadata1 来检查 ctl 文件是否存在。 将动态内容@concat('xx56585/',item(),'/',substring(adddays(utcnow(),-3),0,10),'/') 添加到路径中。


我创建了一个简单的测试,将<rundate> 文件夹下的文件复制到目标文件夹。 我的文件夹结构

Input/xx56585/DST_1/2021-03-26/xxxxxxxx.csv

Input/xx56585/DST_2/2021-03-26/yyyyyyyyy.csv

Input/xx56585/DST_3/2021-03-26/zzzzzzzzz.csv

Input/xx56585/DST_4/2021-03-26/sssssssssss.csv

输出:

  1. 定义一个数组类型变量Array1并赋值["DST_1","DST_2","DST_3","DST_4"]

  2. ForEach1活动中,我们可以添加动态内容 @variables('Array1')来遍历这个数组。

  3. ForEach1活动内部,我们可以使用Copy活动通过表达式@concat('xx56585/',item(),'/',substring(adddays(utcnow(),-3),0,10),'/')复制动态路径下的文件。

  4. 我当前的日期是2020-03-29,所以我在上述步骤中使用adddays(utcnow(),-3) 来获取2020-03-26

就是这样。

【讨论】:

  • 非常感谢约瑟夫。它正在工作。我需要将 .ctl 文件与 .csv 文件一起复制到 sFTP。我不认为通配符支持多个参数。复制后,需要将这些 .csv 和 .ctl 文件移动到存档文件夹。对此有何建议?
  • @Sathishkumar Govindasamy 你说得对,通配符不支持多个参数。根据我的经验,我们需要两个复制活动来复制 .csv 和 .ctl 文件。
  • 有什么办法可以根据.ctl文件顺序复制对应的.CSV,而不是把所有.CSV和.CTl一起复制?
  • 对不起,我不熟悉 .ctl 文件。是否要根据ctl文件的内容来判断是否复制这个csv文件?
  • .ctl 文件只是控制文件。是的,只需要使用ctl文件来判断复制这个csv文件。 adf 中是否有任何选项可以实现相同的功能?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-16
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 2011-10-24
  • 1970-01-01
  • 2023-02-06
相关资源
最近更新 更多