Tabular Editor 连接到 Direct Lake Dataset
此内容由人工智能翻译,尚未经过人工编辑审核。图像和图表保持其原始语言。
在 Microsoft Fabric 中,Dataset 可以使用 Direct Lake 模式,直接连接到存储在 OneLake 中、以 Delta 表 形式存储的数据源;这些 Delta 表可通过 Fabric 的各种分析工作负载创建。 使用 Direct Lake 的 Dataset(称为 Direct Lake Dataset)有望同时实现低延迟与快速查询性能,并利用 OneLake 的“单一副本理念”——也就是说,数据不会被复制到 Power BI Dataset 中。 因此,Direct Lake Dataset 有望显著提升组织从企业级 Power BI Data model 中获得的价值。 正如我们在 Fabric 博客 中预览的那样,我们认为这可能会导致组织内 Dataset 的进一步增多,而 Tabular Editor 正是帮助管理这些新 Dataset 的合适工具。
重要从 Tabular Editor 3.11 起,本文中的部分信息已过时。 如果您使用的是 Tabular Editor 3.11 或更高版本,请阅读 新文章。 |
注意Fabric 目前仍处于预览阶段,因此 XMLA Write 支持的更改存在一些限制:Direct Lake 已知问题与限制 | Microsoft Learn |
目录
- 什么是 Direct Lake Dataset?
- 如何在 Fabric 中创建 Direct Lake Dataset?
- Tabular Editor 3 对 Direct Lake 的支持
- 使用 Tabular Editor 连接到 Direct Lake Dataset
- 如何识别 Direct Lake Dataset?
- 在 Tabular Editor 3 中从零构建 Direct Lake Dataset
- 总结
什么是 Direct Lake Dataset?
Fabric 引入的一个重要新功能是 Direct Lake。 该功能使您可以创建一个 Dataset,直接从 OneLake 加载数据。 无需导入流程;OneLake 中的数据一旦可用,您就能立即看到变更。
因此,采用 Direct Lake 存储模式的 Dataset 具备 DirectQuery 的延迟特性,同时拥有导入模式 Dataset 的性能。 要了解 Direct Lake 的具体信息,请参阅:了解 Direct Lake
注意Direct Lake 目前仅在 Fabric Lakehouse 中受支持。 创建方法请参阅:Lakehouse 教程 – 创建你的第一个 Lakehouse | Microsoft Learn |
如何在 Fabric 中创建 Direct Lake 数据集?
在 Fabric 中创建新的 Direct Lake Dataset 最为便捷。 目前,Tabular Editor 尚未内置从零创建 Direct Lake Dataset 的功能,不过该功能已在规划中,预计很快发布。 不过,你可以使用一些替代方案,本文后面会说明。 如上所述,前提条件是已创建 Lakehouse,并在该 Lakehouse 中包含一张或多张 Delta 表。 完成这些操作后,创建新的 Direct Lake Dataset 就很容易了。
重要由于 Microsoft Fabric 对 Direct Lake 模型的近期更新,这些信息可能已经过时。 |
首先,打开 Lakehouse,然后点击名为“New Power BI Dataset”的按钮。 这会打开一个对话框,你可以选择要包含在新 Direct Lake Dataset 中的表。

