如果 adf Web 活动中的计数很大,如何获取完整的表格列表?

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

我们的表存储帐户中有 18,000 个表。

我创建了一个 Web 活动来列出存储帐户中的表:

网络活动 - 列表表

URL: @concat('https://stccuatuks001.blob.core.windows.net/?comp=list', pipeline().parameters.sourceSAS)
Headers: Accept-application/json # Add as dynamic content value
Method: GET

sourceSAS
是为表存储服务生成的存储帐户 SAS 令牌,该值在管道参数中给出。

我已经运行了管道,我只获得了第 1000 个表的列表,仅此而已。

如何在 Web 活动的输出中获取完整的 18,000 个表名称列表,或者我是否需要为其添加任何其他步骤/配置?

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

要通过ADF列出超过1000个表格,您可以按照以下步骤操作:

运行 Web 活动后,保存 x-ms-continuation-NextTableName 标头值。添加带有 continuation 变量的 SetVariable 活动,用 SetVariable 中的动态表达式保存值:

@activity('Web1').output.ADFWebActivityResponseHeaders['x-ms-continuation-NextTableName']
,如下所示:

enter image description here

使用表达式

@equals(coalesce(variables('continution'),'cs'),'cs')
将 Until 活动添加到 SetVariable 活动。在 Until 活动中,添加以下活动:

添加一个 Web 活动,其 URL 与第一个 Web 活动中使用的 URL 相同,但添加了

&NextTableName=<variable>
,如下所示:

@concat('https://stccuatuks001.blob.core.windows.net/?comp=list','&NextTableName=',variables('continution'), pipeline().parameters.sourceSAS)

添加一个带有数组变量列表和动态表达式

@activity('Web2').output.value
的Append Variable活动,如下所示:

enter image description here

添加带有 continuation 变量和动态表达式

@activity('Web2').output.ADFWebActivityResponseHeaders['x-ms-continuation-NextTableName']
的 SetVariable 活动。

Until 活动完成后,您将在列表变量中看到所有表名称的列表。

欲了解更多信息,您可以参考问答中的类似问题

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