SYSTEM$CLASSIFY¶
对指定对象进行分类,使用指定抽样行数的选项,并将建议的敏感 Data Classification 系统标签 分配到指定对象中的每一列。
语法¶
SYSTEM$CLASSIFY( '<object_name>' ,
{ '<classification_profile>' | <options> } )
实参¶
'object_name'
包含待分类列的表、外部表、视图或物化视图的名称。如果当前会话中未使用数据库和架构,则名称必须完全限定。
名称必须与数据库中存储的名称完全相同。如果名称包含特殊字符、大写字母或空格,则名称必须先用双引号括起来,然后再放在单引号内。
'classification_profile'
指定 分类配置文件,以便根据配置文件中指定的标准进行分类。
options
指定一个 JSON OBJECT,以确定分类过程的运作方式。以下其中一项:
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 对象。例如:
{
"classification_profile_config": {
"classification_profile_name": "db1.sch.sensitive_data_detection_profile"
},
"classification_result": {
"col1_name": {
"alternates": [],
"recommendation": {
"confidence": "HIGH",
"coverage": 1,
"details": [],
"privacy_category": "QUASI_IDENTIFIER",
"semantic_category": "DATE_OF_BIRTH",
"tags": [
{
"tag_applied": true,
"tag_name": "snowflake.core.semantic_category",
"tag_value": "DATE_OF_BIRTH"
},
{
"tag_applied": true,
"tag_name": "snowflake.core.privacy_category",
"tag_value": "QUASI_IDENTIFIER"
}
]
},
"valid_value_ratio": 1
}
}
}
其中:
classification_profile_config
如果配置了自动分类,则该配置文件将包含用于生成分类结果的配置文件的完整限定名称。
classification_result
提供有关已分类的每个列的详细信息。
alternates
指定除推荐标签之外要考虑的每个标签和值的信息。
recommendation
提供分类过程中作为主要选择的每个标签和值的信息。
这些值可以同时显示在备用值和建议值中:
classifier_name
用于为分类列添加标签的自定义分类实例的完全限定名称。
仅在使用自定义分类实例作为要在列上设置的标签的来源时,才会显示此字段。
confidence
提供以下值之一:
HIGH
、MEDIUM
或LOW
。该值表示 Snowflake 根据列采样过程以及列数据与 Snowflake 数据分类方式的一致性而得出的相对置信度。coverage
提供与特定类别的规则匹配的采样单元格值的百分比。
details
提供表示 SEMANTIC_CATEGORY 标签的 地理标签值 的字段和值。
privacy_category
提供隐私类别标签值。
可能的值为
IDENTIFIER
、QUASI-IDENTIFIER
和SENSITIVE
。semantic_category
提供语义类别标签值。
tags
提供分类过程中应用于列的标签信息。
valid_value_ratio
提供样本数量中有效值的比率。无效值包括 NULL、空字符串和字符数超过 256 个的字符串。
使用说明¶
Snowflake 提供的存储过程使用调用方的权限。有关更多详细信息,请参阅 了解调用方权限和所有者权限存储过程。
如果要应用备用系统标签值,可使用 ALTER TABLE ...MODIFY COLUMN ...SET TAG 语句来更新标签值。
要从列中取消设置分类系统标签,可使用 ALTER TABLE ...MODIFY COLUMN ...UNSET TAG 语句。
示例¶
对表进行分类:
CALL SYSTEM$CLASSIFY('hr.tables.empl_info', null);
对表进行分类并指定要抽样的行数:
CALL SYSTEM$CLASSIFY('hr.tables.empl_info', {'sample_count': 1000});
对表进行分类,并为以下列设置系统标签:
CALL SYSTEM$CLASSIFY('hr.tables.empl_info', {'auto_tag': true});
对表进行分类,并指定要抽样的行数,并为表中的每一列设置推荐的系统标签:
CALL SYSTEM$CLASSIFY('hr.tables.empl_info', {'sample_count': 1000, 'auto_tag': true});
根据 my_config_profile
配置文件中指定的标准对表进行分类:
CALL SYSTEM$CLASSIFY('hr.tables.empl_info, 'my_config_profile');