SYSTEM$CLASSIFY

对指定对象进行分类,使用指定抽样行数的选项,并将建议的 分类标签 分配到指定对象中的每一列。

语法

SYSTEM$CLASSIFY( '<object_name>' ,
  { '<classification_profile>' | <options> } )
Copy

实参

'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
    }
  }
}
Copy

可能的字段

classification_profile_config

如果配置了自动分类,则该配置文件将包含用于生成分类结果的配置文件的完整限定名称。

classification_result

提供有关已分类的每个列的详细信息。

object_path_results

当列包含具有敏感字段的半结构化数据时,object_path_results 键会列出分类为原生或自定义语义类别的字段。有关更多信息,请参阅 JSON 列的结果

alternates

指定除推荐标签之外要考虑的每个标签和值的信息。

recommendation

提供分类过程中作为主要选择的每个标签和值的信息。

这些值可以同时显示在备用值和建议值中:

classifier_name

用于为分类列添加标签的自定义分类实例的完全限定名称。

仅在使用自定义分类实例作为要在列上设置的标签的来源时,才会显示此字段。

confidence

提供以下值之一:HIGHMEDIUMLOW。该值表示 Snowflake 根据列采样过程以及列数据与 Snowflake 数据分类方式的一致性而得出的相对置信度。

coverage

提供与特定类别的规则匹配的采样单元格值的百分比。

details

提供与特定地理分类相关的字段和值。semantic_category 字段包含区域设置的 语义子类别

privacy_category

提供隐私类别。

可能的值为 IDENTIFIERQUASI-IDENTIFIERSENSITIVE

semantic_category

提供语义类别。有关原生语义类别的列表,请参阅 敏感数据分类的原生语义类别

如果值为 MULTIPLE,则在半结构化数据中发现了敏感数据。检查结果对象的 object_path_results 字段,以获取分类过程中发现的原生和自定义语义类别的详细分解。有关更多信息,请参阅 JSON 列的结果

tags

提供分类过程中应用于列的标签信息。

valid_value_ratio

提供样本中有效值的比率。

  • 对于结构数据,无效值包括 NULL、空字符串和字符数超过 256 个的字符串。

  • 对于半结构化数据,无效值包括 NULL 和空字符串。

使用说明

示例

对表进行分类:

CALL SYSTEM$CLASSIFY('hr.tables.empl_info', null);
Copy

对表进行分类并指定要抽样的行数:

CALL SYSTEM$CLASSIFY('hr.tables.empl_info', {'sample_count': 1000});
Copy

对表进行分类,并为以下列设置系统标签:

CALL SYSTEM$CLASSIFY('hr.tables.empl_info', {'auto_tag': true});
Copy

对表进行分类,并指定要抽样的行数,并为表中的每一列设置推荐的系统标签:

CALL SYSTEM$CLASSIFY('hr.tables.empl_info', {'sample_count': 1000, 'auto_tag': true});
Copy

根据 my_config_profile 分类文件中指定的标准对表进行分类:

CALL SYSTEM$CLASSIFY('hr.tables.empl_info, 'my_config_profile');
Copy