在客户档案出库、对外交付与跨部门协作链路中,分析师面对的底表往往带有手机号、身份证、姓名、邮箱、卡号、地址等明文敏感值。只要其中一列未打码,整张表就不能出库。

如果采用传统手工方式,不仅要按列写公式截位、整格替换,而且容易漏列、误伤非敏感字段,也无法形成可回溯、可自动复跑的工作流;打码规则一旦改口,又要整表重做。

DT-Bot 的 「数据脱敏」 算子专为解决此类按列遮盖敏感值而设计。它支持一键识别敏感列套默认打码,也可按提示词指定列与规则:留前 N 后 M、整格打星、整格换成指定文本。默认就地改源表,行数不变;写了结果名则写新表。空单元格不改。脱敏后该列为文本。

一、 核心能力与适用场景

「数据脱敏」算子聚焦于按列打码敏感值,覆盖以下四大核心能力:

核心能力 解决什么业务问题 典型业务场景
一键识别脱敏 按列名和抽样识别手机号、身份证、姓名、邮箱、卡号、地址等敏感列,套类型默认保留位。 出库前把客户档案敏感信息一键打码;订单号等非敏感列不动。
指定列 + 保留位 只处理点名的列;可留前 N 后 M,或整格打星。 手机号留前 3 后 4,地址整格打星;姓名和身份证两列都脱敏;只脱敏手机号和身份证。
整格替换 把点名列整格换成指定文本,不再露出原文片段。 把姓名整格换成「某客户」,用于对外样例表。
写出新表 写了结果名则源表原文保留,打码结果落在新表。 输出「客户档案_脱敏」,源表继续用于内部对账。

二、 边界指南:它与相近算子有何区别?

在构建数据工作流时,理解算子之间的职责边界至关重要:

比较维度 「数据脱敏」算子 「行操作」算子 「数据校验」算子
主要定位 按列遮盖敏感值 去空格、替换业务词、字符清洗 按不合格规则拆成合格表与异常表
输出机制 默认就地改源表,行数不变;写了结果名则写新表 就地更新原表(单元格级修改) 源表只读,写出合格表与异常表
典型动作 一键识别打码、留前 N 后 M、整格打星、整格替换 去空格、替换指定词、正则提取 手机号不是 11 位进异常,其余进合格
如何选择 “出库前把客户档案手机号、身份证打码” “把客户名称里的前后空格和业务词替换掉” “手机号位数不对要进异常表,合格行另留一张”

「数据脱敏」不是磁盘 Excel 目录级独立脱敏工具。点名的列不存在时会拒绝,不会改用其它列,也不会改成一键。

三、 提示词编写规范与公式

「数据脱敏」算子支持自然语言直接表达,建议遵循以下标准的三要素编写公式:

【目标表范围】 + 【脱敏范围】 + 【打码规则与输出】

1. 目标表范围表达

  • 单表精准点名:明确指定单张表名称,例如 把 “客户档案” 敏感信息一键脱敏;
  • 默认当前流转表:若提示词中未显式提及表名,算子将默认继承上一节点连线流入的数据表。

2. 脱敏范围与规则表达

  • 一键指令:敏感信息一键脱敏——按列名和抽样识别敏感列,套类型默认保留位;例如手机号通常留前 3 后 4;
  • 指定列指令:点名哪几列,例如只处理手机号和地址,或姓名和身份证两列都脱敏;只脱敏手机号和身份证时,其它列不动;
  • 保留位 / 整格规则:留前 3 后 4、整格打星、整格换成 “某客户”;还可以从第 4 位开始打码,或遮开头 2 位和结尾 2 位。

3. 结果名(可选)

  • 不写结果名则改源表;
  • 写了结果名则写新表,源表原文保留,例如 输出 “客户档案_脱敏”。

示例对应三段:

  1. 表:客户档案
  2. 规则:一键识别
  3. 结果:就地改源表

四、 核心功能与图解实战

以下结合真实企业数据场景,展示「数据脱敏」在不同需求下的处理效果:

场景 1:一键识别敏感列并打码

业务背景:客户档案即将出库给协作方,表内同时含姓名、手机号、身份证、邮箱、地址、卡号。分析师需要一键识别敏感列并套默认打码,客户编码与备注等非敏感列必须保持原文;空单元格保持空。

【处理前:客户档案】

客户编码 姓名 手机号 身份证 邮箱 地址 卡号 备注
C01 张三 13812345678 110101199001011234 zhang@xx.com 北京市朝阳区建国路1号 6222021234567890 VIP
C02 李四 13900001111 320102198505055678 li@yy.com 上海市浦东新区世纪大道2号 6228480000001111 普通
C03 王五 440101199203033210 wang@zz.com 广州市天河区体育西路3号 普通

【执行提示词】

把 “客户档案” 敏感信息一键脱敏。

【处理后:客户档案(就地更新)】

