根据通配符在源处复制文件名,以便使用 Azure 数据工厂传输到接收器中的单独文件夹

问题描述 投票:0回答:1

我希望配置 ADF 作业以使用复制功能从源容器传输 .txt 文件,并将它们传输到各自文件夹中的 ADLS 接收器容器。

例如:

源容器A 目录 -文件A-20240201.txt -fileB-20240302.txt -fileB-20230201.txt -文件C-20230201.txt

水槽容器B 目录 -文件夹_A -文件夹_B -文件夹_C

使用通配符传输fileA*并将这些文件传输到Folder_A。使用通配符传输 fileB* 并将这些文件传输到Folder_B。使用通配符传输 fileC* 并将这些文件传输到Folder_C。

寻求有关设置此 ADF 作业的配置详细信息的帮助。

尝试将 ForEach 与 Switch Activity 嵌套使用,对每个文件名使用 Case Activity,然后进行复制活动。

azure azure-data-factory azure-data-lake
1个回答
0
投票

如果您知道目标文件夹的数量和目标文件夹的列表,那么您可以尝试以下方法。

这些是我的示例输入文件:

sourcecon
    folder
        fileA-20240201.txt
        fileA-20240311.txt
        fileB-20230201.txt
        fileB-20240302.txt
        fileC-20230201.txt
        fileC-20240310.txt

首先创建一个带有字母

["A","B","C",..<till required folders>]
的数组变量。将此数组赋予 For-Each 活动。

创建源数据集和目标数据集。在目标数据集中,创建一个字符串参数

folder_name
并将其赋予数据集的文件夹路径,如下所示。

enter image description here

在 for 循环内,进行复制活动并给出创建的源和接收器数据集。在源代码中,使用带有此表达式

file@{item()}*
的通配符路径,如下所示。

enter image description here

在接收器中,将表达式

Folder_@{item()}
赋予数据集参数。

enter image description here

调试管道,所有必需的文件将被复制到相应的文件夹中,如下所示。

目标文件夹:

enter image description here

目标文件夹中创建的文件:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.