如何使用adf复制数据管道一次执行多个表

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

来自以下问题的解决方案:在接收器数据集中动态输入表名称时复制数据活动失败

如何修改管道以一次复制多个表,类似的场景如下:

开发订阅 (devstacuks01)

  • 开发表01
  • 开发表02

UAT订阅(uatstacuks01)

  • uattable01
  • uattable02

devtable01 数据 --> uattable01 devtable02 数据 --> uattable02

azure azure-data-factory azure-table-storage
1个回答
1
投票

为此,您需要源及其目标表名称列表,如下所示。

[
{
"source_table":"mytable1",
"target_table":"target1"
},
{
"source_table":"mytable2",
"target_table":"target2"
}
]

在ADF管道中,创建一个数组参数并将上述值作为默认值。

enter image description here

您已经提到您的存储帐户来自不同的订阅。 因此,您不能使用单一链接服务。您需要创建两个表存储类型的链接服务,一个用于源存储帐户,另一个用于目标存储帐户

enter image description here

同样,为目标订阅存储帐户创建另一个链接服务

接下来,您需要创建数据集。对于数据集,您需要两个数据集,一个用于源链接服务,另一个用于目标链接服务

由于要复制多个表,因此需要参数化数据集中的表名。

创建一个字符串参数

table_name
并将其用于数据集中的 Table 属性。

enter image description here

同样,对目标数据集也执行相同的操作。

enter image description here

现在,在管道中,采用 For-Each 活动并将之前创建的数组参数提供给 for-each 表达式。

在 For-each 内部,以上述数据集作为源和接收器进行复制活动。现在,将 for 循环中的表名称

@item().source_table
@item().target_table
分别指定给复制活动的源和接收器中的数据集参数。

enter image description here

enter image description here

现在,调试管道,源表数据将在每次迭代中复制到目标表,如下所示。

enter image description here

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