什么是数据分类ClassificationAtlas 中如何定义和应用分类——从 PII 自动打标到动态脱敏的实战指南用户问题原文什么是数据分类ClassificationAtlas 中如何定义和应用分类2026年4月23日 · 作者九师兄在某全球电商平台的一次安全审计中安全团队发现数百张包含用户手机号、身份证号的 Hive 表未被标记为敏感数据导致非授权分析师可直接查询原始值。更严重的是由于缺乏自动分类机制团队需手动检查数千张表耗时数周仍未完成。这一事件暴露了现代数据平台的核心风险没有有效的数据分类敏感数据就如同“裸奔”——你无法识别它、保护它、治理它。本文将深入剖析数据分类的本质并通过 Apache Atlas 2.4.0 的架构与源码揭示其如何实现自动分类、标签传播、策略联动三大核心能力帮助企业构建 GDPR/PII 合规的数据治理体系。一、问题引入为什么需要数据分类想象一座现代化图书馆书籍数据资产数以万计但如果没有分类标签如“儿童读物”、“机密档案”图书管理员数据治理官无法快速识别敏感内容读者数据消费者可能误入禁区现代数据平台正是如此每天新增数千张表、数百个 Kafka Topic字段名如user_phone、id_card隐含敏感信息但系统不知哪些是 PII个人身份信息、哪些是 INTERNAL内部数据数据分类的本质为数据资产打上语义标签使其可被识别、保护、治理。二、数据分类的定义与业务价值官方定义NIST SP 800-53Data Classification is the process of organizing data into categories that reflect its sensitivity, criticality, and regulatory requirements.翻译数据分类是将数据组织成类别的过程这些类别反映其敏感性、关键性和监管要求。工程视角的分类类型分类类型示例业务价值合规类PII、GDPR、HIPAA满足法规要求降低罚款风险安全类CONFIDENTIAL、INTERNAL控制数据访问范围业务类FINANCE、USER_BEHAVIOR促进数据资产发现与复用技术类RAW、CLEANSED、AGGREGATED描述数据处理阶段生活化类比如果把数据分类比作“交通信号灯”那么红灯PII禁止通行需授权黄灯INTERNAL谨慎通行需审批绿灯PUBLIC自由通行技术本质差异数据分类不仅是视觉标识更是策略执行的触发器可联动 Ranger 实现动态脱敏。三、Apache Atlas 分类模型的核心设计1. Classification 作为 First-Class Entity在 Atlas 中Classification 被建模为顶级实体类型Top-Level Type与 Entity 平级。Type System 定义typesystem/ClassificationTypeDef.javapublicclassClassificationTypeDefextendsAtlasBaseTypeDef{privateListStringsuperTypes;// 父分类如 PII 继承 SENSITIVEprivateMapString,Stringattributes;// 自定义属性如 retention_daysprivatebooleanpropagate;// 是否传播到下游privatebooleanremovePropagationsOnEntityDelete;// 删除时是否移除传播}2. Classification 与 Entity 的关联Classification 通过关系属性relationshipAttribute关联到 Entity存储在 HBase 的ATLAS_RELATIONSHIPS表中。REST API 结构{classification:{typeName:PII,attributes:{retention_days:30}},entityGuids:[table_guid,column_guid]}3. 自动分类Auto Classification机制Atlas 支持基于规则的自动分类核心配置项关键配置application.properties# 启用自动分类 atlas.classification.propagationtrue # 定义 PII 规则字段名匹配正则 atlas.pii.regex.field.name.patterns.*_phone$,.*_id_card$,.*_email$ # 定义 INTERNAL 规则表名包含特定前缀 atlas.internal.regex.table.name.patternsods_.*,stg_.*源码路径addons/hive-bridge/src/main/java/org/apache/atlas/hive/bridge/HiveMetaStoreBridge.java// 在 registerTable() 方法中privatevoidapplyClassifications(AtlasEntitytableEntity,Tabletable){// 应用表级规则if(matchesPattern(table.getTableName(),internalPatterns)){addClassification(tableEntity,INTERNAL);}// 遍历字段应用字段级规则for(FieldSchemacol:table.getSd().getCols()){if(matchesPattern(col.getName(),piiPatterns)){AtlasEntitycolumnEntitycreateColumnEntity(col);addClassification(columnEntity,PII);}}}四、Atlas 分类应用的全链路解析1. 分类定义流程定义 Classification Type设置属性与传播规则注册到 Type System应用于 Entity✅REST API 示例定义 PII 分类curl-uadmin:admin-XPOST\-HContent-Type: application/json\-d{ classificationDefs: [{ name: PII, description: Personal Identifiable Information, superTypes: [SENSITIVE], attributeDefs: [{ name: retention_days, typeName: int, isOptional: true }], propagate: true }] }\http://localhost:21000/api/atlas/v2/types/typedefs2. 分类应用流程RangerHBaseAtlas Server用户/系统RangerHBaseAtlas Server用户/系统应用 Classification 到 Entity存储关系 (ATLAS_RELATIONSHIPS)同步策略 (通过 Atlas-Ranger Plugin)动态脱敏生效关键类org.apache.atlas.security.InMemoryAtlasEntityStore在addClassifications()方法中更新 Entity 的classifications属性并触发通知。3. 分类传播机制当启用propagatetrueClassification 会自动传播到下游 Entity。电商案例ods_user_log.phone (PII) → [Spark 清洗] → dwd_user_log.user_phone (自动继承 PII) → [Flink 聚合] → ads_user_daily.recent_phone (自动继承 PII)✅验证命令# 查询 ads_user_daily 的分类curl-uadmin:admin\http://localhost:21000/api/atlas/v2/entity/guid/ads_table_guid/classifications五、IoT 设备指标分类实战案例业务场景某智能设备厂商需对以下数据进行分类PII设备绑定的用户手机号 (device_owner_phone)INTERNAL原始设备指标 (iot_raw_metrics)PUBLIC聚合后的区域统计 (iot_region_summary)实施步骤步骤 1定义分类类型{classificationDefs:[{name:PII,superTypes:[SENSITIVE],attributeDefs:[{name:encryption_required,typeName:boolean}],propagate:true},{name:INTERNAL,superTypes:[],propagate:false}]}步骤 2配置自动分类规则# application.properties atlas.pii.regex.field.name.patterns.*_owner_phone$ atlas.internal.regex.table.name.patternsiot_raw_.*步骤 3创建测试表触发 HookCREATETABLEiot_device_metrics_hudi(device_id STRING,device_owner_phone STRING,-- 应自动打上 PIItemperatureDOUBLE)STOREDASHUDI;步骤 4验证自动分类# 查询表实体curl-uadmin:admin\http://localhost:21000/api/atlas/v2/entity/uniqueAttribute/type/hive_table?attr:qualifiedNamedefault.iot_device_metrics_hudiprimary# 查询字段分类curl-uadmin:admin\http://localhost:21000/api/atlas/v2/entity/guid/column_guid/classifications✅验证点device_owner_phone字段应有PII标签。步骤 5模拟下游作业 验证传播CREATETABLEiot_daily_summaryASSELECTdevice_owner_phone,AVG(temperature)ASavg_tempFROMiot_device_metrics_hudiGROUPBYdevice_owner_phone;✅验证点iot_daily_summary.device_owner_phone应自动继承PII标签。六、Atlas 分类能力边界与陷阱支持场景✅ 手动分类通过 UI/API✅ 自动分类基于正则规则✅ 分类传播下游自动继承✅ 与 Ranger 联动动态脱敏不支持场景❌内容扫描分类无法解析 Parquet 文件内容识别 PII❌机器学习分类无内置 NLP/ML 模型❌跨集群分类同步分类仅限单 Atlas 实例内常见陷阱问题根因解决方案分类未传播propagatefalse检查 Classification 定义自动分类失效正则表达式错误使用atlas.pii.regex.test.modetrue测试Ranger 策略未生效Atlas-Ranger Plugin 未安装部署atlas-ranger-plugin-2.4.0.jar分类冲突多个规则匹配同一字段调整正则优先级或使用 exclusions⚠️配置示例application.properties# 启用分类传播 atlas.classification.propagationtrue # 设置传播深度避免无限传播 atlas.classification.propagation.depth5 # 测试模式仅记录匹配不实际应用 atlas.pii.regex.test.modefalse七、FAQ高频关联问题解答Q1Classification 和 Tag 有何区别Classification 是强语义标签具有继承关系SuperType自定义属性如 retention_days策略联动能力如 Ranger 脱敏而普通 Tag 只是字符串标识无上述能力。Q2如何监控分类应用延迟关键指标kafka_notification_lagATLAS_HOOK Topic 积压atlas_classification_applied_total分类应用次数ranger_policy_sync_latency_msRanger 策略同步延迟建议设置告警若 lag 1000 条触发告警。Q3为什么 Flink 作业的字段未自动分类Atlas无内置 Flink Hook需自研在 Flink 作业提交时解析字段名调用 Atlas REST API 手动应用分类REST API 示例{classification:{typeName:PII},entityGuids:[flink_column_guid]}Q4分类能用于数据质量吗可以。通过自定义属性存储质量规则例如{typeName:DATA_QUALITY,attributes:{null_ratio_threshold:0.1,last_check_time:2026-04-23T00:00:00Z}}Q5Atlas 支持多租户分类隔离吗社区版不支持。所有分类全局可见。如需隔离需部署多套 Atlas 实例在 Classification 名称中加入租户前缀如tenantA_PII八、生产最佳实践适用场景强合规需求GDPR、CCPA、金融审计敏感数据治理动态脱敏需求不适用场景纯技术元数据管理无敏感数据的公开数据集使用规范必须启用自动分类减少人工打标成本统一分类命名规范如{DOMAIN}_{TYPE}如USER_PII定期审计分类准确性通过抽样检查风险控制过度脱敏建立分类审核流程避免误标传播爆炸限制atlas.classification.propagation.depth5性能影响异步应用分类不影响主流程九、总结分类是数据治理的“神经中枢”数据分类不仅是“标签”更是数据治理的神经中枢——它连接识别、保护、策略执行三大环节。Apache Atlas 通过自动分类、标签传播、Ranger 联动三大机制为企业提供了强大的分类能力。对安全官自动识别 PII降低合规风险对数据工程师确保敏感数据被正确处理对架构师构建端到端的数据保护体系在数据隐私日益重要的今天没有分类的数据治理如同没有交通规则的城市——混乱且危险。Atlas 正是企业构建可信数据基础设施的“数字交警”。作者署名九师兄专题目录【Apache Atlas】Apache Atlas 资深工程师到专家实战之路目录总目录【目录】技术体系目录注意本文由 AI 辅助生成技术细节请以官方文档为准。生产环境使用前务必充分测试。