Azure 数据工厂 HTTP 连接器未返回 XML 输出
Azure Data Factory HTTP connector not returning XML output
对于我们的一个客户,我们正在尝试从有点老式的 REST API 中提取数据,其中 returns 一个 XML 响应。我们已经发现 REST API 连接器不能用于此目的,因为它只能处理 JSON 响应。因此,我们切换到 HTTP 连接器,它返回数据,然后我们能够将这些数据写入 Azure SQL DB 接收器。奇怪的是 ADF 输出总是在 JSON,尽管 API 响应是 XML。
起初我们不认为这是个问题,但我只是发现数组处理没有正确完成。如果返回多条记录,一切都很好,但是当 API 仅返回一条记录时,数组周围的方括号将被删除,并且 ADF 不再在映射中正确识别它,因为它需要一个数组。结果,单个记录未写入 SQL 数据库。
我们已经尝试使用 Content-Type: application/xml header 来强制输出 XML,但这也没有用。由于 API 实际上是 returns XML,似乎 ADF 正在自行将其转换为 JSON 而未正确执行。
有什么方法可以使用标准连接器在 ADF 中处理 XML API 吗?我们团队中没有可以创建自定义连接器的程序员,因此这不是一个选项。任何见解将不胜感激。
不幸的是,Azure Datafactory 中没有支持 REST APIs 和 XML 响应的连接器。
恐怕唯一可能的方法是使用 Custom Activity
或 Azure Function Activity
来调用 REST API.
您可以使用自己的数据移动或转换逻辑构建自定义 activity 并在管道中使用它来传输数据 to/from 服务不支持的数据存储,或transform/process 服务不支持的数据。
DataItch 的原创 post:ADF V2 从 REST API 拉取 returns XML | Link
对于我们的一个客户,我们正在尝试从有点老式的 REST API 中提取数据,其中 returns 一个 XML 响应。我们已经发现 REST API 连接器不能用于此目的,因为它只能处理 JSON 响应。因此,我们切换到 HTTP 连接器,它返回数据,然后我们能够将这些数据写入 Azure SQL DB 接收器。奇怪的是 ADF 输出总是在 JSON,尽管 API 响应是 XML。
起初我们不认为这是个问题,但我只是发现数组处理没有正确完成。如果返回多条记录,一切都很好,但是当 API 仅返回一条记录时,数组周围的方括号将被删除,并且 ADF 不再在映射中正确识别它,因为它需要一个数组。结果,单个记录未写入 SQL 数据库。
我们已经尝试使用 Content-Type: application/xml header 来强制输出 XML,但这也没有用。由于 API 实际上是 returns XML,似乎 ADF 正在自行将其转换为 JSON 而未正确执行。 有什么方法可以使用标准连接器在 ADF 中处理 XML API 吗?我们团队中没有可以创建自定义连接器的程序员,因此这不是一个选项。任何见解将不胜感激。
不幸的是,Azure Datafactory 中没有支持 REST APIs 和 XML 响应的连接器。
恐怕唯一可能的方法是使用 Custom Activity
或 Azure Function Activity
来调用 REST API.
您可以使用自己的数据移动或转换逻辑构建自定义 activity 并在管道中使用它来传输数据 to/from 服务不支持的数据存储,或transform/process 服务不支持的数据。
DataItch 的原创 post:ADF V2 从 REST API 拉取 returns XML | Link