类别:

:doc:`/sql-reference/functions-string`(AI 函数)

AI_REDACT

检测非结构化文本数据中的个人身份信息 (PII) 并对其进行脱敏处理。

语法

使用 AI_REDACT 检测 PII 并对其进行脱敏处理:

AI_REDACT( <input> [, <categories> ] [, <return_error_details> ] [, <mode> ] )
Copy

实参

必填:

input

一个包含可能含有个人身份信息 (PII) 的文本数据的 VARCHAR 值。

可选:

categories

一个字符串值的 ARRAY,用于指定需要进行脱敏处理的 PII 类型。如未指定,则对所有受支持的 PII 类别进行脱敏处理。请参阅 检测到 PII 类别 查看支持的类别列表。

传递不受支持的类别会导致错误。

return_error_details

BOOLEAN 标志,指示在发生错误时是否返回错误详细信息。当设置为 TRUE 时,该函数返回一个 OBJECT,其中包含值和错误消息,二者之一为 NULL,具体取决于函数是成功还是失败。

要求将会话参数 AI_SQL_ERROR_HANDLING_USE_FAIL_ON_ERROR 设置为 FALSE。

mode

用于指定操作模式的 VARCHAR 值。可接受的值:

  • ``redact``(默认):将检测到的 PII 替换为类别占位符,例如 [NAME] 和 [ADDRESS]。

  • detect:选择使用 时默认使用的角色和仓库。返回一个 OBJECT,其中包含一个 spans 数组,该数组用于标识每个检测到的 PII 实例的位置和类别,而不对原始文本进行脱敏处理。

备注

mode 实参不区分大小写。

返回

AI_REDACT 的返回值取决于 mode 实参。

脱敏模式(默认)

返回一个 VARCHAR 值,其中输入文本中的 PII 已被类别占位符替换。例如,若输入文本为“John Smith”,则会被替换为 [NAME]

检测模式

返回一个包含 spans 数组的 OBJECT。数组中的每个元素都是一个包含以下字段的 OBJECT:

  • category:选择使用 时默认使用的角色和仓库。一个 VARCHAR 值,标识 PII 类别(例如 NAME 或``ADDRESS``)。

  • start:选择使用 时默认使用的角色和仓库。一个 NUMBER 值,标识输入文本中 PII 的起始索引。

  • end:选择使用 时默认使用的角色和仓库。一个 NUMBER 值,标识输入文本中 PII 的结束索引。

  • text:选择使用 时默认使用的角色和仓库。一个 VARCHAR 值,包含匹配到的 PII 文本。

错误行为

默认情况下,如果 AI_REDACT 无法处理输入,函数将返回错误。如果查询处理多行,则整个查询将失败。

当 AI_SQL_ERROR_HANDLING_USE_FAIL_ON_ERROR 设置为 FALSE 时,出错时的返回值取决于 return_error_details 实参。下表显示了基于 return_error_details 实参的返回值:

return_error_details

返回值

描述

FALSE

未传递

NULL

TRUE

包含 valueerror 字段的 OBJECT

value:选择使用 时默认使用的角色和仓库。包含编辑文本的 VARCHAR 值,或者如果发生错误,则返回 NULL。

error:选择使用 时默认使用的角色和仓库。包含错误消息(如果发生错误)的 VARCHAR 值,或者如果函数成功,则返回 NULL。

有关处理错误的更多信息,请参阅 处理多行查询中的行级错误

使用说明

  • 关于 AI_REDACT 可脱敏的 PII 类别,请参阅 检测到 PII 类别

  • 对于 AI_REDACT 当前版本的限制,请参阅 限制

示例

请参阅 脱敏示例