如何从sFTP源位置复制特定文件(如果Azure Data Factory中的sFTP接收位置中不存在这些文件)

iqxoj9l9  于 2023-01-09  发布在  其他
关注(0)|答案(1)|浏览(118)

我要筛选源文件夹中名称以“File”开头的文件。然后我要检查这些文件是否已存在于接收器文件夹中。如果不存在,则复制,否则跳过。
图片1 -这是初始图片,包含源和接收器x1c 0d1x中的文件
图片2 -这是所需的输出,其中仅复制Sink中不存在的文件(垃圾文件除外)

图片3 -这是我尝试的方法。ForEach中有IF和copyData活动,但我在copyData活动中遇到错误。

6vl6ewon

6vl6ewon1#

我已经在我的本地环境中进行了谴责,如下所示。
1.使用获取元数据活动获取接收器文件列表,其中文件名以“file”开头。

获取元数据1的输出:

1.创建一个数组变量来存储接收器文件列表。

1.使用ForEach活动将Get Metadata活动(获取接收器文件)输出转换为数组,并将每个文件名追加到数组变量。
第一个月

在ForEach活动中添加append variable活动。

1.现在使用管道中的另一个Get Metadata活动获取源文件列表。

获取元数据2的输出:

1.将获取元数据activity2(获取源文件)输出和ForEach活动连接到另一个ForEach活动2。
@activity('Get Source Files').output.childItems

1.在ForEach2活动内添加If Condition活动。添加表达式以检查数组变量中包含的当前项(每个源文件)。
@contains(variables('sink_files_list'),item().name)

1.如果为false,则添加复制活动以将源文件复制到接收器。

资料来源

Flume

相关问题