AI_MASK
概述
AI_MASK 是云器 Lakehouse 提供的 AI 数据脱敏函数,可从输入文本中识别并脱敏指定类型的敏感信息(PII),用统一的 [MASKED] 占位符替代。支持中文、英文、日文等多语言,标签由用户自定义,一行 SQL 即可完成 PII 脱敏。
云器将 AI 计算下沉至存储层与执行引擎,数据在平台内部即可完成智能处理,无需流转至外部环境,在保障数据安全的同时大幅降低任务延迟。
语法
参数说明
必需参数
model
指定用于脱敏的模型,支持两种来源:
来源一:API Gateway Endpoint(推荐)
平台管理员在 API Gateway 中预先配置模型服务,普通用户通过
endpoint: 前缀引用,无需关心底层连接细节。
来源二:API Connection 连接对象
用户通过
CREATE API CONNECTION 自行创建连接对象,适用于需要自定义服务地址、认证密钥或对接私有化部署模型的场景。
CREATE API CONNECTION 各字段说明:
| 字段 | 说明 |
|---|---|
| 固定为 |
| 模型供应商标识,如 、、 等 |
| 模型服务的 API 基础地址 |
| 调用服务所需的认证密钥 |
content
包含待脱敏敏感信息的输入文本,类型为 STRING(CHAR/VARCHAR/STRING 均可)。支持中文、英文、日文等多种语言,无需手动指定语言,模型自动识别。
labels
需要脱敏的标签数组,类型为 ARRAY(STRING)。标签由用户自定义,模型根据标签的语义含义在文本中识别对应信息。数组中的标签数量须在 1~20 之间。
返回值
STRING 类型。返回输入文本,其中被识别为指定标签对应的敏感信息均替换为
[MASKED]。若文本中不包含指定标签对应的信息,返回原文不变。
错误行为
默认情况下,若函数无法处理输入,返回
NULL,不报错。在多行查询中,出错的行返回 NULL,不影响其他行的正常执行。
labels 数组为空(ARRAY())时,函数报错:labels must contain at least 1 label。
使用说明
- content 为 NULL 返回 NULL:
为content
时,函数返回NULL
,不报错。NULL - content 为空字符串返回空字符串:
为content
时,函数返回''
,不报错。'' - 无匹配时返回原文:文本中不包含
指定类型的信息时,返回原文不变,不报错。labels - labels 不能为空数组:
会触发报错,至少需要提供 1 个标签。ARRAY() - 标签越具体越精准:使用"身份证号"比"证件"更精确,使用"手机号"比"号码"更准确。
- 标签语言与文本语言匹配效果更佳:中文文本配中文标签(如"姓名"、"手机号"),英文文本配英文标签(如"person"、"phone")。
- 先过滤再脱敏:对大表使用时,先用
过滤空值,减少不必要的模型调用。WHERE content IS NOT NULL - 结果具有非确定性:基于 LLM 的脱敏结果可能因模型版本或调用时机略有差异。合规要求严格的场景建议对脱敏结果进行人工抽检。
- 与其他 AI 函数配合:可先脱敏再做情感分析或摘要,确保下游分析不暴露敏感信息。
示例
中文 PII 脱敏
英文 PII 脱敏
多类型同时脱敏
日文 PII 脱敏
批量脱敏表数据
脱敏后做情感分析
合规数据导出
限制说明
- labels 不能为空数组:
会报错ARRAY()
,至少需要 1 个标签。labels must contain at least 1 label - labels 数量上限为 20:单次调用最多支持 20 个标签。
- 占位符统一为
:所有被脱敏的信息均替换为相同占位符,不区分脱敏类型。[MASKED] - 不支持仅检测模式:函数直接返回脱敏后文本,不支持仅返回敏感信息位置或类型的检测模式。
- 输入长度受模型限制:输入文本长度受底层模型 context window 限制。
- 需要已配置的 Endpoint 或 API Connection:model 参数必须引用平台中已存在的 Endpoint 或 API Connection,格式错误或引用不存在的资源会报错。
- 结果不保证 100% 覆盖:AI 脱敏基于 LLM,可能存在漏脱或误脱,合规场景建议人工抽检。
联系我们
