Azure Purview识别ADLS Gen2存储中JSON文件属性异常咨询
Azure Purview解析ADLS Gen2存储JSON文件异常的常见原因
核心诱因
- 根节点为数组的JSON结构适配缺陷
Azure Purview默认的JSON模式推断逻辑优先适配根节点为键值对对象的JSON文件,你使用的JSON根节点为数组类型,属于非标准的结构化JSON存储格式,Purview原生解析器对这类结构的处理逻辑不完善,会将整个数组识别为单一字段,或者在尝试提取数组内字段时出现结构识别错误,最终导致UI展示混乱。 - 自动扁平化嵌套结构规则冲突
Purview扫描JSON文件时默认开启自动嵌套结构扁平化功能,你使用的JSON元素内部存在attributes嵌套对象,扁平化处理时会出现字段名拼接规则异常、层级识别错误,进而导致展示内容错乱。 - 采样截断问题
Purview默认仅采样JSON文件前1MB的内容用于结构推断,如果你的文件较大,采样内容刚好截断了数组结构,就会导致解析器无法正确识别完整JSON结构,出现解析错误。 - 编码格式不匹配
如果你的JSON文件使用了带BOM的UTF-8、GBK等非标准编码,Purview解析器会出现字符识别错误,也会导致展示内容混乱。
对应解决方法
- 调整JSON存储格式:将根节点从数组改为对象结构,将数组作为对象的一个属性值存储,示例如下:
{ "records": [ { "attributes": { "type": "MyType", "url": "/path" }, "Id": "11111", "IsDeleted": false, "AccountId": "222222", "CreatedById": "333333", "CreatedDate": "2019-10-26T08:43:04.000+0000", "Field": "created", "OldValue": null, "NewValue": null } ] }
- 自定义扫描规则:在Purview中为对应路径的JSON文件关闭自动扁平化功能,手动配置结构解析规则。
- 调整扫描采样阈值:在Purview扫描配置中调高JSON文件的采样大小,确保采样内容能覆盖完整的JSON结构。
- 统一文件编码:将所有JSON文件统一保存为UTF-8无BOM格式。
内容的提问来源于stack exchange,提问作者Murray Foxcroft
相关产品推荐
相关产品推荐

