重要
此功能目前以公共预览版提供。
本页介绍如何更新数据世系,以包括在 Azure Databricks 外部运行的外部资产和工作流。
Unity 目录自动捕获在 Azure Databricks 上运行的查询的运行时数据世系。 但是,你可能具有在 Azure Databricks 外部运行的工作负荷(例如,第一英里 ETL 或最后一英里 BI)。 借助 Unity 目录,可以添加外部世系元数据来增强它自动捕获的 Azure Databricks 数据世系,从而在 Unity 目录中提供端到端世系视图。 如果您希望在将数据引入 Unity Catalog 之前捕获数据的来源(例如 Salesforce 或 MySQL),或者在 Unity Catalog 外部使用数据时(例如 Tableau 或 PowerBI),这将非常有用。
以下世系图显示了一个外部 PostgreSQL 表,该表作为 Unity 目录托管表引入到 Azure Databricks 中,其中三列转换为一 release_date
列,然后使用 PowerBI 进行查询。
有关 Azure Databricks 中的数据世系的常规信息,请参阅 使用 Unity 目录查看数据世系。
要求
若要在 Unity 目录中添加外部世系元数据,必须具有以下权限,具体取决于特定任务:
- 若要在 Unity 目录中创建 外部元数据 安全对象,必须具有
CREATE EXTERNAL METADATA
元存储的权限。 - 若要指定外部元数据对象和任何其他 Unity 目录对象之间的世系关系,您必须对外部元数据对象具有
MODIFY
特权。 - 若要指定与 Unity Catalog 对象的下游世系关系,您必须对对象具有读取权限(例如,
SELECT
对表)。 - 若要指定与 Unity Catalog 对象的上游世系关系,您必须对对象具有写入权限(例如,
MODIFY
对表)。
添加外部世系元数据
添加外部世系元数据:
在 Unity 目录中创建 外部元数据 安全对象。
此对象表示外部系统中的实体,例如 Tableau 中的仪表板。
配置外部元数据对象与另一个 Unity 目录对象(例如表、模型、路径或其他外部元数据对象)之间的世系关系。
创建世系关系后,外部元数据对象将显示在世系图视图中。
可以使用目录资源管理器 UI 或 REST API 创建 外部元数据 对象并配置世系关系。
创建外部元数据对象
可以使用目录资源管理器或 外部元数据 API 创建外部元数据对象。
若要使用目录资源管理器创建外部元数据对象,请执行以下作:
在 Azure Databricks 工作区中,单击
目录。
在“ 快速访问 ”页上,单击“ 外部数据 > ”按钮,转到“ 外部元数据 ”选项卡,然后单击“ 创建外部元数据”。
指定元数据详细信息。
必填:
- 名称:输入可读名称,可帮助 Azure Databricks 用户了解他们在世系中看到的内容。 不能使用空格。
- 系统类型:从常见外部数据和 BI 系统列表中选择。 如果未找到自己的文件,请选择“ 自定义”。
- 实体类型:输入对象类型,例如“table”或“dashboard”。
自选:
- URL:如果希望世系图查看器能够单击外部资产(例如 Tableau 仪表板),请输入对象的 URL。
- 说明
高深:
- 列:如果要从此外部对象到另一个 Unity 目录对象执行列级映射,请输入列名称。 选择 UI 以一次输入一个或 文本输入 ,以在单个文本框中输入逗号分隔的列表。
- 属性:如果要在世系中跟踪其他属性,请将其输入为 JSON 键值对。 可以使用 UI 输入每个键值对,或输入完整的 JSON 对象。
单击 “创建” 。
对话框提供查看外部元数据对象或为对象创建世系关系的选项。
创建世系关系
可以使用目录资源管理器、 外部世系 API 或 用于 Python 的 Databricks SDK 创建世系关系。
若要添加外部元数据对象和其他 Unity 目录对象之间的关系,请执行以下作:
按照上述提示作,或在目录资源管理器中找到现有的外部元数据对象:
- 单击
目录
- 单击“ 外部数据 > ”按钮
- 转到 “外部元数据 ”选项卡并选择外部元数据对象。
- 单击
单击“ 创建世系关系”。
选择是要创建上游还是下游关系。
输入要创建关系的对象 类型 :
- 表:使用搜索对话框选择表。
- 模型:使用搜索对话框选择模型,然后选择模型版本。
- 路径:对于卷或外部位置,请输入路径。
- 外部元数据:从下拉菜单中选择外部元数据对象。
(可选)单击“ 高级 ”添加:
- 外部元数据对象与源或目标对象之间的列映射。
- 其他元数据作为 JSON 键值对。 例如,可以使用它们输入从外部元数据对象创建表的查询的文本,或解释生成关系的外部工作流的注释。
单击 “创建” 。
现在可以在相关对象的“世系”选项卡中查看外部世系关系。
有关外部世系的常见问题
Databricks 是否提供任何连接器或爬网程序来自动引入外部世系元数据?
否,不会自动捕获外部世系。 必须使用 REST API 或目录资源管理器添加外部世系。
在世系系统表中添加的外部世系是否记录?
否,不能从世系系统表中查询使用此功能添加的外部世系。 必须调用 REST API 以编程方式提取外部世系。
是否可以使用此功能在 Unity 目录中注册的两个表之间指定世系关系?
若要在 Unity 目录中注册的两个表之间指定世系关系,必须创建位于两个表之间的外部元数据对象。 可以将一个表指定为外部元数据对象的上游,另一个下游,以便它们在世系图中显示为已连接。
是否可以使用此功能指定多个级别的外部世系关系(例如,在数据进入 Databricks 之前批注经过多个系统的数据) ?
是的,可以通过创建多个外部元数据安全对象并为每个外部世系对象创建外部世系关系来指定多个级别的外部世系。
是否可以使用此功能添加列级外部世系?
是的,可以添加列级外部世系。 创建外部元数据安全对象时,必须指定列名,并在配置外部世系关系时指定源列映射和目标列映射。
外部世系是否有限制?
是的,可以为每个元存储创建 10,000 个外部元数据对象和 100,000 个外部世系关系。 请参阅资源限制。