在 Databricks 清理室中创建和使用输出表

重要

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

本文介绍输出表,这些表是笔记本运行生成的临时只读表,并共享到笔记本运行程序的 Unity 目录元存储。 本文介绍如何使用笔记本创建输出表,以及协作者如何在其 Unity 目录元存储中读取这些输出表。

输出表概述

使用输出表可以暂时将在干净空间中运行的笔记本的输出保存到 Unity 目录元存储中的输出目录,可以在其中向无法运行笔记本的团队成员提供数据。 还可以使用 Azure Databricks 作业来运行笔记本,并在输出表上执行任务。 与“清理室”笔记本任务类型和任务值支持相结合,输出表允许你创建依赖于“清理室”笔记本的复杂工作流。

输出表是只读的。

只有运行笔记本的特定主体(用户、组或服务主体)具有对输出表的默认读取访问权限。 没有写入访问权限。 元存储管理员可以使用标准 Unity 目录特权向其 Azure Databricks 帐户中的其他主体授予读取访问权限。

输出表存储在中央清洁室的默认存储位置中,并使用 Delta 共享共享到协作者的元存储中 30 天。 如果要将输出表保留 30 天以上,则必须将其复制到本地存储。

每个笔记本运行在输出目录中创建新的架构。 新运行无法追加现有输出表。

重要

仅当中央清理室托管在 AWS 上时,才支持输出表。 但是,所有三个云(AWS、Azure 和 Google Cloud)上的 Databricks 协作者可以共享创建输出表的笔记本,并且可以读取在运行共享笔记本时生成的输出表。 Google Cloud 协作者必须是清洁室个人预览版的参与者。

创建输出表

若要创建输出表,请使用参数 cr_output_catalog ,并在 cr_output_schema 三部分表命名空间中使用。 笔记本的每个运行都会生成一个新的架构。

在以下示例中,笔记本单元格创建一个输出表,该表在排序规则的输出目录中调用overlapping_users,其中列出了电子邮件地址同时显示在表和collaborator.advertiser.profilescreator.publisher.profiles表中的用户。

CREATE TABLE identifier(:cr_output_catalog || '.' || :cr_output_schema || '.overlapping_users') AS
SELECT collab_profiles.*
FROM collaborator.advertiser.profiles AS collab_profiles
JOIN creator.publisher.profiles AS creator_profiles
ON collab_profiles.email = creator_profiles.email

读取输出表

输出表显示在笔记本运行程序的元存储中的共享目录中。 在“目录资源管理器 目录 ”窗格中,它们将显示在 “共享 目录”列表中。

读取输出表就像读取 Unity 目录中的任何其他表一样。 必须具有 SELECT 表、 USE CATALOG 共享输出目录和 USE SCHEMA 自动生成的架构。 运行创建表的笔记本的用户默认具有这些权限。

开始之前的准备工作

本部分介绍读取输出表的云、配置和计算要求。

云要求

虽然中央清理室必须位于 AWS 上才能支持输出表,但协作者工作区可以位于以下三个云中的任何一个:AWS、Azure 或 Google Cloud。 Google Cloud 协作者必须是清洁室个人预览版的参与者。

共享输出目录要求

在读取输出表之前,用户必须创建保存它们的目录。 每个干净的房间只需执行此操作一次。

所需的权限: EXECUTE_CLEAN_ROOM_TASK

  1. 在 Azure Databricks 工作区中,单击 “目录”图标“目录”。
  2. 在“快速访问”页上,单击“数据清洁房间 >”按钮。
  3. 从列表中选择清洁室。
  4. 在右窗格中的“输出”下,单击“创建目录”。
  5. 输入输出目录名称或接受默认值,即 <clean-room-name>_output

输出目录显示在目录资源管理器目录窗格中的共享目录列表中。 参与的每个干净房间都可以在元存储中拥有一个共享输出目录。

计算要求

对输出表的查询需要无服务器计算。 请参阅连接到无服务器计算

读取输出表所需的权限

运行创建输出表的笔记本的用户默认有权从输出表中读取。 所有其他用户必须具有以下权限::

  • SELECT 表上的
  • USE CATALOG 输出目录上的
  • USE SCHEMA 输出架构上的

运行笔记本

若要在输出目录中生成共享输出表,有权访问清理室的用户必须运行笔记本。 请参阅 “在干净房间运行笔记本”。 每个笔记本运行都会创建新的输出架构和表。

提示

可以使用 Azure Databricks 作业来运行笔记本并针对输出表执行任务,从而启用复杂的工作流。 请参阅 使用 Azure Databricks 工作流运行清理室笔记本

查找和查看输出表

运行创建输出表的笔记本的用户可以在笔记本运行历史记录中找到输出表的链接,并在“清理室”UI 中运行详细信息页。 在这两种情况下,链接都位于 “输出架构 ”字段中。 请参阅 “监视清理室”笔记本运行

运行历史记录:

运行历史记录中的输出架构链接

运行详细信息:

运行详细信息中的输出架构链接

还可以在目录资源管理器目录窗格中的“共享目录”列表中找到输出目录。

限制

除了输出表概述中列出的要求和开始之前,输出表还具有以下限制:

  • 仅当中央清理室托管在 AWS 上,并在输出表功能发布后创建清理室时,才支持输出表。
  • 仅支持表。 例如,卷和视图不是。
  • 每个笔记本最多可以创建 100 个输出表。