SYSTEM$CLASSIFY_SCHEMA¶
对指定架构中要分类的表进行暂存,可以指定要在每个表中抽样的行数,并为指定架构中存储的表内的每一列分配推荐的 Data Classification 系统标签。
存储过程执行完毕后,必须使用 SQL 或 Snowsight 完成对表的分类,如 使用 Data Classification 中所示。
语法¶
CALL SYSTEM$CLASSIFY_SCHEMA( '<object_name>' , <arg> )
实参¶
object_name
包含待分类表的架构的名称。如果当前会话中未使用数据库和架构,则名称必须完全限定。
名称必须与数据库中存储的名称完全相同。如果名称包含特殊字符、大写字母或空格,则名称必须先用双引号括起来,然后再放在单引号内。
arg
指定一个实参,以确定分类过程的运作方式。以下其中一项:
NULL
Snowflake 基于指定对象中的行数使用其默认配置。未在指定对象的任何列上设置系统标签。
{}
一个空列表,在功能上等同于指定
NULL
。{'sample_count': integer}
指定要在指定对象中抽样的行数。从
1
到10000
(包括两个极限值)的任意数字。{'auto_tag': true}
分类过程完成后,在指定对象的列上设置推荐的分类系统标签。
使用此实参时,使用对该架构具有 OWNERSHIP 权限的角色调用存储过程。
{'sample_count': integer, 'auto_tag': true}
对指定对象进行分类,同时指定要抽样的行数,并在分类过程完成后,在指定对象的每列上设置推荐的系统标签。
使用此实参时,使用对该架构具有 OWNERSHIP 权限的角色调用存储过程。
{'use_all_custom_classifiers': true}
Snowflake 会评估所有自定义分类实例,并根据分类结果推荐与自定义分类实例关联的标签。
此选项使用当前处于使用中状态且调用存储过程的角色(当前角色、调用方权限)可访问的自定义分类器。有关详细信息,请参阅 了解调用方权限和所有者权限存储过程。
{'custom_classifiers': ['instance_name1' [ , 'instance_name2' ... ] ]}
指定要评估的自定义分类实例,作为要在列上设置的推荐标签的来源。
您可以在列表中指定多个实例,并用逗号分隔每个实例。
返回¶
存储过程会使用以下格式返回 JSON 对象。例如:
{
"failed": [
{
"message": "Insufficient privileges.",
"table_name": "t4"
}
],
"succeeded": [
{
"table_name": "t1"
},
{
"table_name": "t2"
},
{
"table_name": "t3"
}
]
}
其中:
failed
指定一条消息,说明未计划对该表进行分类的原因。
succeeded
指定为 Data Classification 而暂存的每个表。
使用说明¶
指定的架构名称可包含最多 1000 个表对象。如果架构包含的表对象超过 1000 个,则 Snowflake 会返回一条错误消息。
全局定义的存储过程使用调用方的权限。有关更多详细信息,请参阅 了解调用方权限和所有者权限存储过程。
如果要应用备用系统标签值,请使用 ALTER TABLE ...MODIFY COLUMN ...SET TAG 语句来更新标签值。
要从列中取消设置分类系统标签,请使用 ALTER TABLE ...MODIFY COLUMN ...UNSET TAG 语句从外部表的元数据中删除较旧的暂存文件。
示例¶
对架构表的分类进行暂存:
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables', null);
对架构表的分类进行暂存,并指定要抽样的行数:
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables.empl_info', {'sample_count': 1000});
对架构表的分类进行暂存,并为列设置系统标签:
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables.empl_info', {'auto_tag': true});
对架构表的分类进行暂存,指定要抽样的行数,并为表中的每列设置推荐的系统标签:
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables.empl_info', {'sample_count': 1000, 'auto_tag': true});