我要筛选源文件夹中名称以“File”开头的文件。然后我要检查这些文件是否已存在于接收器文件夹中。如果不存在,则复制,否则跳过。图片1 -这是初始图片,包含源和接收器x1c 0d1x中的文件图片2 -这是所需的输出,其中仅复制Sink中不存在的文件(垃圾文件除外)
图片3 -这是我尝试的方法。ForEach中有IF和copyData活动,但我在copyData活动中遇到错误。
6vl6ewon1#
我已经在我的本地环境中进行了谴责,如下所示。1.使用获取元数据活动获取接收器文件列表,其中文件名以“file”开头。
获取元数据1的输出:
1.创建一个数组变量来存储接收器文件列表。
1.使用ForEach活动将Get Metadata活动(获取接收器文件)输出转换为数组,并将每个文件名追加到数组变量。第一个月
在ForEach活动中添加append variable活动。
1.现在使用管道中的另一个Get Metadata活动获取源文件列表。
Get Metadata
获取元数据2的输出:
1.将获取元数据activity2(获取源文件)输出和ForEach活动连接到另一个ForEach活动2。@activity('Get Source Files').output.childItems
@activity('Get Source Files').output.childItems
1.在ForEach2活动内添加If Condition活动。添加表达式以检查数组变量中包含的当前项(每个源文件)。@contains(variables('sink_files_list'),item().name)
@contains(variables('sink_files_list'),item().name)
1.如果为false,则添加复制活动以将源文件复制到接收器。
资料来源:
Flume:
1条答案
按热度按时间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: