Power BI Desktop 可以使用 Direct Lake 表创建和编辑 Power BI 语义模型。 使用 Direct Lake 表的语义模型是在 Fabric 工作区中创建和编辑的,而不是在本地计算机上进行编辑,因此在使用 Power BI Desktop 时, 可以实时编辑 其所在语义模型。 没有发布操作,因为在 Power BI Desktop 中的更改发生在 Fabric 工作区内的语义模型上。 此体验与在 Web 或 Fabric 工作区中编辑语义模型时的体验相同,方法是选择 “打开数据模型 ”作。
版本历史记录 可用,每次启动实时编辑会话时自动创建一个版本,以便可以撤消意外更改。 Git 集成 也可用于语义模型,让你完全控制更改。 此外, 部署管道 还可用于在推送到生产工作区之前实时编辑开发工作区中的语义模型。
在包含导入表的语义模型中,将下载数据并在计算机上本地可用。 在具有 Direct Lake 表的语义模型中,数据将保留在 OneLake 中。 当视觉对象使用数据时,语义模型提供存储数据的位置。 详细了解 Direct Lake 查询性能。
语义模型的元数据,包括有关表格列、度量值、关系和所有其他语义建模特性的详细信息,可以与数据一起下载为一个PBIX 文件,前提是该语义模型未使用 Direct Lake 表。 当包含 Direct Lake 表时,还可以使用 Power BI 项目(PBIP) 格式下载语义模型的元数据,而无需数据。 了解有关 使用 PBIP 的 Direct Lake 的详细信息。
可以从 Power BI Desktop 中的所有语义模型创建 Power BI 报表,只需通过实时连接从
本文讨论有关 Power BI Desktop 中实时编辑的更多详细信息,以及如何在 Power BI Desktop 中创建 Direct Lake 表并将其添加到语义模型。
使用 Direct Lake 表创建语义模型
若要使用 Direct Lake 表创建语义模型,请执行以下步骤。
- 打开 Power BI Desktop 并选择 OneLake 目录。
- 选择 Fabric 项(如 Lakehouse 或 Warehouse),然后按 Connect。
- 为语义模型命名、为其选择 Fabric 工作区,然后选择要包括的表。 然后按“确定”。
语义模型是在 Fabric 工作区中创建的,现在你在 Power BI Desktop 中实时编辑语义模型。
在 Power BI Desktop 中创建的 Direct Lake 表的语义模型在 OneLake 存储模式下使用 Direct Lake 。 概述中介绍了 OneLake 上的 Direct Lake 和 SQL 上的 Direct Lake 之间的差异。
从其他 Fabric 项目添加 Direct Lake 表
若要从其他 Fabric 项目中添加 Direct Lake 表,请按照以下步骤操作。
- 在 Power BI Desktop 中实时编辑 OneLake 上的 Direct Lake 语义模型时,打开 OneLake 目录 并选择另一个 Fabric 项,例如 Lakehouse 或 Warehouse。
- 在对话框中,选择要包含的表,然后按 “确定”。
表将添加到语义模型,你可以继续实时编辑。
使用 Direct Lake 实时编辑语义模型
若要稍后使用 Direct Lake 表编辑语义模型,请执行以下步骤。
- 在 Power BI Desktop 的新实例中,打开 OneLake 目录 并选择 Power BI 语义模型。
- 选择 “连接” 下拉列表,然后选择 “编辑”。
现在,你正在实时编辑语义模型。
Note
支持具有 Direct Lake 表的语义模型。 导入表必须是 Direct Lake 复合模型的一部分。
编辑表、 OneLake 目录和 转换数据 仅在 Web 建模中可用。 在 Power BI Web 建模中使用 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 中的这些步骤作。
- 选择“ 文件 ”,然后选择 “空白”报表 以创建新报表。
- 打开 OneLake 目录 ,然后选择要实时编辑的 Power BI 语义模型 (它应显示在列表顶部)。
- 选择 连接。
- 现在,可以创建报表。 保存文件,并在准备就绪时发布到 Fabric 工作区。
详细了解 如何生成报表。
表视图
在实时编辑时,表视图也会被删除,除非在语义模型中有一个 计算组 或 计算表。 这些派生表使用导入存储模式。 可以使用不直接引用Direct Lake表列的计算表。 常见示例是使用 INFO。查看 DAX 函数 以自我记录语义模型。
Note
可以使用 Web 建模,将来自任何数据源的导入表通过 OneLake 表中的 Direct Lake 添加到语义模型中。 在 Power BI Web 建模中使用 Direct Lake。
Saving
当您对语义模型进行更改时,更改将自动保存,并且在实时编辑模式下,“保存”按钮将被禁用。 Power BI Desktop 中所做的更改会自动发生在 Fabric 工作区中的语义模型上。
如果需要还原更改,版本历史记录会在每个实时编辑会话的开头创建一个版本。 进行更改时没有可用的撤消作。 Git 集成 或使用 部署管道 在开发工作区中首次实时编辑,然后推送到生产环境也可用于实时编辑,而不会影响下游用户。
没有本地文件创建,但如果想要元数据的本地副本,可以 导出到 Power BI 项目(PBIP), 并使用本地元数据的 “保存 ”按钮继续实时编辑。 可以利用本地 Git 技术撤消更改。 若要导出到 Power BI 项目(PBIP),请转到“文件”,然后选择“导出”,再选择“Power BI 项目(PBIP)”。
如果两个或多个用户实时编辑同一语义模型并发生冲突,Power BI Desktop 会通知其中一个用户,并将模型同步到最新版本。 在模型同步后,需要再次执行尝试所做的任何更改。此行为与 在 Power BI 服务中编辑数据模型的行为相同,也称为 Web 建模。
Refresh
使用 Direct Lake 表实时编辑语义模型时,选择“刷新”按钮将执行架构刷新并重新构建 Direct Lake 表。
架构刷新会检查模型中的表定义,并将其与数据源中具有相同名称的表进行比较,以检测列的任何变化。 从数据源检测到的更改(在本例中为 Fabric 项,例如 Lakehouse 或仓库)被应用到语义模型中。 例如,已将一列添加到表中。 刷新后,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 集成等部署机制将 PBIP 文件部署到 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 中使用 SQL 分析终结点视图,则不建议执行这些迁移步骤。
若要切换至 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 终结点。 在 工具文章中了解详细信息。
- 用户必须具有对语义模型的写入权限。 有关详细信息,请参阅 权限文章。
- 用户必须具有湖屋的观看者权限。 有关详细信息,请参阅湖屋文章。
- 此功能对具有免费许可证的用户不可用。
注意事项和限制
- 在 SQL 上使用 Direct Lake 时,不能有多个数据源。 将数据添加到语义模型使用的 Fabric 数据源。 OneLake 存储模式中,Direct Lake 支持多个数据源。
- 无法从 Power BI Desktop 发布 Power BI 项目(PBIP)。 您可以使用 Fabric 部署机制,例如 Fabric Git 集成或 Fabric 项目 API,将本地 PBIP 文件发布到 Fabric 工作区。
- 无法从 Power BI Desktop 验证 RLS 角色。 可以在服务中验证角色。
- 在没有意外错误的情况下,无法在实时编辑期间注销。
- 可以打开外部工具,但外部工具必须管理对远程语义模型的身份验证。
- 可以将数据类别更改为 条形码,但链接到语义模型的报表无法按条形码进行筛选。
- 无法实时编辑外部共享语义模型。
- 仅当导入表是复合模型的一部分(包括 OneLake 上的 Direct Lake 表)时,才能对导入表使用实时编辑
- 查看 Direct Lake 的当前已知问题和限制。