数据分类

重要

此功能目前以公共预览版提供。

本页介绍如何使用 Unity 目录中的 Databricks 数据分类自动对目录中的敏感数据进行分类和标记。

数据目录可以包含大量数据,通常包含已知和未知的敏感数据。 数据团队必须了解每个表中存在的敏感数据类型,以便他们既可以管理对此数据的访问,也能实现访问的民主化。

为了解决此问题,Databricks 数据分类使用 AI 代理自动对目录中的表进行分类和标记。 这样,即可使用 基于 Unity 目录属性的访问控制(ABAC)等工具发现敏感数据并应用对结果的治理控制。 有关支持标记的列表,请参阅 支持的分类标记

使用此功能,可以:

  • 对数据进行分类:引擎使用代理 AI 系统自动对 Unity 目录中的任何表进行分类和标记。
  • 通过智能扫描优化成本:系统利用 Unity 目录和数据智能引擎智能确定何时扫描数据。 这意味着扫描是增量扫描并经过优化,以确保所有新数据都分类,而无需手动配置。
  • 查看和保护敏感数据:结果显示有助于查看分类结果,并通过标记和创建每个类的访问控制策略来保护敏感数据。

重要

Databricks 数据分类使用 默认存储 来存储分类结果。 不会为存储付费。

Databricks 数据分类使用大型语言模型(LLM)来帮助分类。

要求

注释

数据分类是工作区级别的预览功能,只能由工作区或帐户管理员管理。有关说明,请参阅 管理 Azure Databricks 预览版

重要

支持此函数的模型是使用马赛克 AI 模型服务基础模型 API 提供的。 Llama 3.1 根据 Llama 3.1 社区许可证获得许可,版权©Meta平台公司。保留所有权利。 有关详细信息,请参阅 适用的模型开发人员许可证和条款

如果将来出现根据 Databricks 的内部基准性能更好的模型,Databricks 可能会更改模型并更新文档。

  • 必须启用无服务器计算。 请参阅连接到无服务器计算
  • 若要启用数据分类,必须拥有目录或对其拥有 USE_CATALOGMANAGE 特权。
  • 若要查看结果表,必须具有以下权限:USE CATALOGUSE SCHEMA,以及在表上具有SELECT权限。 请参阅 结果系统表

使用数据分类

若要对目录使用数据分类,请执行以下操作:

  1. 导航到目录,然后单击“ 详细信息 ”选项卡。

    目录浏览器中目录页面的详细信息选项卡。

  2. 单击 “数据分类” 开关以启用它。

  3. 此时会显示 “启用数据分类 ”对话框。 默认情况下,包括所有架构。 要仅包含某些架构,请在“要包含的架构”下拉菜单中选择它们。

    数据分类的设置模式。

  4. 单击 “启用”

这会创建一个后台作业,该作业以增量方式扫描目录或所选架构中的所有表。

分类引擎依赖于智能扫描来确定何时扫描表。 目录中的新表和列通常在创建后的 24 小时内扫描。

查看分类结果

若要查看分类结果,请单击切换开关旁边的 “查看结果 ”。

数据分类结果查看按钮。

此时会打开结果页,其中显示目录中所有表的分类结果。 若要选择其他目录,请使用页面左上角的选择器。 需要无服务器 SQL 仓库,并显示在页面右上角。

结果页列出了目录中标识的任何分类标记。 引用数据分类系统标记(class.xx)的任何现有 ABAC 策略都显示在表中。

显示检测到的类表的结果页。

若要查看特定分类标记的结果,请单击相应行最右侧列中的 “审阅 ”。

显示具有检测到分类的列的结果。

此时会出现一个面板,显示数据分类器在具有高置信度的情况下检测到的分类标记的表。 查看表、列和示例值。 仅当有权访问结果表时,才会显示示例值。 请参阅 结果系统表

如果标识的列符合您的预期,可以为此目录的分类标签启用自动标记。 启用自动标记后,此分类的所有现有和未来检测项目都会被标记。

若要启用自动标记, 请使用 ...切换自动标记。以后可以使用同一开关禁用自动标记。 禁用标记时,不会应用将来的标记,但不会删除现有标记。

注释

启用自动标记功能时,标签不会被立即回填。 它们将在下一次扫描中被生成,并应在24小时内生效。 后续的分类将会被立即标记。

