使用Azure数据工厂在不同文件夹中复制不同格式的文件 [英] Copy files of different formats in different folders based using Azure Data Factory
本文介绍了使用Azure数据工厂在不同文件夹中复制不同格式的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是Azure Data Factory的新手,我正在尝试解决一个特定的用例。我必须将文件从源文件夹复制到目标文件夹,这两个文件夹都在同一个存储帐户中。源文件夹中的文件格式不同(csv、txt、xml),并在末尾附加日期,例如:Addresses_2020-11-01.csv(日期格式:yyyy-mm-dd)
我必须创建一个管道来排序和存储此层次结构中的动态文件夹中的文件:ex:csv->;yyyy->;mm->;dd。我的理解是,首先我必须将文件过滤成不同的格式,然后使用Split函数拆分有_的子字符串,然后根据文件名中的年、月和日动态创建文件夹。以下是我到目前为止创建的管道的屏幕截图:我无法显示该屏幕截图,但链接将打开该屏幕截图。[过滤文件的管道,并复制到目标文件夹]
我所做的:
- 使用GET METADATA提取子项
- 将GET METADATA的输出筛选为CSV、TXT和XML文件
- 用于包含复制活动的每个活动。此活动将文件从筛选器活动复制到各自的文件夹(csv、txt.)由于通配符包含*.txt、*.csv、*.xml
谢谢!!
推荐答案
如果您只想复制文件,则无需使用不同的格式。您可以只使用二进制格式。大概是这样的:
步骤:
1.使用获取元数据来提取子项2.用于包含复制活动副本到不同文件夹的每个活动。
表达式:@activity('Get Metadata1').output.childItems
汇聚数据集:
表达式:@concat(split(item().name,'.')[1],'/',split(split(item().name,'_')[1],'-')[0],'/',split(split(item().name,'_')[1],'-')[1],'/',split(split(split(item().name,'_')[1],'-')[2],'.')[0])
(适用于您的例如文件名:Addresses_2020-11-01.csv)
源文件夹中的文件:
结果:
这篇关于使用Azure数据工厂在不同文件夹中复制不同格式的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文