客户编码 姓名 手机号 身份证 邮箱 地址 卡号 备注 变更说明
C01 张* 138****5678 110*****1234 z***@xx.com 北京市**** 6222**7890 VIP 敏感列按类型默认保留位打码
C02 李* 139****1111 320*****5678 l***@yy.com 上海市**** 6228**1111 普通 敏感列按类型默认保留位打码
C03 王* 440*****3210 w***@zz.com 广州市**** 普通 空手机号、空卡号保持空

逻辑详解:引擎按列名和抽样识别敏感列,套类型默认保留位。手机号通常留前 3 后 4。空单元格保持空。客户编码、备注等非敏感列不动。行数仍为 3。脱敏后敏感列为文本。上表其余敏感列的具体留位为类型默认效果示意,以引擎按类型套用的默认保留位为准。


场景 2:指定列 + 留前 N 后 M / 整格打星

业务背景:对外样例只需遮盖手机号与地址:手机号留前 3 后 4,地址整格打星,不再露出「北京市」等原文;姓名、身份证本条未点名,必须保持原文。

【处理前:客户档案】

客户编码 姓名 手机号 身份证 地址
C01 张三 13812345678 110101199001011234 北京市朝阳区建国路1号
C02 李四 13900001111 320102198505055678 上海市浦东新区世纪大道2号
C03 王五 440101199203033210 广州市天河区体育西路3号

【执行提示词】

把客户档案的手机号留前 3 后 4,地址整格打星。

【处理后:客户档案(就地更新)】

客户编码 姓名 手机号 身份证 地址 变更说明
C01 张三 138****5678 110101199001011234 ** 手机号留前 3 后 4;地址整格打星
C02 李四 139****1111 320102198505055678 ** 手机号留前 3 后 4;地址整格打星
C03 王五 440101199203033210 ** 空手机号不改;地址整格打星

逻辑详解:只改提示词点名的手机号与地址。姓名、身份证本条未点名,保持原文。也可以:姓名和身份证两列都脱敏;只脱敏手机号和身份证。还可以:从第 4 位开始打码;遮开头 2 位和结尾 2 位。点名的列不存在时会拒绝,不会改用其它列,也不会改成一键。


场景 3:整格替换并写出新表

业务背景:对外演示表要求姓名整格换成「某客户」,内部对账仍要看张三、李四、王五原文,因此必须写出新表、源表不改。

【处理前:客户档案】

客户编码 姓名 手机号 备注
C01 张三 13812345678 VIP
C02 李四 13900001111 普通
C03 王五 普通

【执行提示词】

把客户档案的姓名整格换成 “某客户”,输出 “客户档案_脱敏”。

【处理后:客户档案(源表不改)】

客户编码 姓名 手机号 备注 变更说明
C01 张三 13812345678 VIP 写了结果名,源表姓名保持原文
C02 李四 13900001111 普通 写了结果名,源表姓名保持原文
C03 王五 普通 写了结果名,源表姓名保持原文

【处理后:客户档案_脱敏(新表)】

客户编码 姓名 手机号 备注 变更说明
C01 某客户 13812345678 VIP 姓名整格替换;本条只点姓名
C02 某客户 13900001111 普通 姓名整格替换;本条只点姓名
C03 某客户 普通 姓名整格替换;空手机号仍空

逻辑详解:整格替换不再露出姓名原文片段。输出新表后,源表行数与原文均保持导入原样。新表未点名的列可原样带出。脱敏后姓名列为文本。

五、 常见问题与操作贴士(FAQ)

Q1:为什么执行「数据脱敏」后,左侧工作空间没有生成新表?

答:这是「数据脱敏」的默认机制。未显式要求输出新表时,算子采用就地更新(In-Place),直接在源表敏感列上打码,行数不变。
若业务需要保留原文并生成对照表,请在提示词中写出结果名,例如 输出 “客户档案_脱敏”。

Q2:空单元格会不会被打成星号?未点名的列会不会被一键改掉?

答:空单元格(空值、空白)不改。一键模式只处理被识别为敏感的列,订单号、客户编码、备注等非敏感列不动。指定列模式只改点名的列;只脱敏手机号和身份证时,其它列不动。点名的列不存在时会拒绝,不会改用其它列,也不会改成一键。

Q3:脱敏之后列类型是什么?还能当关联键用吗?

答:脱敏后该列为文本。打码后的手机号、身份证已不是原文,不应再用于跨表精确关联。若还需要用原文做匹配,请先完成匹配,再脱敏;或写出新表,让源表继续承担关联。

Q4:去空格、替换业务词,或手机号位数不对要进异常表,该用哪个算子?

答:去空格、替换业务词请用 「行操作」。手机号位数不对要进异常表、合格行另留一张,请用 「数据校验」。「数据脱敏」只负责打码,不负责按位数分流,也不是磁盘 Excel 目录级独立脱敏工具。

六、 关联算子导航