0

大家好,我正在为数据管道而苦苦挣扎。

我有一个管道,我首先从 api 获取一些数据。该数据除其他外包含一列 id。我已经设置了一个数据副本,并将 json 结果保存在一个 blob 中。

我接下来要做的是遍历所有 id 并对这些 id 进行 api 调用。

但是我一生都无法弄清楚如何迭代ID。我已经考虑过使用查找和 for-each,但似乎查找仅限于 5000 个结果,我只有 70k 多一点。

对我有什么指示吗?

4

1 回答 1

1

作为一种解决方法,您可以将 API 调用结果分区并存储到较小的 JSON 文件中。然后根据你得到的文件数量使用多个管道,并迭代来实现这一点。

由于ForEach 活动最多可以进行 50 的 batchCount 并行处理,并且最多可以处理 100,000 个项目。仅针对查找部分遵循解决方法。

设计一个两级管道,其中外部管道迭代内部管道,该管道检索不超过最大行数或大小的数据。

例子:

在这里,我将从 API 获取详细信息并将其存储为许多JSONblob,以帮助将小块数据提供给下一个LookupActivity

在此处输入图像描述

使用GetMetadata Activity 了解要迭代的分区文件的数量及其名称以传递给LookupActivity的参数化源数据集。

在此处输入图像描述

使用执行管道调用另一个管道,该管道将使用LookupActivityWebActivity来调用 id

在此处输入图像描述

在子管道内,您有一个LookupActivity,其中包含要查看的参数化源文件。当ForEach 活动迭代时,对于每个文件,子管道都会在LookupActivity的源中使用一个文件触发。这解决了限制问题。

在此处输入图像描述

您可以将查找结果存储在变量中或按原样使用动态表达式。

在此处输入图像描述

在此处输入图像描述

于 2022-01-19T09:45:45.507 回答