我们的表存储帐户中有 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 个表名称列表,或者我是否需要为其添加任何其他步骤/配置?
要通过ADF列出超过1000个表格,您可以按照以下步骤操作:
运行 Web 活动后,保存 x-ms-continuation-NextTableName 标头值。添加带有 continuation 变量的 SetVariable 活动,用 SetVariable 中的动态表达式保存值:
@activity('Web1').output.ADFWebActivityResponseHeaders['x-ms-continuation-NextTableName']
,如下所示:
使用表达式
@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活动,如下所示:
添加带有 continuation 变量和动态表达式
@activity('Web2').output.ADFWebActivityResponseHeaders['x-ms-continuation-NextTableName']
的 SetVariable 活动。
Until 活动完成后,您将在列表变量中看到所有表名称的列表。
欲了解更多信息,您可以参考问答中的类似问题。