使用 Azure 数据工厂从 HTTPS 网络服务读取 API 数据
Read API data from HTTPS webservice using Azure Data Factory
我正在尝试从 Web 服务 API 获取数据,源是 XML 格式,因为 Azure 数据工厂不支持 XML 格式,我正在以二进制格式加载读取它进入 Azure 数据湖 gen2,然后使用 Azure Databricks 转换为 xml、csv。
问题:
我能够从 API 读取 tokenid 但不是实际数据意味着使用 token id 我必须获得实际的 data.Please 任何人都可以帮助解决这个问题。
注意:使用 HTTP 链接服务来摄取数据。
所有连接器都很好,测试连接成功。
以下是我可以从 ADF 看到的错误消息。
"errorCode": "2200",
"message": "Failure happened on 'Sink' side. ErrorCode=UserErrorFailedToReadHttpFile,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=The remote server returned an error: (500) Internal Server Error.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Net.WebException,Message=The remote server returned an error: (500) Internal Server Error.,Source=System,'",
"failureType": "UserError",
"target": "Copy data1",
"details": []
}
抱歉,如果有人不明白问题,我可以post清楚。
谢谢,
根据您的描述,我认为您可以使用 WehHook Activity,而不是 Web Activity。
使用 WehHook activity,您可以调用端点并传递回调 URL。管道 运行 在继续下一个 activity.
之前等待回调被调用
实际步骤是将正文中的附加 属性 “callBackUri”(摄取数据 API)传递给 url 端点(获取令牌 API),并期望在指定的超时值之前调用此 uri。
更新:
最终,OP 选择了数据块作为解决方案,并且效果很好。
我正在尝试从 Web 服务 API 获取数据,源是 XML 格式,因为 Azure 数据工厂不支持 XML 格式,我正在以二进制格式加载读取它进入 Azure 数据湖 gen2,然后使用 Azure Databricks 转换为 xml、csv。
问题: 我能够从 API 读取 tokenid 但不是实际数据意味着使用 token id 我必须获得实际的 data.Please 任何人都可以帮助解决这个问题。 注意:使用 HTTP 链接服务来摄取数据。 所有连接器都很好,测试连接成功。 以下是我可以从 ADF 看到的错误消息。
"errorCode": "2200",
"message": "Failure happened on 'Sink' side. ErrorCode=UserErrorFailedToReadHttpFile,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=The remote server returned an error: (500) Internal Server Error.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Net.WebException,Message=The remote server returned an error: (500) Internal Server Error.,Source=System,'",
"failureType": "UserError",
"target": "Copy data1",
"details": []
}
抱歉,如果有人不明白问题,我可以post清楚。 谢谢,
根据您的描述,我认为您可以使用 WehHook Activity,而不是 Web Activity。
使用 WehHook activity,您可以调用端点并传递回调 URL。管道 运行 在继续下一个 activity.
之前等待回调被调用实际步骤是将正文中的附加 属性 “callBackUri”(摄取数据 API)传递给 url 端点(获取令牌 API),并期望在指定的超时值之前调用此 uri。
更新:
最终,OP 选择了数据块作为解决方案,并且效果很好。