在接收器数据集中动态输入表名称时复制数据活动失败

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

按照这篇MS文章,我创建了以下步骤:

第 1 步添加了带有两个参数的新管道,名称分别为 sourceSAS 和 destinationSAS,并将其 SAS 令牌作为值

第 2 步:创建 Web 活动并命名为 ListTables

网址 @concat('https://srcstorage789.table.core.windows.net/Tables', pipeline().parameters.sourceSAS)
方法 获取
标题 接受 - application/json

第 3 步对于每个活动

物品 @activity('ListTables').outputValue

第 4 步Web 活动 - 命名为 CreateTable - 这是在 ForEach 活动中创建的

|网址 | @concat('https://deststorage789.table.core.windows.net/Tables', pipeline().parameters.destinationSAS) | |方法|帖子 | |身体| @json(concat('{"TableName":"', item().TableName,'"}')) |

内容类型 application/json x-ms-date @utcNow() x-ms-版本 2021-02-12 接受申请/json

第五步:创建复制数据活动 - 这里我没明白文章是直接创建数据集还是创建复制数据活动。

如何动态指定表名称,以便从源存储中获取所有表:

如何给出表字段的值,以便将所有源存储表复制到目标表存储帐户?

虽然我尝试在 CopyData 活动中的两个数据集中给出特定的表名称,但它复制成功,但无法一次将所有表从源存储帐户复制到目标存储帐户..!

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

要动态指定多个表,需要使用数据集参数

在数据集中创建一个字符串参数,如下所示。

enter image description here

现在,单击数据集中的手动输入复选框,然后在表名称处选择动态内容。给出创建的参数名称,如下所示。

enter image description here

现在,在 ForEach 内,将数据集添加到复制活动中,它将显示相同的参数。在这里,您需要添加表名

@item().TableName
动态表达式,如下所示。例如,我进行了查找活动。

enter image description here

如果您想动态指定目标表,您也需要对目标数据集执行相同的操作

执行管道,它将给出如下所示的预期结果。

enter image description here

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