Purview删除自定义分类时关联列残留分类的问题咨询
Azure Purview自定义分类无法删除:列仍残留分类的解决办法
问题概述
创建自定义分类用于识别SQL Server数据源中的特定列名,扫描后分类成功分配到对应列。但删除分类规则并选择删除此规则及所有已应用的分类后,目标列仍保留该分类,导致无法删除自定义分类。手动移除仅适用于少量列,大量列场景下不可行。
重现步骤
- 在Purview中创建检测特定列文本的自定义分类
- 执行数据源扫描,将分类应用到匹配的列
- 删除该自定义分类规则,勾选删除此规则及所有已应用的分类选项
- 尝试删除自定义分类,因仍被列资产引用而操作失败
批量解决方法
1. 使用Purview REST API批量清理分类
步骤1:筛选带有目标分类的列资产
调用Purview高级搜索API,获取所有带有目标自定义分类的SQL列:
GET https://{你的Purview账户名}.purview.azure.com/catalog/api/atlas/v2/search/advanced Content-Type: application/json { "filter": { "typeName": "sql_column", "classificationNames": ["你的自定义分类名称"] }, "limit": 1000 }
步骤2:批量移除分类
对返回结果中的每个列资产GUID,调用分类删除API:
DELETE https://{你的Purview账户名}.purview.azure.com/catalog/api/atlas/v2/entity/guid/{资产GUID}/classification/{你的自定义分类名称}
可以用Postman集合、Python脚本等工具批量执行该请求。
2. 使用Azure PowerShell批量处理
步骤1:准备环境
# 安装Purview模块(若未安装) Install-Module -Name Az.Purview -Force -AllowClobber Import-Module Az.Purview # 登录并指定Purview账户 Connect-AzAccount $purviewAccount = Get-AzPurviewAccount -Name "你的Purview账户名" -ResourceGroupName "资源组名称"
步骤2:查询并移除分类
# 筛选带有目标分类的SQL列 $targetClassification = "你的自定义分类名称" $classifiedColumns = Search-AzPurviewEntity -AccountName $purviewAccount.Name -Filter "classificationNames eq '$targetClassification' AND typeName eq 'sql_column'" # 批量移除分类 foreach ($column in $classifiedColumns) { Remove-AzPurviewEntityClassification -AccountName $purviewAccount.Name -Guid $column.Guid -ClassificationName $targetClassification Write-Host "已移除列 $($column.Name) 上的分类 $targetClassification" }
3. 触发完整扫描(补充验证)
完成上述操作后,对对应的SQL Server数据源触发完整扫描,扫描完成后Purview会重新校验列的分类配置,确保残留的分类标记被彻底清理。
内容的提问来源于stack exchange,提问作者WillStephens1
相关产品推荐
相关产品推荐

