首页 > 解决方案 > 如何将 API 输出数据保存到 Azure 数据工厂中的数据集

问题描述

我目前正在 Azure 数据工厂中开展一个项目,该项目涉及从数据集中收集数据,使用这些数据进行 API 调用,然后获取调用的输出,并将它们发布到另一个数据集。通过这种方式,我希望得到一个包含各种不同数据的数据集,API 调用会返回给我。我目前的困难是,不知道如何使“Web 活动”(我用来进行 API 调用)将其输出保存到我​​的数据集。我尝试了许多在网上找到的不同解决方案,但它们似乎都不起作用。我不确定官方文档是否已过时,或者我是否误解了其中的一部分。下面我列出了我尝试过但失败的解决方案的链接:

  1. 从 REST 源复制数据
  2. 从 HTTP 源复制数据
  3. (除其他外,包括与我类似的帖子。)

我管道中的当前流程是,“查找”收集名为“User_ID”的变量列表。这些用户 ID 被放入 ForEach 循环中,该循环使用每个 USER_ID 对“Web”活动进行 API 调用。这就是我希望在管道中实现一个活动或其他活动的地方,它可以将这些 Web 活动输出中的每一个发布到我的新数据集中。

我尝试使用“复制数据”活动,但它似乎所做的只是将数据直接从一个数据集复制到另一个数据集,并且无法操作数据(我希望通过我的 api 调用来完成)。

有没有人可以解决这个问题?提前非常感谢。

标签: apirestpostdatasetazure-data-factory

解决方案


不知道为什么您无法在Copy data from a REST endpoint之后实现这一目标。我测试了下面的效果很好。我使用了“复制数据”活动的模式映射功能。

例如,我使用示例 API http://dummy.restapiexample.com/api/v1/employees作为源,而在我的测试中,我使用 CosmosDB 作为接收器。当然,您可以根据需要选择任何其他数据集。

  1. 为 REST API 创建“链接服务”。为简单起见,我没有此 API 的身份验证。当然,如果需要,您可以选择该选项。 在此处输入图像描述
  2. 为目标数据存储创建“链接服务”。就我而言,它是 CosmosDB。 在此处输入图像描述
  3. 为 REST API 创建数据集并链接到在 #1 中创建的链接服务。 在此处输入图像描述
  4. 为数据存储(在我的情况下为 CosmosDB)创建数据集并链接到在 #2 中创建的链接服务。 在此处输入图像描述
  5. 在管道中,添加如下所示的“复制数据”活动,其中 source 作为在 #3 中创建的 REST 数据集,而 sink 作为在 #4 中创建的数据集。此外,在我的情况下,我必须添加模式映射以从 API 输出中选择员工数组并映射到我的数据存储中的每个字段。 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述
  6. 瞧,就是这样。当我运行管道时,它会调用 REST API 并将输出与我想要的映射一起保存在我的数据库中。 在此处输入图像描述

推荐阅读