虚拟网络(VNet)网关可用于在开放工作区与 限制入站公共访问的工作区之间建立跨工作区通信。 例如,如果要从打开的工作区中的 Power BI 报表和语义模型访问入站受限工作区中的 lakehouse,则可以设置 VNet 网关。 VNet 网关部署在 Azure 虚拟网络中,充当数据资源和 Fabric 云服务之间的安全网桥。
在此图中,打开的工作区(工作区 1)包含 Power BI 报表和绑定到 VNet 网关的语义模型。 VNet 网关允许连接到入站受限工作区中的 lakehouse。 此设置允许工作区 1 中的 Power BI 报表和语义模型安全地访问 Workspace 2 中的 lakehouse,而无需将其公开给公共访问。
本文介绍如何使用适用于 Power BI 语义模型的 VNet 网关将开放工作区连接到受限工作区中的数据。 它还说明如何在导入和 DirectQuery 模式下针对入站受限工作区中的 lakehouse 创建语义模型。
注释
Direct Lake 模式下的语义模型尚不支持位于限制访问工作区中的入站数据源。
步骤 1:创建工作区
需要打开的工作区和受限工作区。 在本文中,工作区称为:
- 源工作区是没有公共访问限制的 开放 工作区,可在其中创建报表和语义模型。
- 目标工作区是具有公共访问限制的 受限 工作区,也是创建 Lakehouse 的位置。
若要创建工作区,请执行以下步骤:
- 在 Fabric 中创建两个工作区。 有关详细信息,请参阅 “创建工作区”。
- 在租户设置中, 启用工作区级入站访问保护。
- 对于目标工作区, 请设置工作区级专用链接。
重要
本文指 工作区的 workspaceFQDN,该工作区是工作区的完全限定域名(FQDN)。 格式为:
https://{workspaceID}.z{xy}.w.api.fabric.microsoft.com
或
https://{workspaceID}.z{xy}.onelake.fabric.microsoft.com
{workspaceID}其中工作区 ID 没有短划线,并且{xy}是工作区对象 ID 的前两个字母(另请参阅“连接到工作区”。
可以通过在 Fabric 门户中打开工作区页并在 URL 中的“groups/”后面指出 ID 来查找工作区 ID。 还可以使用 列表工作区 或获取 API 中的 工作区查找工作区 FQDN。
步骤 2:在目标(受限)工作区中创建 Lakehouse
在目标工作区中创建 Lakehouse,并按照以下步骤将 Delta 表上传到该工作区。
使用 API 在目标工作区中创建 lakehouse。 使用以下格式:
POST https://{workspaceFQDN}/v1/workspaces/{workspaceID}/lakehouseswhere
{workspaceFQDN}{workspaceID}.z{xy}.w.api.fabric.microsoft.com例如:
POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/lakehouses使用 Azure 存储资源管理器将数据添加到 Lakehouse,以将 Delta 表文件夹上传到 Lakehouse。 在 Azure 存储资源管理器中,选择 ADLS Gen2 容器或目录。
登录。 在 “输入连接信息 ”页中,输入存储的显示名称,并使用以下格式输入 Blob 容器 URL:
https://{workspaceFQDN}/{workspaceID}/{lakehouseID}where
{workspaceFQDN}{workspaceID}.z{xy}.onelake.fabric.microsoft.com例如:
POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/bbbbbbbb-1111-2222-3333-cccccccccccc选择“连接” 。 存储现在应显示在资源管理器视图中。
在 “表” 文件夹下,上传要使用的 Delta 表(例如
customers表)。
步骤 3:在打开的工作区中创建语义模型
现在,在受限工作区中有一个 lakehouse,可以在引用此 lakehouse 的开放工作区中创建语义模型。 可用工具如下:
Power BI 门户中的 Web 建模体验。
Power BI Desktop。
用于部署模型定义的 REST API,其表格架构与受限数据湖房中的架构相同。
基于 XMLA 的工具以编程方式部署语义模型(请参阅 语义模型与 XMLA 终结点的连接)。
选项 3a:使用 Web 建模体验
在源工作区中,单击“新建项”,然后在“新建项”窗格中,单击“语义模型”磁贴。
在“添加数据以开始生成报表”页上,单击“获取数据”,然后选择 Azure SQL 数据库以通过 SQL Analytics 终结点连接到数据源。
注释
请勿使用 OneLake 目录磁贴,因为 Web 建模体验在连接到 OneLake 目录中的数据源时会创建 Direct Lake 模型。 尚不支持在入站受限工作区中使用 Direct Lake 对数据源进行操作。 连接到 SQL Analytics 终结点(SQL AE)时,所有 SQL Server 连接选项(如 Azure SQL 数据库)都完全受支持,并按预期工作。
在“服务器”文本框中,输入 workspaceFQDN,格式为仓库连接字符串:https://{GUID}-{GUID}.z{xy}.datawarehouse.fabric.microsoft.com。也就是说,将 z{xy} 添加到 SQL 连接字符串中提供的常规仓库连接字符串中。 FQDN 中的 GUID 分别对应于 Base32 中的租户 GUID 和 Base32 中的工作区 GUID。
(可选)在“数据库”文本框中,输入要连接到的 SQL Analytics 终结点的 Guid。
在“连接凭据”下,应用以下配置设置:
| 输入控件 | 价值 |
|---|---|
| 连接列表框 | 创建新连接 |
| 连接名称 | 接受默认值或提供有意义的名称。 |
| 数据网关 | 已安装的情况下,请选择用于数据连接的 OPDGW。 也可以稍后执行此步骤(下面的步骤 4)。 |
| 身份验证种类 | 选择组织帐户,然后单击“登录”提供用于访问数据源的凭据。 |
接受剩余的默认设置,然后单击“下一步”。
在“选择数据”页上,选择要包含在语义模型中的表,然后单击“创建报表”。
在“创建新报表”对话框中,验证是否选择了源工作区,提供有意义的语义模型名称,然后单击“创建”。
在“某些步骤未完成”对话框中,单击“打开模型视图”。 请注意,语义模型尚无法连接到入站受限目标工作区中的 SQL Analytics 终结点。 在下面的步骤 4 中完成连接配置。
选项 3b:使用 Power BI Desktop
在 Power BI Desktop 中,安装在对目标工作区具有专用网络访问权限的计算机上,确保已使用用户帐户登录。
在“主页”功能区上,单击“获取数据”,单击“更多”,然后选择“Azure SQL 数据库”。
注释
请勿使用 OneLake 目录,因为 Power BI Desktop 尚无法连接到入站受限工作区中的 OneLake 目录数据源。 连接到 SQL Analytics 终结点(SQL AE)时,所有 SQL Server 连接选项(如 Azure SQL 数据库)都完全受支持,并按预期工作。
在“服务器”文本框中,输入 workspaceFQDN,格式为仓库连接字符串:https://{GUID}-{GUID}.z{xy}.datawarehouse.fabric.microsoft.com。也就是说,将 z{xy} 添加到 SQL 连接字符串中提供的常规仓库连接字符串中。 FQDN 中的 GUID 分别对应于 Base32 中的租户 GUID 和 Base32 中的工作区 GUID。
(可选)在“数据库”文本框中,输入要连接到的 SQL Analytics 终结点的 Guid。
在“数据连接”模式下,根据要求选择“导入”或“DirectQuery”,然后单击“确定”。
如果系统提示,请在身份验证对话框中选择Microsoft帐户,然后单击“登录”提供用于访问数据源的凭据。
在“导航器”对话框中,选择要包含在语义模型中的表,然后单击“加载”。
向报表画布添加视觉对象,然后在“主页”功能区上单击“发布”。
将更改保存到本地计算机上的 Power BI Desktop 文件,然后在“发布到 Power BI”对话框中,选择源工作区。 或者,可以将 Power BI Desktop 文件导入到 Power BI 门户中的源工作区。
选项 3c:部署语义模型定义
在打开的工作区中,使用与受限 Lakehouse 中相同的表架构的定义创建语义模型。 使用以下 API:
POST https://{workspaceFQDN}/v1/workspaces/{workspaceID}/semanticModelswhere
{workspaceFQDN}{workspaceID}.z{xy}.w.api.fabric.microsoft.com在执行语义模型创建之前,请编辑数据源以引用受限 Lakehouse 的连接字符串和 Lakehouse ID。 将文件(例如)
definition/tables/customers.tmdl从语义模型定义从 Base64 转换为 JSON 并复制输出。使用受限 Lakehouse 的连接字符串和数据库 ID 更新源。 然后将 JSON 转换回 Base64,并在语义模型创建请求中使用。
使用 Get Lakehouse API 检索连接字符串和 Lakehouse ID:
GET https://{workspaceFQDN}/v1/workspaces/{workspaceID}/lakehouseswhere
{workspaceFQDN}{workspaceID}.z{xy}.w.api.fabric.microsoft.com
步骤 4:在语义模型设置中启用网关连接
若要使语义模型能够连接到受限工作区中的 lakehouse,需要设置 VNet 网关并将其绑定到语义模型。
在 Power BI 语义模型设置中,打开 网关连接下的开关。
在 Fabric 门户设置中,转到 “管理连接”和“网关”。 使用在使用的资源组中创建的 虚拟网络 和 子网 创建 VNet 网关。
注释
对于 子网,请确保附加 Microsoft.PowerPlatform/vnetaccesslinks 委派:在 虚拟网络 设置中,选择子网,然后在 “子网委派”下选择 Microsoft.PowerPlatform/vnetaccesslinks。
使用 API 检索已安装网关实例的网关 ID:
https://api.fabric.microsoft.com/v1/gateways在 Power BI 中,创建 VNet 网关 SQL Server 连接。 使用 lakehouse 服务器名称和 lakehouse ID 作为数据库,使用 OAuth2 进行身份验证,并复制生成的连接 ID。
使用绑定网关 API 将语义模型绑定到网关 ID 和连接 ID:
https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/datasets/{Semantic Model ID}/Default.BindToGatewaywhere
{workspaceFQDN}{workspaceID}.z{xy}.w.api.fabric.microsoft.com验证网关绑定:在语义模型设置中,刷新页面。 VNet 网关现在应显示为活动网关。
刷新数据集。
使用语义模型生成报表。 报表现在应该能够通过 VNet 网关访问受限工作区中的 Lakehouse 数据。