Fabric 会立即打开该 Dataset,你可以在右上角修改 Direct Lake Dataset 的名称。 默认名称就是 Lakehouse 的名称。
Tabular Editor 3 对 Direct Lake 的支持
Tabular Editor 3(V3.10 或更高版本)支持 Direct Lake 数据集(正如在 2023 年八月的发布博客中宣布的那样)。 借助 Tabular Editor,管理 Direct Lake Dataset 的方式与普通导入模式 Dataset 没有什么不同。 连接后,Tabular Editor 会将 Direct Lake Dataset 视为另一个表格模型。
重要通过 XMLA endpoint 修改 Direct Lake Dataset,会导致你无法在 Fabric 门户中修改该 Direct Lake Dataset。 这是此功能的限制之一。 |
使用 Tabular Editor 连接到 Direct Lake Dataset
当你的 Direct Lake Dataset 已在 Fabric 门户中创建并运行后,要在 Tabular Editor 中使用它,第一步就是连接到该 Dataset。 这和你平时连接 Power BI Dataset 的方式一样:使用 XMLA endpoint 连接字符串。
步骤 I:找到连接字符串
在你的 Fabric Workspace 中,进入 Workspace settings > Premium > Workspace connection 就能找到连接字符串。
查找 XMLA 连接字符串的步骤:
- 在你的 Fabric Workspace 中,选择 Workspace Settings
- 选择 Premium
- 你会在页面右下角找到 XMLA Workspace 连接字符串。
步骤 II:在 Tabular Editor 3 中打开 Dataset
拿到连接字符串后,你就可以在 Tabular Editor 中打开这个 Workspace,并选择要编辑的 Dataset。 在我们的示例中有两个 Dataset:一个是默认 Dataset,另一个是我们在上一节创建的 Dataset,并通过门户重命名为 Direct Lake Test Dataset。
名称与 Lakehouse 相同的 Dataset 是默认 Dataset,本例中为 Direct_Lake_Test,且无法编辑。 但其他任何 Dataset 都可以通过 Tabular Editor 或其他工具打开。
- 依次选择 File > Open > Model from DB
- 将 XMLA Connection string 粘贴到 server name 字段
- 选择你的 Direct Lake Dataset
- 点击 OK,在 Tabular Editor 中打开 Direct Lake Dataset
步骤 III:编辑 Dataset
现在 Dataset 已打开,你可以开始编辑,并将 Dataset 保存回服务中。
- 添加度量值
- 通过导入向导添加表
- 更改对象属性
- 编写 DAX
- 创建图表
- 并充分利用 Tabular Editor 的各项功能
步骤 IV:导入新表
对 Direct Lake Dataset 的表导入向导支持,是 Tabular Editor 3.10.0 中发布的核心功能。 该向导会连接到 Direct Lake SQL Endpoint,并支持向 Direct Lake Dataset 添加新表。 下面我们通过向 Dataset 添加一张新表来看看其工作方式:
- 在 Tables 文件夹上右键,选择“导入表”
- 选择现有的数据源
- 选择要导入的表(可多选)
- 表将被导入,并可在 Tabular Editor 3 中编辑和组织
信息图第一张图中展示的“更新架构”功能,也同样在 Tabular Editor 3.10.0 及更高版本中受支持。 这是将新列导入到现有表的最简单方式。
如何识别 Direct Lake Dataset?
那么,Direct Lake Dataset 与 Power BI 中“常规”Dataset 有什么不同? 总体来说,它看起来与普通导入 Dataset 很相似,差异主要在于分区,以及其最低兼容级别为 1604。
这些分区称为 Entity Partitions,其 Mode 属性设置为 DirectLake。 关键点在于:一个 Dataset 中的所有分区都必须是 Direct Lake 分区,这个 Dataset 才是有效的 Direct Lake Dataset。 这基本上也是 Tabular Editor 判断你是否在处理 Direct Lake Dataset 的方式。
在 Tabular Editor 3 中从零构建 Direct Lake
重要本指南已过时。 请参阅更新的博文:展示如何在 Tabular Editor 3 中轻松创建 Direct Lake 模型。我们保留这份指南,是因为它展示了手动创建 Direct Lake 模型所需的全部步骤。 |
在 Tabular Editor 3(V. 3.10)中,仍无法仅通过标准功能直接在 Tabular Editor 中创建 Direct Lake Dataset。 在该功能实现之前,你可以通过一个替代方案,仅在 Tabular Editor 内创建你自己的 Direct Lake Dataset。
步骤 I:创建新模型
先在 Tabular Editor 中创建一个新模型,然后手动将兼容级别更新为 1604,这是 Direct Lake Dataset 所必需的:
- 转到 File> New > Model
- 命名并创建模型。 在“兼容级别”文本框中输入 1604(替换默认的 1601)。
步骤 II:创建指向 SQL Endpoint 的共享表达式
下一步是创建一个共享表达式,让模型可以用它连接到 Fabric Lakehouse SQL Endpoint。 先进入 Fabric Workspace,找到你的 Lakehouse 或 Warehouse 的 SQL Endpoint 连接字符串并复制,然后在一个新的共享表达式中使用下面的代码。
let
database = Sql.Database("[SQL Endpoint Connection String]", "[Name of Lakehouse]")
in
database
- 在 Fabric Workspace 中点击 SQL Endpoint
- 选择 SQL Endpoint settings。
- 复制 SQL Endpoint Connection string,并保存,供第 5 步使用。
- 在 Tabular Editor 中创建共享表达式。 你可以随意命名它,Microsoft 默认使用的名称是“DatabaseQuery”。
- 复制上面的 M Expression 代码块,并将 [SQL Endpoint Connection String] 替换为已保存的 SQL Endpoint
- 在共享表达式中,用你的 Lakehouse 名称替换 [Name of Lakehouse]
现在,共享表达式已经指向 Lakehouse 的 SQL Endpoint,几乎可以直接用于导入表了,但在此之前还需要一个额外的小步骤。
步骤 III:创建临时 Direct Lake 分区
接下来的步骤需要一点手动操作。 为了将 Dataset 设置为 Direct Lake 并导入我们的表,先创建一个带 Direct Lake 分区的临时表。 在上一节中,我们看到 Direct Lake Dataset 中的所有分区都需要具备特定属性。要导入新表,你必须确保 Tabular Editor 将新模型识别为 Direct Lake Dataset。
- 在 tables folder > Create 上右键 > 选择 ‘Table’
- 出现提示时,选择 M 分区选项。 实际上,这不是 Tabular Editor 为 Direct Lake 创建的正确分区类型,但在界面里这是唯一的选项。
- 因此下一步是在你刚在步骤 1 创建的临时表中,新建一个 Entity Partition。
- 通过将 Mode 属性更改为 Direct Lake,把该 Entity Partition 配置为 Direct Lake 分区
- 并将 Expression Source 设置为共享表达式名称。
步骤 IV:从 Direct Lake 导入表
临时表创建完成后,Tabular Editor 会将该模型识别为 Direct Lake Dataset。 表导入向导现在可以正确导入带有 Direct Lake 分区的新表。 但在继续创建度量值并开展后续开发之前,别忘了删除我们之前创建的那个临时表。

- 从 Lakehouse 导入表
- 首个表导入完成后删除临时表
步骤 V:将你的 Direct Lake Dataset 保存/部署到 Fabric
现在可以将该 Dataset 保存或部署到 Fabric Workspace,并且它会像其他 Direct Lake Dataset 一样正常运行。 例如,尝试从某个表中选择“预览数据”,看看 Tabular Editor 如何展示你的数据。 并且你会发现,无需刷新就能将数据加载到 Dataset 中。 真不错!
总结
Direct Lake 引入了一种全新的 Dataset 模式,为 BI 开发者打开了各种令人兴奋的可能性。
如上所示,Tabular Editor 可以轻松配合 Direct Lake Dataset 使用。 在下一篇关于该主题的 Tabular Editor 博客文章中,我们将深入探讨一些场景,看看 Tabular Editor 如何帮助开发者管理 Direct Lake Dataset。