Power BI Desktop 可以使用 Direct Lake 表创建和编辑 Power BI 语义模型。 使用 Direct Lake 表的语义模型是在 Fabric 工作区中创建和编辑的,而不是在本地计算机上进行编辑,因此在使用 Power BI Desktop 时, 可以实时编辑 其所在语义模型。 在 Power BI Desktop 中进行的更改会应用于 Fabric 工作区中的语义模型,因此没有发布操作。 这与在 Web 或 Fabric 工作区中编辑语义模型时相同,方法是选择 “打开数据模型 ”作。
版本历史记录 可用,每次启动实时编辑会话时都会自动创建一个版本,以便撤消意外更改。 Git 集成 也可用于语义模型,让你完全控制更改。 此外, 部署管道 还可用于在推送到生产工作区之前实时编辑开发工作区中的语义模型。
在包含导入表的语义模型中,将下载数据并在计算机上本地可用。 在具有 Direct Lake 表的语义模型中,数据将保留在 OneLake 中。 当视觉对象使用数据时,语义模型提供存储数据的位置。
语义模型的元数据,包括有关表格列、度量值、关系和所有其他语义建模特性的详细信息,可以与数据一起下载为一个PBIX 文件,前提是该语义模型未使用 Direct Lake 表。 当包含 Direct Lake 表时,还可以使用 Power BI 项目(PBIP) 格式下载语义模型的元数据,而无需数据。
可以通过从 OneLake 目录中选择 Power BI 语义模型并选择“连接”,从 Power BI Desktop 创建 Power BI 报表,并通过实时连接创建 Power BI 报表。 还可以从许多位置在 Fabric 工作区中创建报表,包括右键单击上下文菜单和选择 创建报表。
本文讨论有关 Power BI Desktop 中实时编辑的更多详细信息,以及如何在 Power BI Desktop 中创建 Direct Lake 表并将其添加到语义模型。
启用预览功能
默认情况下,使用 Power BI Desktop 在 Direct Lake 模式下实时编辑语义模型。 可以通过在 Direct Lake 模式预览选择中关闭 Power BI 语义模型的实时编辑 (在 “选项 ”和“设置”** >选项>预览功能中找到)来禁用此功能。
您需要启用此功能,因为目前使用 Direct Lake 表创建语义模型处于公开预览阶段。 启用此功能可以通过在 Direct Lake 存储模式下启用从一个或多个 Fabric 工件中选择“创建语义模型”的预览选项。可以在选项和设置中的选项的预览功能中找到它。
使用 Direct Lake 表创建语义模型
若要使用 Direct Lake 表创建语义模型,请执行以下步骤。
- 打开 Power BI Desktop 并选择 OneLake 目录
- 选择 Lakehouse 或 Warehouse ,然后按 Connect
- 为语义模型命名、为其选择 Fabric 工作区,然后选择要包括的表。 然后按“确定”。
语义模型是在 Fabric 工作区中创建的,现在你在 Power BI Desktop 中实时编辑语义模型。
在 Power BI Desktop 中创建的 Direct Lake 表的语义模型在 OneLake 存储模式下使用 Direct Lake 。 概述中介绍了 OneLake 上的 Direct Lake 和 SQL 上的 Direct Lake 之间的差异。
注意
添加快捷表可能会导致错误。 若要在 OneLake 上将快捷表与 Direct Lake 配合使用,需要加入 OneLake 安全性的早期访问版本或限量预览版本。 在 Lakehouse 中使用仅属于公共预览版的 OneLake 安全性的任何表是不支持的,并将导致错误。
从其他 Fabric 工件中添加 Direct Lake 表
若要从其他 Fabric 构件中添加 Direct Lake 表,请执行以下步骤。
- 在 Power BI Desktop 中实时编辑 OneLake 上的 Direct Lake 语义模型时,打开 OneLake 目录 并选择另一个 Lakehouse 或 Warehouse
- 在对话框中,选择要包含的表,然后按 “确定”
表将添加到语义模型,你可以继续实时编辑
使用 Direct Lake 表实时编辑语义模型
若要稍后使用 Direct Lake 表编辑语义模型,请执行以下步骤。
- 在 Power BI Desktop 的新实例中,打开“OneLake”并选择 Power BI 语义模型
- 选择 “连接”下拉列表按钮 ,然后选择“ 编辑”。
现在,你正在实时编辑语义模型。
注意
支持具有 Direct Lake 存储模式的语义模型。 选择具有其他存储模式中的表的语义模型会导致错误。
或者,如果已 将语义模型导出到 Power BI 项目(PBIP),请执行以下步骤。
- 双击 Power BI 项目 (PBIP) 文件夹中的 PBIP 文件
- 或者,在 Power BI Desktop 中选择“文件”,然后打开并导航到 Power BI 项目(PBIP)文件夹中的 PBIP 文件
Power BI Desktop 中的实时编辑差异
Power BI Desktop 中的实时编辑不同于使用导入和 DirectQuery 表编辑本地模型,不同于使用实时连接编辑报表。
报表视图
除非使用 Power BI 项目(PBIP)进行实时编辑,否则在实时编辑时会删除报表视图。
若要创建报表,请按照 Power BI Desktop 中的这些步骤作。
- 转到 “文件 ”,然后 空白报表 打开 Power BI Desktop 的新实例
- 打开 OneLake 目录 ,然后选择要实时编辑的 Power BI 语义模型 (它应显示在列表顶部),然后按 Connect
现在,可以创建报表。 保存 PBIX 文件,并在准备就绪时发布到 Fabric 工作区。
“表”视图
在实时编辑时,表视图也会被删除,除非在语义模型中有一个 计算组 或 计算表。 这些派生表使用导入存储模式。 可以使用不直接引用Direct Lake表列的计算表。 常见示例是使用 INFO。查看 DAX 函数 以自我记录语义模型。
注意
可以通过 XMLA 将任何数据源的表添加到使用 OneLake 上 Direct Lake 配置的语义模型中,但在这种情况下,Power BI Desktop 实时编辑功能尚不支持。
储蓄
当您对语义模型进行更改时,更改将自动保存,并且在实时编辑模式下,“保存”按钮将被禁用。 Power BI Desktop 中所做的更改会自动发生在 Fabric 工作区中的语义模型上。
如果需要还原更改,版本历史记录会在每个实时编辑会话的开头创建一个版本。 进行更改时,没有可用的撤销操作。 Git 集成 或使用 部署管道 在开发工作区中首次实时编辑,然后推送到生产环境也可用于实时编辑,而不会影响下游用户。
没有创建 PBIX 文件,但如果想要元数据的本地副本,可以 导出到 Power BI 项目(PBIP), 并使用本地元数据的 “保存 ”按钮继续实时编辑。 可以利用本地 Git 技术撤消更改。 若要导出到 Power BI 项目(PBIP),请转到“文件”,然后选择“导出”,再选择“Power BI 项目(PBIP)”。
如果两个或多个用户实时编辑同一语义模型并发生冲突,Power BI Desktop 会通知其中一个用户,并将模型同步到最新版本。 在模型同步后,需要再次执行尝试所做的任何更改。此行为与 在 Power BI 服务中编辑数据模型的行为相同,也称为 Web 建模。
刷新
使用 Direct Lake 表实时编辑语义模型时,选择“刷新”按钮将执行架构刷新并重新构建 Direct Lake 表。
架构刷新会检查模型中的表定义,并将其与数据源中具有相同名称的表进行比较,以检测列的任何变化。 从数据源(在本例中为 Fabric 工件)检测到的更改被应用于语义模型。 例如,已将一列添加到表中。 刷新后,Power BI Desktop 在语义模型中更改表或列名将保持不变。
更改数据源中的表或列名称会在下次架构刷新时删除表或列。 可以使用 TMDL 视图 查看 SourceLineageTag 属性并将其更新为新名称,以避免在架构刷新时删除语义模型。
执行架构刷新的另一种方法是返回到 “编辑表 ”并单击“ 确定”。 转到“ 转换数据”下拉列表 ,然后单击“数据源 设置 ”,然后单击“ 编辑表”。
Fabric 工作区中的计划刷新仅重新构建 Direct Lake 表而不刷新架构。 详细了解 Power BI 中的刷新。
Power BI 项目 (PBIP)
使用具有 Direct Lake 表的语义模型处理 Power BI 项目(PBIP)时,Power BI Desktop 需要连接到 Fabric 工作区中的语义模型,也称为远程语义模型。 远程建模是实时编辑,因为所做的所有更改都会立即应用于工作区中的语义模型。 但是,与实时编辑不同,可以将语义模型和报表定义或元数据保存到本地 PBIP 文件,这些文件稍后可以使用 Fabric Git 集成等部署机制部署到 Fabric 工作区。 详细了解 使用 Power BI 项目进行远程建模(PBIP)
页眉链接中的名称
选择 Power BI Desktop 左上角的语义模型的名称,将展开显示 Fabric 工作区中语义模型的位置。 选择工作区名称或语义模型名称可在 Web 中导航到它们。 版本历史也提供。
TMDL 视图
TMDL (表格模型定义语言) 视图可用于 Direct Lake 语义模型。 除非使用 Power BI 项目(PBIP)进行实时编辑,否则不会保存 TMDL 脚本。 详细了解 TMDL 视图。
DAX 查询视图
DAX(数据分析表达式)查询视图可用于 Direct Lake 语义模型。 除非使用 Power BI 项目(PBIP)进行实时编辑,否则不会保存 DAX 查询。 详细了解 DAX 查询视图。
将 SQL 语义模型上的 Direct Lake 迁移到 OneLake 上的 Direct Lake
如果已有 SQL 语义模型上的 Direct Lake 并且想要迁移到 OneLake 上的 Direct Lake,则可以使用 TMDL 视图。 OneLake 上的 Direct Lake 提供了从多个源获取表的优势,并且不存在回退到 DirectQuery 的情况。
如果在 SQL 语义模型中的 Direct Lake 中使用视图或快捷表,则不建议这样做。
若要切换至 OneLake 上的 Direct Lake,请执行以下步骤。
- 实时编辑 要在 Power BI Desktop 中迁移的语义模型。
- 在标头中,打开名称上的下拉列表,然后选择 “版本历史记录 ”以创建要返回的版本(如果想要使用该选项)。
- 转到 TMDL 视图。
- 将 语义模型 节点拖到编辑器中,以编写整个模型的脚本。
- 找到脚本底部的 表达式 。
- 将
Sql.Database("SQL endpoint connection string", "ID of the SQL analytics endpoint")
更改为AzureStorage.DataLake("https://onelake.dfs.fabric.microsoft.com/ID of the workspace/ID of the lakehouse or warehouse")
。 - 如果源是 不包含架构的 Lakehouse,请删除所有
schemaName
属性引用。 在功能区中选择查找来查找目标。 将其选中并用于CTRL+SHIFT+L
选择所有行,然后CTRL+SHIFT+K
一次性删除所有行。 - 然后单击“ 应用”。
- 成功后,转到 “模型”视图 以 刷新 模型。 可能需要转到 Web 中的模型来调整 “设置” 页面中的凭据。
现在,语义模型正在使用 OneLake 上的 Direct Lake。 如果出现问题,可以还原到创建的版本以返回到 SQL 存储模式上的 Direct Lake。
要求和权限
- 必须在租户上启用 XMLA 终结点。 要了解更多信息,请参阅 XMLA 终结点文章。
- 必须在容量上启用具有读写访问权限的 XMLA 终结点。 在 工具文章中了解详细信息。
- 用户必须具有对语义模型的写入权限。 有关详细信息,请参阅 权限文章。
- 用户必须具有湖屋的观看者权限。 有关详细信息,请参阅湖屋文章。
- 此功能对具有免费许可证的用户不可用。
注意事项和限制
Power BI Desktop 中 Direct Lake 模式下的语义模型的实时编辑目前为预览版。 请记住以下几点:
- 无法编辑默认语义模型。
- 无法使用 Power Query 编辑器转换数据。 在 Lakehouse 中,可以使用数据流来执行 Power Query 转换。
- 在 SQL 上使用 Direct Lake 时,不能有多个数据源。 将数据添加到语义模型使用的 Fabric 数据源。 OneLake 存储模式中,Direct Lake 支持多个数据源。
- 无法从 Power BI Desktop 发布 Power BI 项目(PBIP)。 您可以使用 Fabric 部署机制,例如 Fabric Git 集成或 Fabric 项目 API,将本地 PBIP 文件发布到 Fabric 工作区。
- 无法从 Power BI Desktop 验证 RLS 角色。 可以在服务中验证角色。
- 服务创建的模型关系图布局不会显示在 Power BI Desktop 中,Power BI Desktop 中创建的布局不会保留在 Power BI 服务中。
- 在编辑过程中注销账号可能会导致意外错误。
- 可以打开外部工具,但外部工具必须管理对远程语义模型的身份验证。
- 将数据类别更改为 条形码 不允许链接到语义模型的报表按条形码进行筛选。
- 外部共享语义模型不符合实时编辑的条件。
- 添加快捷表可能会导致错误。 若要在 OneLake 上将快捷表与 Direct Lake 配合使用,需要加入 OneLake 安全性的早期访问版本或限量预览版本。 在 Lakehouse 中使用仅属于公共预览版的 OneLake 安全性的任何表是不支持的,并将导致错误。
除了 Direct Lake 的当前已知问题和限制之外。