Azure-data-factory 使用 tenure 参数创建管道

问题描述 投票:0回答:1
如何创建一个只有 1 个名为“tenure”的参数的归档管道,该管道会将过去 3 年的数据从“Source”文件夹复制到另一个文件夹“Archive”,并从“Source”文件夹 tenure 中删除它们 - 3 soure: :2020/A.csv ....存档:2022/A.csv、2023/A.csv、2024/A.csv

我通过在 copydata 活动中参数化文件名来尝试上述问题,它正在复制名称为 2022、2023、2024 的空文件,如何解决此问题

azure azure-data-factory
1个回答
0
投票
当您想要将最近 3 年的源文件夹复制到目标文件夹时,您可以在 ADF 管道中使用 for 循环。

首先创建

tenure

 类型的 
int
 参数,并在管道参数部分中为其指定当前年份 
2024
 的默认值。

现在,进行一个 For-Each 活动并给出以下表达式。

@range(sub(pipeline().parameters.tenure,2),3)

enter image description here

如果参数值为

[2022,2023,2024]

,这将生成一个
2024
数组。管道将迭代此数组,并在每次迭代中从每个源文件夹 
2022
 复制到目标文件夹 
2022

在 For-Each 内进行复制活动。对于复制活动源数据集,请在数据集中提供您的目标容器。对于剩余的目标位置路径,请在复制活动源中使用通配符文件路径。

enter image description here

对于复制活动的接收器,需要参数化数据集文件夹路径。创建一个字符串参数并在数据集的文件夹路径中使用它。

enter image description here

在复制活动接收器中,提供

@item()

 作为此参数的值。

enter image description here

要从源中删除

tenure-3

 文件夹,请在 for 循环后执行删除活动。使用源容器创建数据集并参数化数据集中的文件夹路径。给出管道中该参数的以下表达式。

@string(sub(pipeline().parameters.tenure,2))

enter image description here

这将给出如下结果,并将从源中删除

tenure-3

 文件夹。

enter image description here

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