Azure Synapse复制数据/Web活动调用CSV接口返回乱码如何解决
问题排查与解决方案
1. 优先调整Web活动请求头配置
该接口会校验客户端请求头,浏览器默认携带的请求头与Synapse Web活动默认请求头不一致,是乱码的最常见诱因,按以下规则调整:
- 在Web活动的
Headers栏添加3组参数:Accept:text/csvAccept-Encoding:gzip, deflate, brUser-Agent: 填写本地浏览器的UA标识(可在浏览器控制台执行navigator.userAgent直接复制)
- 调整完成后重新调试,确认返回内容是否恢复正常
2. 更换为更适配的文件拉取活动
Web活动本身不适合直接拉取大体积文件,推荐直接用复制数据活动替代Web活动+存储的组合,配置逻辑更简单:
- 源端选
HTTP类型,数据集指定编码为UTF-8(如果接口返回带BOM的内容则选UTF-8 with BOM) - Sink直接选择数据湖对应的CSV数据集,无需额外解析响应内容
3. 网络层面验证
如果上述配置调整后依然异常,再排查网络问题:
- 确认Synapse工作区的出站网络规则:如果使用托管VNet,检查是否有出站规则拦截该域名请求,是否配置了代理导致请求被篡改
- 可以在Synapse托管Spark池中运行测试代码验证连通性:
import requests url = "https://covid19.who.int/who-data/vaccination-data.csv" resp = requests.get(url) print(resp.status_code) print(resp.encoding) print(resp.text[:100])
如果代码返回200且内容正常,说明网络无问题,故障出在活动配置层面;如果返回异常,再调整VNet出站规则即可
内容的提问来源于stack exchange,提问作者TechInterest
相关产品推荐
相关产品推荐

