Azure data factory 使用Azure Data Factory在不同文件夹中复制不同格式的文件
我是Azure数据工厂的新手,我正在尝试解决一个特定的用例。我必须将文件从源文件夹复制到目标文件夹,这两个文件夹都在同一个存储帐户中。源文件夹中的文件具有不同的格式(csv、txt、xml),并在末尾附加日期,例如:addresses_2020-11-01.csv(日期格式:yyyy-mm-dd) 我必须创建一个管道,在这个层次结构中对动态文件夹中的文件进行排序和存储:ex:csv->yyy->mm->dd。我的理解是,首先我必须将文件过滤成不同的格式,然后使用split函数拆分存在的子字符串,然后根据年、月、月动态创建文件夹,和文件名中的日期。下面是我迄今为止创建的管道截图:我无法显示截图,但链接打开了截图 [用于筛选文件并复制到目标文件夹的管道] 我所做的:Azure data factory 使用Azure Data Factory在不同文件夹中复制不同格式的文件,azure-data-factory,azure-data-factory-pipeline,Azure Data Factory,Azure Data Factory Pipeline,我是Azure数据工厂的新手,我正在尝试解决一个特定的用例。我必须将文件从源文件夹复制到目标文件夹,这两个文件夹都在同一个存储帐户中。源文件夹中的文件具有不同的格式(csv、txt、xml),并在末尾附加日期,例如:addresses_2020-11-01.csv(日期格式:yyyy-mm-dd) 我必须创建一个管道,在这个层次结构中对动态文件夹中的文件进行排序和存储:ex:csv->yyy->mm->dd。我的理解是,首先我必须将文件过滤成不同的格式,然后使用split函数拆分存在的子字符串,
谢谢 如果您只想复制文件,则无需使用不同的格式。您可以只使用二进制格式。大概是这样的: 步骤: 1.使用Get元数据提取子项 2.用于包含将活动副本复制到不同文件夹的每个活动 表达式:
@activity('Get Metadata1').output.childItems
复制活动源:
源数据集:
复制活动接收器:
接收器数据集:
表达式:@concat(split(item().name,”)[1],“/”,split(split(item().name,”[1],“-”)[0],“/”,split(split(item().name,”[1],“/”),split(split(split(item().name,”[1],“-”)[2],“))))[0
(这适用于您的eg文件名:addresses_2020-11-01.csv)
源文件夹中的文件:
结果:
谢谢@Steve Zhao。这工作做得很好。在过去的两周里,我一直在努力解决这个问题,而你却让它变得如此简单。谢谢!!你能简要解释一下拆分功能是如何工作的吗。我有点困惑为什么在最后3次迭代中有多个拆分函数。该表达式用于根据文件名获取目标文件夹路径:
csv | txt | xml/year/month/day
。每个分割函数用于获取目标文件夹路径的单个部分。然后使用/
连接它们以构建目标文件夹路径。