分类简介¶
本主题提供有关分类工作方式的信息。
有关如何使用自定义分类器的信息,请参阅 自定义 Data Classification。
本主题内容:
概述¶
分类是一个多步骤过程,通过分析个人数据的字段和元数据,将 Snowflake 定义的系统标签与列相关联;数据工程师现在可以使用 SQL 和 Snowsight 跟踪这些数据。数据工程师可以对表中的列进行分类,以确定列是否包含某些类型的需要跟踪或保护的数据,例如唯一标识符(护照或银行账户数据)、准标识符(个人居住的城市)或敏感值(个人的工资)。
通过使用系统标签跟踪数据并使用掩码或行访问策略来保护数据,数据工程师可以改进与数据相关的治理方式。分类和数据保护步骤的总体结果是帮助遵守数据隐私法规。
您可以对架构中的单个表或多个表进行分类。Snowflake 提供预定义的 系统标签,使您能够对列进行分类和标记,或者您也可以使用自定义分类器,根据对数据的了解来定义您自己的语义类别。您还可以根据希望采用的治理方式,选择使用 Snowflake 系统标签和自定义分类器的方法。
分类为数据隐私和数据治理管理员提供以下优势:
- 数据访问:
利用列数据的分类结果,Identity and Access Management 的管理员可以评估和维护其 Snowflake 角色层次结构,以确保 Snowflake 角色对敏感或 PII 数据具有适当的访问权限。
- 数据共享:
分类过程可以帮助识别和确认 PII 数据的存储位置。随后,数据共享提供商可以使用分类结果来确定是否共享数据,以及如何使 PII 数据可供数据共享使用者使用。
- 策略应用:
通过使用包含 PII 数据的列(如引用基表中的列以创建视图或物化视图),有助于确定使用掩码策略或行访问策略保护数据的最佳方法。
支持的对象和数据类型¶
Snowflake 支持对存储在所有类型的表和视图中的数据进行分类,其中包括外部表、物化视图和安全视图。
您可以对所有支持的 数据类型 的表列和视图列进行分类,但下列数据类型 除外:
GEOGRAPHY
BINARY
VARIANT
请注意,当列数据类型可以 强制转换 为 NUMBER 或 STRING 数据类型时,可以使用 VARIANT 数据类型对列进行分类。如果列包含 JSON、XML 或其他半结构化数据,Snowflake 不会对列进行分类。
如果表包含不属于受支持的数据类型的列,或者列包含所有 NULL 值,则分类过程将忽略这些列,并且不会将其包含在输出中。
重要
如果数据表示 NULL 值,但数据的值不是 NULL,则分类结果的准确性可能会受到影响。
计算成本¶
分类过程需要计算资源,这些资源由执行分类时正在使用和运行的 虚拟仓库 提供。
对表/视图中的数据进行分类所需的时间量(以及仓库使用的 Credit)是要分类的数据量的函数。
特别是,如果表或视图具有大量支持分类的列,则处理时间可能会受到影响。然而,一般来说,处理速度与仓库大小呈线性变化关系。换句话说,仓库每次变大(从超小变为小)通常会使处理时间缩短一半。
使用以下一般准则选择 仓库大小:
无需担心处理时间:超小型仓库。
表中最多有 100 列:小型仓库。
表中有 101 到 300 列:中型仓库。
表中有 301 列或更多列:大型仓库。
有关详细信息,请参阅 仓库注意事项。
建议¶
要利用分类功能并优化 PII 数据跟踪功能,请执行以下操作:
- 验证:
首先查询 Account Usage 视图:
ACCESS_HISTORY:确定最常访问的表和视图对象。
OBJECT_DEPENDENCIES:确定两个或多个对象之间的元数据引用。
使用查询结果确定分类系统标签的架构级或数据库级分配的优先次序。
- 列名称:
在表对象和训练表创建器中使用合理的列名,以遵守内部表创建指南。
- 数据类型:
使用合理的列数据类型。例如, AGE 列应具有 NUMBER 数据类型。
- VARIANT:
如果列具有 VARIANT 数据类型,请在将表分类之前对列使用 FLATTEN 命令。
- 仓库:
将数据分类时,使用适当的仓库大小。有关详细信息,请参阅 计算成本 (本主题内容)。
管理分类¶
权限引用¶
Data Classification 的权限模型使数据隐私管理员能够确定可以对表和标签列进行分类的角色。例如,单个角色可以具有所有必要的权限,或者,数据隐私管理员可以将授权委派给不同的角色以满足职责分离 (SoD) 要求。使用 Data Classification 的 开始数据分类 部分展示了一个可行的授权组合示例。
作为管理员,您可以选择不同选项,具体取决于您希望如何管理涉及的角色。这些选项可让您灵活采用所需的治理方式。例如:
表所有者(具有表的 OWNERSHIP 权限)可以对表进行分类并在列上设置系统标签。
自定义角色具有表的 SELECT 权限和账户的 APPLY TAG 权限,可以对表进行分类并在列上设置系统标签。
如果您希望不同的角色参与对列进行分类和标记,则可以向一个角色授予表的 SELECT 权限,并向其他角色授予账户的 APPLY TAG 权限。
下表总结了用于对表进行分类、在列上设置 Data Classification 系统标签,以及同时执行这两项任务的不同授权选项:
权限或角色 |
对表进行分类 |
在列上设置系统标签 |
---|---|---|
表格或视图的 SELECT。 |
✔ |
|
表的 OWNERSHIP。 |
✔ |
✔ |
账户的 APPLY TAG。 |
✔ |
|
ACCOUNTADMIN 角色。 |
✔ |
|
数据库或架构的 OWNERSHIP。 |
重要
对表进行分类需要一个正在运行的仓库。用于对表进行分类的角色必须至少具有仓库的 USAGE 权限。
您可以向账户角色授予 SNOWFLAKE.GOVERNANCE_VIEWER 数据库角色,使具有该账户角色的用户能够查询 DATA_CLASSIFICATION_LATEST 视图,以查看分类表的最新结果。