数据流 Gen2 中数据目标的本地和虚拟网络数据网关注意事项

本文介绍将数据网关与数据流 Gen2 中的数据目标配合使用时的局限性和注意事项。

引用查询时端口 1433 出现的网络问题

将 Microsoft Fabric Dataflow Gen2 与本地数据网关配合使用时,可能会在数据流刷新过程中遇到问题。 这种情况发生在网关无法连接到数据流的暂存仓库来读取数据,从而无法在引用暂存数据的查询中使用这些数据。 通常,如果网关服务器或客户的代理服务器上的防火墙规则通过端口 1433 阻止到所需终结点的出站流量,则会出现此问题。

不需要端口 1433 访问的方案

在以下情况下,数据流刷新应成功,而无需访问端口 1433:

  • 数据流中有一个查询会写入 Lakehouse,并且没有其他查询引用它。
  • 禁用快速复制。
  • 数据流具有多个查询,但没有相互引用。

需要端口 1433 访问的方案

如果多个查询相互引用,由于端口 1433 的网络问题,数据流刷新可能会失败。 数据流引擎需要通过端口 1433 使用 TDS 协议从暂存数据湖读取数据。 在刷新期间,表刷新可能显示为“成功”,但活动部分可能会显示“失败”。 活动 WriteToDatabaseTableFrom_... 的错误详细信息可能包括以下消息:

Mashup Exception Error: Couldn't refresh the entity because of an issue with the mashup document MashupException.Error: Microsoft SQL: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - An attempt was made to access a socket in a way forbidden by its access permissions.) Details: DataSourceKind = Lakehouse;DataSourcePath = Lakehouse;Message = A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - An attempt was made to access a socket in a way forbidden by its access permissions.);ErrorCode = -2146232060;Number = 10013

注意

数据流引擎使用出站 HTTPS(端口 443)终结点将数据写入 Lakehouse。 但是,从 Lakehouse 读取数据需要 TDS 协议(TCP 通过端口 1433)。 这就解释了为什么第一个查询可能会成功,而引用该查询的后续查询可能会失败,即使两个 Lakehouse 都在同一个 OneLake 实例中也是如此。

故障排除

若要进行故障排除,请查看失败表或活动的错误详细信息。 这些详细信息提供有关遇到的错误的信息。

显示错误信息的 WriteToDatabaseTablefrom 活动的屏幕截图。

解决方案:更新网关服务器上的防火墙规则

更新网关服务器或客户的代理服务器上的防火墙规则,以允许出站流量流向以下终结点。 如果防火墙不支持通配符,请使用 Azure IP 范围和服务标记中的 IP 地址。 每月保持这些同步。

  • 协议:TCP
  • 端点:*.datawarehouse.pbidedicated.windows.net、*.datawarehouse.fabric.microsoft.com、*.dfs.fabric.microsoft.com
  • 端口:1433

注意

如果容量位于远离网关的区域,则可能需要允许访问多个终结点(*.cloudapp.azure.com)。 如果规则未截获到 *.cloudapp.azure.com 的流量,则在防火墙中允许您所在的数据区域的 IP 地址

若要将终结点范围缩小到工作区中的实际 OneLake 实例,请导航到 Fabric 工作区,找到 DataflowsStagingLakehouse并选择“ 查看详细信息”。 复制并粘贴 SQL 连接字符串。

Fabric 工作区的屏幕截图,显示 DataflowsStagingLakehouse,并选择了省略号,并突出显示“查看详细信息”选项。

DataflowsStagingLakehouse 详细信息的截图,强调了 SQL 连接字符串。

终结点名称类似于以下示例:

x6eps4xrq2xudenlfv6naeo3i4-l27nd6wdk4oephe4gz4j7mdzka.datawarehouse.pbidedicated.windows.net

解决方法:合并查询或禁用暂存

如果无法更新防火墙规则,请尝试以下解决方法:

  • 将相互引用的查询合并为单个查询。
  • 在所有引用的查询上禁用暂存。

这些选项不是最终解决方案,可能会影响复杂转换的性能,但它们可以作为临时修复程序,直到防火墙规则更新为止。