api - 如何将 API 输出数据保存到 Azure 数据工厂中的数据集
问题描述
我目前正在 Azure 数据工厂中开展一个项目,该项目涉及从数据集中收集数据,使用这些数据进行 API 调用,然后获取调用的输出,并将它们发布到另一个数据集。通过这种方式,我希望得到一个包含各种不同数据的数据集,API 调用会返回给我。我目前的困难是,不知道如何使“Web 活动”(我用来进行 API 调用)将其输出保存到我的数据集。我尝试了许多在网上找到的不同解决方案,但它们似乎都不起作用。我不确定官方文档是否已过时,或者我是否误解了其中的一部分。下面我列出了我尝试过但失败的解决方案的链接:
- 从 REST 源复制数据
- 从 HTTP 源复制数据
- (除其他外,包括与我类似的帖子。)
我管道中的当前流程是,“查找”收集名为“User_ID”的变量列表。这些用户 ID 被放入 ForEach 循环中,该循环使用每个 USER_ID 对“Web”活动进行 API 调用。这就是我希望在管道中实现一个活动或其他活动的地方,它可以将这些 Web 活动输出中的每一个发布到我的新数据集中。
我尝试使用“复制数据”活动,但它似乎所做的只是将数据直接从一个数据集复制到另一个数据集,并且无法操作数据(我希望通过我的 api 调用来完成)。
有没有人可以解决这个问题?提前非常感谢。
解决方案
不知道为什么您无法在Copy data from a REST endpoint之后实现这一目标。我测试了下面的效果很好。我使用了“复制数据”活动的模式映射功能。
例如,我使用示例 API http://dummy.restapiexample.com/api/v1/employees作为源,而在我的测试中,我使用 CosmosDB 作为接收器。当然,您可以根据需要选择任何其他数据集。
- 为 REST API 创建“链接服务”。为简单起见,我没有此 API 的身份验证。当然,如果需要,您可以选择该选项。
- 为目标数据存储创建“链接服务”。就我而言,它是 CosmosDB。
- 为 REST API 创建数据集并链接到在 #1 中创建的链接服务。
- 为数据存储(在我的情况下为 CosmosDB)创建数据集并链接到在 #2 中创建的链接服务。
- 在管道中,添加如下所示的“复制数据”活动,其中 source 作为在 #3 中创建的 REST 数据集,而 sink 作为在 #4 中创建的数据集。此外,在我的情况下,我必须添加模式映射以从 API 输出中选择员工数组并映射到我的数据存储中的每个字段。
- 瞧,就是这样。当我运行管道时,它会调用 REST API 并将输出与我想要的映射一起保存在我的数据库中。
推荐阅读
- python - 删除一列熊猫python中的空间
- html - 在 onfocus 表单字段中隐藏密码管理器自动完成功能
- google-bigquery - 无法在 Big-query 中打开旧查询,因为:“经典 UI 已停用”
- node.js - 有没有办法用cookies代替redis存储?
- xml - 维基百科的站点摘要提要,不包括单个用户
- python - Python:将 python2 转换为 python3
- wear-os - 在 Wear OS 上检测表盘上的长按
- javascript - 在 Elastic 搜索中增加大量数据
- javascript - 查找方法不返回'0th'匹配的对象反应,或反应本机或javascript
- java - 如何在发现时从蓝牙过滤 ListView 中显示的设备