首页 > 解决方案 > Azure 数据工厂 HTTP 连接器不返回 XML 输出

问题描述

对于我们的一个客户,我们正试图从一个有点老式的 REST API 中提取数据,该 API 返回一个 XML 响应。我们已经发现 REST API 连接器不能用于此目的,因为它只能处理 JSON 响应。因此,我们切换到 HTTP 连接器,而不是返回数据,然后我们能够将其写入 Azure SQL DB 接收器。奇怪的是 ADF 输出总是 JSON 格式,尽管 API 响应是 XML。

起初我们并不认为这是一个问题,但我只是发现数组处理没有正确完成。如果返回多条记录,一切都很好,但是当 API 只返回一条记录时,数组周围的方括号将被删除,并且 ADF 在映射中不再正确识别它,因为它需要一个数组。因此,单个记录不会写入 SQL 数据库。

我们尝试使用 Content-Type: application/xml 标头来强制 XML 输出,但这也不起作用。由于 API 确实返回 XML,因此 ADF 似乎自行将其转换为 JSON,并且没有正确执行。有什么方法可以使用标准连接器在 ADF 中处理 XML API?我们的团队中没有可以创建自定义连接器的程序员,因此这不是一种选择。任何见解将不胜感激。

标签: xmlazureapiazure-data-factory-2

解决方案


不幸的是,Azure Datafactory 中没有连接器支持带有 XML 响应的 REST API。

恐怕唯一可能的方法是拥有Custom ActivityAzure Function Activity调用 REST API。

您可以使用自己的数据移动或转换逻辑构建自定义活动,并在管道中使用它来向/从服务不支持的数据存储传输数据,或以服务不支持的方式转换/处理数据不支持。

DataItch 的原始帖子:ADF V2 从返回 XML 的 REST API 中提取 | 关联


推荐阅读