使用Azure数据工厂在不同文件夹中复制不同格式的文件 [英] Copy files of different formats in different folders based using Azure Data Factory

查看:12
本文介绍了使用Azure数据工厂在不同文件夹中复制不同格式的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Azure Data Factory的新手,我正在尝试解决一个特定的用例。我必须将文件从源文件夹复制到目标文件夹,这两个文件夹都在同一个存储帐户中。源文件夹中的文件格式不同(csv、txt、xml),并在末尾附加日期,例如:Addresses_2020-11-01.csv(日期格式:yyyy-mm-dd)

我必须创建一个管道来排序和存储此层次结构中的动态文件夹中的文件:ex:csv->;yyyy->;mm->;dd。我的理解是,首先我必须将文件过滤成不同的格式,然后使用Split函数拆分有_的子字符串,然后根据文件名中的年、月和日动态创建文件夹。以下是我到目前为止创建的管道的屏幕截图:我无法显示该屏幕截图,但链接将打开该屏幕截图。

[过滤文件的管道,并复制到目标文件夹]

我所做的:

  1. 使用GET METADATA提取子项
  2. 将GET METADATA的输出筛选为CSV、TXT和XML文件
  3. 用于包含复制活动的每个活动。此活动将文件从筛选器活动复制到各自的文件夹(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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