- 类别:
EXTRACT_SEMANTIC_CATEGORIES¶
返回指定表或视图中每个支持的列的一组类别(语义和隐私)。要返回列的类别,该列必须使用支持分类且不包含所有 NULL 值的 数据类型。
这些类别来自列中包含的元数据和数据,以及有关列和数据的元数据。隐私类别依赖于生成的语义类别(如果有的话)。
语法¶
EXTRACT_SEMANTIC_CATEGORIES( '<object_name>' [ , <max_rows_to_scan> ] )
实参¶
必填:
object_name
包含待分类列的表、外部表、视图或物化视图的名称。如果当前会话中未使用数据库和架构,则名称必须完全限定。
名称必须与数据库中存储的名称完全相同。如果名称包含特殊字符、大写字母或空格,则名称必须先用双引号括起来,然后再放在单引号内。
可选:
max_rows_to_scan
用于确定指定表/视图中分类类别的行样本大小。
有效值:
1
至10000
默认:
10000
返回¶
作为一个代表性示例,JSON 对象具有以下结构:
{
"valid_value_ratio": 1.0,
"recommendation": {
"semantic_category": "PASSPORT",
"privacy_category": "IDENTIFIER",
"confidence": "HIGH",
"coverage": 0.7,
"details": [
{
"semantic_category": "US_PASSPORT",
"coverage": 0.7
},
{
"semantic_category": "CA_PASSPORT",
"coverage": 0.1
}
]
},
"alternates": [
{
"semantic_category": "NATIONAL_IDENTIFIER",
"privacy_category": "IDENTIFIER",
"confidence": "LOW",
"coverage": 0.3,
"details": [
{
"semantic_category": "US_SSN",
"privacy_category": "IDENTIFIER",
"coverage": 0.3
}
]
}
]
}
其中:
valid_value_ratio
指定样本大小中有效值的比率。无效值包括 NULL、空字符串和字符数超过 256 个的字符串。
recommendation
指定有关每个标签和值的信息。这些信息包括:
semantic_category
指定语义类别标签值。
privacy_category
指定隐私类别标签值。
可能的值为
IDENTIFIER
、QUASI-IDENTIFIER
和SENSITIVE
。confidence
指定以下值之一:
HIGH
、MEDIUM
或LOW
。该值表示 Snowflake 根据列采样过程以及列数据与 Snowflake 数据分类方式的一致性而得出的相对置信度。coverage
指定与特定类别的规则匹配的采样单元格值的百分比。
details
指定可为 SEMANTIC_CATEGORY 标签指定地理标签值的字段和值。
alternates
指定除推荐标签之外要考虑的每个标签和值的信息。
使用说明¶
该函数需要一个运行中的仓库。该仓库会影响性能和成本。有关详细信息,请参阅 分类计算成本 部分。
为了与 Data Classification 的额外增强相一致,不再更新此函数。
您可以继续使用此功能,如 将 Data Classification 与经典 APIs 配合使用 所示。
但是,请做好更新工作流程的计划,如 使用 Data Classification 中所示。
示例¶
使用要扫描的行数的默认值(10000
)提取 my_db.my_schema.hr_data
表的语义和隐私类别:
USE ROLE data_engineer; USE WAREHOUSE classification_wh; SELECT EXTRACT_SEMANTIC_CATEGORIES('my_db.my_schema.hr_data');
与上一个示例相同,但仅限于扫描表中的 5000 行:
USE ROLE data_engineer; SELECT EXTRACT_SEMANTIC_CATEGORIES('my_db.my_schema.hr_data', 5000);
与第一个示例相同,但将结果存储在表中:
USE ROLE data_engineer; CREATE OR REPLACE TABLE classification_results(v VARIANT) AS SELECT EXTRACT_SEMANTIC_CATEGORIES('my_db.my_schema.hr_data');将结果存储在表中后,您可以在使用 ASSOCIATE_SEMANTIC_CATEGORY_TAGS 应用结果之前对其进行修改。