湖屋架构是什么(预览版)?

湖屋支持创建自定义架构。 架构允许将表组合在一起,以便更好地发现数据、进行访问控制等操作。

创建湖屋架构

要为湖屋启用架构支持,创建湖屋架构时,请选中“湖屋架构(公共预览版)”旁边的框。

屏幕截图,其中显示了“新建湖屋”对话框。

重要

由于预览限制,工作区名称只能包含字母数字字符。 如果在工作区名称中使用特殊字符,则某些湖屋功能将不起作用。

创建湖屋后,可以在“表”下找到名为“dbo”的默认架构。 此架构始终存在,且无法更改或删除。 要创建新架构,请将鼠标悬停在“表”上,选择“…”,然后选择“新建架构”。 输入架构名称,然后选择“创建”。 架构将在到“表”下按字母顺序列出。

屏幕截图,其中显示了“新建湖屋架构”对话框。

在湖屋架构中存储表

需要一个架构名称才能将表存储在架构中。 否则,会转到默认“dbo”架构。

df.write.mode("Overwrite").saveAsTable("contoso.sales")

可以使用湖屋资源管理器来排列表,并将表名称拖放到不同的架构。

在架构之间移动表的动画。

注意

如果修改表,还必须更新相关项(如笔记本代码或数据流),确保它们与正确的架构保持一致。

使用架构快捷方式引入多个表

要从其他 Fabric 湖屋或外部存储引用多个 Delta 表,请使用架构快捷方式,该快捷方式可显示所选架构或文件夹下的所有表。 架构中也会显示对源位置中的表所做的任何更改。 要创建架构快捷方式,请将鼠标悬停在“表”上,选择“…”,然后选择“新建架构快捷方式”。 然后在另一个湖屋上选择架构,或者选择外部存储(如 Azure Data Lake Storage [ADLS] Gen2)上包含 Delta 表的文件夹。 这将使用所引用的表创建新的架构。

屏幕截图,其中显示了新建湖屋架构快捷方式。

访问湖屋架构来进行 Power BI 报告

要创建语义模型,只需选择要使用的表。 表可以位于不同的架构中。 如果来自不同架构的表共享相同的名称,则“模型视图”中的表名称旁边会显示数字。

笔记本中的湖屋架构

在笔记本对象资源管理器中查看启用了架构的湖屋时,可以看到表位于架构中。 可以将表拖放到代码单元格中,获取引用表所在架构的代码片段。 使用此命名空间引用代码中的表:“workspace.lakehouse.schema.table”。 如果省略任何元素,执行程序将使用默认设置。 例如,如果只提供表名称,则它使用笔记本的默认湖屋的默认架构 (dbo)。

重要

如果要在代码中使用架构,请确保笔记本的默认湖屋已启用架构。

跨工作区 Spark SQL 查询

使用命名空间“workspace.lakehouse.schema.table”来引用代码中的表。 这样,如果运行代码的用户有权访问表,则可以联接不同工作区的表。

SELECT * 
    FROM operations.hr.hrm.employees as employees 
    INNER JOIN global.corporate.company.departments as departments
    ON employees.deptno = departments.deptno;

重要

请确保只从启用了架构的湖屋联接表。 从未启用架构的湖屋联接表将不起作用。

公共预览版限制

以下列出的不支持的功能/功能适用于公共预览版的当前版本。 在正式发布之前,将在即将发布的版本中解决这些问题。

不支持的功能/功能 备注
共享湖屋 在命名空间中使用共享 lakehouses 中的工作区不起作用,例如 wokrkspace.sharedlakehouse.schema.table。 THe 用户必须具有工作区角色才能在 namaspace 中使用工作区。
托管的非 Delta 表架构 不支持为托管的非 Delta 格式表(例如 CSV)获取架构。 在湖屋资源管理器中展开这些表不会在 UX 中显示任何架构信息。
外部 Spark 表 不支持外部 Spark 表操作(例如发现、获取架构等)。 这些表在 UX 中无法识别。
公共 API 启用了架构的湖屋不支持公共 API(列出表、加载表、公开 defaultSchema 扩展属性等)。 在启用了架构的湖屋上调用的现有公共 API 会导致错误。
表维护 不支持。
更新表属性 不支持。
包含特殊字符的工作区名称 不支持包含特殊字符(例如空格、斜杠)的工作区。 显示用户错误。
Spark 视图 不支持。
Hive 特定功能 不支持。
USE <schemaName> 不能跨工作区工作,但在同一工作区中受支持。
迁移 不支持将现有非架构湖屋迁移到基于架构的湖屋。