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

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

创建湖屋架构

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

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

重要

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

创建湖屋后,可以在“表”下找到名为“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;

重要

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

公共预览版限制

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

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