结果系统表

数据分类创建一个名为存储结果的系统表 system.data_classification.results ,默认情况下只能由帐户管理员访问。帐户管理员可以共享此表。 仅当使用无服务器计算时,才能访问该表。 有关此表的详细信息,请参阅 数据分类系统表参考

重要

结果表 system.data_classification.results 包含整个元存储中的所有分类结果,并包括每个目录中表的示例值。 应仅与有权查看元存储范围的分类结果(包括示例值)的用户共享此表。

查看结果表需要以下权限:USE CATALOGUSE SCHEMA,以及表上的 SELECT。 具有 MANAGESELECT 有权访问目录的用户可以在页面中查看结果,但看不到示例值。

基于数据分类结果设置治理控制

使用 ABAC 策略屏蔽敏感数据

Databricks 建议使用 基于 Unity 目录属性的访问控制(ABAC) 基于数据分类结果创建治理控件。

若要创建策略,请单击“ 新建策略”。 策略表单已预先填充,以隐藏带有正在审阅的分类标签的列。 若要屏蔽数据,请指定在 Unity 目录中注册的任何掩码函数,然后单击“ 保存”。

还可以通过将 When 列 更改为 符合条件 并提供多个标记来创建涵盖多个分类标记的策略。

例如,若要创建一个名为“机密”的策略,用于掩码任何名称、电子邮件或电话号码,请将 满足条件 设置为 hasTag("class.name") OR hasTag("class.email_address") OR hasTag("class.phone_number")

GDPR 信息收集和删除

此示例笔记本演示如何使用数据分类来帮助发现和删除 GDPR 符合性数据。

使用数据分类笔记本进行 GDPR 数据的发现和删除

获取笔记本

如何处理错误的标记

如果数据未正确标记,可以手动删除标记。 在将来的扫描中不会重新应用标记。

若要使用 UI 删除标记,请导航到目录资源管理器中的表并编辑列标记。

使用 SQL 删除标记:

ALTER TABLE catalog.schema.table
ALTER COLUMN col
UNSET TAGS ('class.phone_number', 'class.us_ssn')

扫描错误

如果在扫描期间发生任何错误,结果表右上角会显示“ 错误” 按钮。

表右上角带有“错误”按钮的结果页。

单击该按钮可显示扫描失败的表和关联的错误消息。

数据分类表扫描错误。

默认情况下,将跳过单个表发生的失败,并在第二天重试。

查看数据分类费用

若要了解如何对数据分类计费,请参阅 定价页。 可以通过运行查询或查看使用情况仪表板来查看与数据分类相关的费用。

注释

初始扫描的成本高于同一目录中的后续扫描,因为这些扫描是增量扫描,通常会产生更低的成本。

查看系统表 system.billing.usage 的使用情况

若要检查数据分类费用,请使用如下所示的查询:

SELECT
   usage_date,
   identity_metadata.created_by AS creator,
   SUM(usage_quantity) AS dbus
FROM
   system.billing.usage
WHERE
   usage_date >= DATE_SUB(CURRENT_DATE(), 30)
  AND billing_origin_product = 'DATA_CLASSIFICATION'
GROUP BY
   usage_date,
   creator
ORDER BY
   usage_date DESC,
   creator;

从使用情况仪表板查看使用情况

如果工作区中已配置了使用情况仪表板,则可以通过选择标记为“数据分类”的计费源项目来筛选使用情况。 如果未配置使用情况仪表板,可以导入一个仪表板并应用相同的筛选。 有关详细信息,请参阅 使用情况仪表板

支持的分类标记

下表列出了数据分类支持的 系统治理标记

班级 DESCRIPTION
class.credit_card 信用卡号
class.email_address 电子邮件地址
class.iban_code 国际银行账户号码(IBAN)
class.ip_address Internet 协议地址 (IPv4 或 IPv6)
class.location 位置
class.name 人员姓名
class.phone_number 电话号码
类.美国银行编号 美国银行号码
class.us_driver_license (类.美国驾照) 美国驾照
class.us_itin 美国个人纳税人身份证号
class.us_passport 美国护照
class.us_ssn 美国社会保险号码

局限性

  • 不支持视图和 指标视图 。 如果视图基于现有表,Databricks 建议对基础表进行分类,以查看它们是否包含敏感数据。