在客户档案出库、对外交付与跨部门协作链路中,分析师面对的底表往往带有手机号、身份证、姓名、邮箱、卡号、地址等明文敏感值。只要其中一列未打码,整张表就不能出库。
如果采用传统手工方式,不仅要按列写公式截位、整格替换,而且容易漏列、误伤非敏感字段,也无法形成可回溯、可自动复跑的工作流;打码规则一旦改口,又要整表重做。
DT-Bot 的 「数据脱敏」 算子专为解决此类按列遮盖敏感值而设计。它支持一键识别敏感列套默认打码,也可按提示词指定列与规则:留前 N 后 M、整格打星、整格换成指定文本。默认就地改源表,行数不变;写了结果名则写新表。空单元格不改。脱敏后该列为文本。
一、 核心能力与适用场景
「数据脱敏」算子聚焦于按列打码敏感值,覆盖以下四大核心能力:
| 核心能力 | 解决什么业务问题 | 典型业务场景 |
|---|---|---|
| 一键识别脱敏 | 按列名和抽样识别手机号、身份证、姓名、邮箱、卡号、地址等敏感列,套类型默认保留位。 | 出库前把客户档案敏感信息一键打码;订单号等非敏感列不动。 |
| 指定列 + 保留位 | 只处理点名的列;可留前 N 后 M,或整格打星。 | 手机号留前 3 后 4,地址整格打星;姓名和身份证两列都脱敏;只脱敏手机号和身份证。 |
| 整格替换 | 把点名列整格换成指定文本,不再露出原文片段。 | 把姓名整格换成「某客户」,用于对外样例表。 |
| 写出新表 | 写了结果名则源表原文保留,打码结果落在新表。 | 输出「客户档案_脱敏」,源表继续用于内部对账。 |
二、 边界指南:它与相近算子有何区别?
在构建数据工作流时,理解算子之间的职责边界至关重要:
| 比较维度 | 「数据脱敏」算子 | 「行操作」算子 | 「数据校验」算子 |
|---|---|---|---|
| 主要定位 | 按列遮盖敏感值 | 去空格、替换业务词、字符清洗 | 按不合格规则拆成合格表与异常表 |
| 输出机制 | 默认就地改源表,行数不变;写了结果名则写新表 | 就地更新原表(单元格级修改) | 源表只读,写出合格表与异常表 |
| 典型动作 | 一键识别打码、留前 N 后 M、整格打星、整格替换 | 去空格、替换指定词、正则提取 | 手机号不是 11 位进异常,其余进合格 |
| 如何选择 | “出库前把客户档案手机号、身份证打码” | “把客户名称里的前后空格和业务词替换掉” | “手机号位数不对要进异常表,合格行另留一张” |
「数据脱敏」不是磁盘 Excel 目录级独立脱敏工具。点名的列不存在时会拒绝,不会改用其它列,也不会改成一键。
三、 提示词编写规范与公式
「数据脱敏」算子支持自然语言直接表达,建议遵循以下标准的三要素编写公式:
【目标表范围】 + 【脱敏范围】 + 【打码规则与输出】
1. 目标表范围表达
- 单表精准点名:明确指定单张表名称,例如
把 “客户档案” 敏感信息一键脱敏; - 默认当前流转表:若提示词中未显式提及表名,算子将默认继承上一节点连线流入的数据表。
2. 脱敏范围与规则表达
- 一键指令:
敏感信息一键脱敏——按列名和抽样识别敏感列,套类型默认保留位;例如手机号通常留前 3 后 4; - 指定列指令:点名哪几列,例如只处理手机号和地址,或姓名和身份证两列都脱敏;只脱敏手机号和身份证时,其它列不动;
- 保留位 / 整格规则:
留前 3 后 4、整格打星、整格换成 “某客户”;还可以从第 4 位开始打码,或遮开头 2 位和结尾 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 目录级独立脱敏工具。
六、 关联算子导航
- 若需对单元格内部的字符串进行去空格、替换业务词:请参考 数据处理 · 行操作
- 若需把位数不符的手机号拆进异常表、合格行另留一张:请参考 数据处理 · 数据校验
- 欲下载真实数据表格亲自动手实测:请查阅 数据案例 · 数据脱敏案例