如何用Azure Data Factory将Office365使用分析数据导入SQL DB
ADF 导入Office 365使用分析数据OData连接报错修复方案
问题场景
- 业务目标:通过Azure Data Factory管道按月度频次同步Office 365使用分析数据集到自有SQL DB,因Office 365平台仅临时留存该类使用数据,需持久化存储全量历史数据。
- 异常现象:配置OData类型源端(服务地址:
https://reports.office.com/pbi/v1.0/a1fdea56-3201-4d00-9b76-661338850557)时,链接服务可正常拉取表列表,但执行数据预览操作时触发报错。
报错详情
错误代码:23223
错误信息:无法从serviceurl或serviceurl+"/$metadata"的响应中识别到受支持的内容类型,请通过浏览器等其他客户端校验接口响应;未匹配到与响应内容类型兼容的受支持MIME类型,所有受支持类型(含application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false等OData标准JSON格式)均不匹配当前接口返回的内容类型text/html; charset=utf-8
活动ID:512b0432-ee06-4954-9772-4f1338850557`不对,哦活动ID是512b0432-ee06-4954-9772-4f13422395bd,改过来:
活动ID:512b0432-ee06-4954-9772-4f13422395bd
根因说明
该报错本质是接口鉴权失败触发的响应类型不匹配:ADF内置OData连接器在数据预览、管道运行阶段发起元数据请求时,未携带有效身份凭据,被Microsoft 365的身份认证链路拦截,返回了HTML格式的登录跳转页面,而非标准OData JSON格式响应。
配置链接服务时可正常拉取表列表,是因为该操作走ADF设计时的临时授权缓存,和数据预览、管道运行的运行时鉴权链路相互独立,因此会出现「能拉表列表但跑数失败」的不一致现象。
修复操作步骤
- 修正链接服务认证配置
不要使用匿名认证类型,切换为**工作或学校账户(Azure AD组织账户)**认证,使用拥有Office 365使用分析报表读取权限的租户管理员/报表管理员账号完成登录授权,确认凭据已持久化保存在链接服务中。 - 补充强制JSON响应的请求头
在链接服务的「附加HTTP头」配置项中添加以下头信息,强制接口返回标准OData JSON格式响应,避免触发HTML跳转:Accept: application/json;odata.metadata=minimal;IEEE754Compatible=false Content-Type: application/json - 调整数据集请求路径
数据集配置时不要直接使用根服务地址做数据预览,在相对URL栏位指定具体要拉取的实体表路径(如租户使用情况、用户活跃度等具体报表对应的实体路径),避免根路径默认触发登录跳转逻辑。配置完成后先触发测试连接,确认连接状态正常后再做数据预览。 - 管道调度适配配置
配置月度同步管道时,给OData源开启分页查询功能,设置单页返回行数为1000,避免单次拉取数据量过大触发接口限流;同时配置月度增量过滤规则,每次调度仅拉取对应周期的增量数据,降低单次请求负载。
内容的提问来源于stack exchange,提问作者Yashi
相关产品推荐
相关产品推荐

