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

本文尝试列出在数据流 Gen2 中结合使用数据网关与数据目标方案时的限制和注意事项。

评估超时

使用网关和数据目标功能的数据流限制为一小时的评估或刷新时间。

有关此限制的详细信息,请参阅文章本地数据网关故障排除

端口 1433 的网络问题

将 Microsoft Fabric Dataflow Gen2 与本地数据网关配合使用时,可能会遇到数据流刷新过程的问题。 当网关无法连接到数据流暂存 Lakehouse 以在将数据复制到所需数据目标之前读取数据时,就会出现潜在问题。 无论使用哪种类型的数据目标,都可能发生此问题。

在整体数据流刷新期间,表刷新可以显示为“成功”,但活动部分显示为“失败”。 活动 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 读取数据需要使用 TDS 协议(通过端口 1433 上的 TCP)。 此协议用于将数据从过渡湖屋复制到数据目标。 这解释了为什么即使两个湖屋位于同一 OneLake 实例中,表加载步骤也会在数据目标活动失败时成功。

故障排除

若要排查问题,请执行以下步骤:

  1. 确认数据流配置了数据目标。

    Power Query 编辑器的屏幕截图,突出显示了 Lakehouse 数据目标。

  2. 验证数据流刷新是否失败,表刷新显示为“成功”,活动显示为“失败”

    数据流详细信息的屏幕截图,显示成功和失败的活动表格。

  3. 查看活动 WriteToDatabaseTableFrom_... 的错误详细信息,该活动提供有关所遇到的错误的信息。

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

解决方案:在运行网关的服务器上设置新的防火墙规则

需要更新网关服务器和/或客户代理服务器上的防火墙规则,以允许从网关服务器到以下内容的出站流量:

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

注意

在某些情况下,特别是当容量位于距离网关最近的区域时,可能需要配置防火墙以允许访问多个端点 (*cloudapp.azure.com)。 需要进行此调整以适应在这些情况下可能发生的重定向。 如果发往 *.cloudapp.azure.com 的流量没有被规则拦截,也可以在防火墙中允许数据区域的 IP 地址

如果要将终结点的范围缩小到工作区中的实际 OneLake 实例,(而不是通配符 *.datawarehouse.pbidedicated.windows.net),可以通过导航到 Fabric 工作区、查找 DataflowsStagingLakehouse 并选择“查看详细信息”到该 URL。 然后,复制并粘贴 SQL 连接字符串。

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

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

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

x6eps4xrq2xudenlfv6naeo3i4-l27nd6wdk4oephe4gz4j7mdzka.datawarehouse.pbidedicated.windows.net

解决方法:在单独的引入和加载数据流中拆分数据流

如果无法更新防火墙规则,可以将数据流拆分为两个单独的数据流。 第一个数据流负责将数据引入暂存湖屋。 第二个数据流负责将数据从暂存湖屋加载到数据目标。 此解决方法并不理想,因为它需要使用两个单独的数据流,但在防火墙规则更新之前,它可以用作临时解决方案。

若要实现此解决方法,请执行以下步骤:

  1. 从通过网关引入数据的当前数据流中删除数据目标。

    Power Query 编辑器的屏幕截图,其中已移除 Lakehouse 数据目标。

  2. 创建使用数据流连接器连接到引入数据流的新数据流。 此数据流负责将数据从暂存区引入到数据目标。

    Power Query 编辑器的屏幕截图,其中已选定“获取数据”选项,并且突出显示“数据流连接器”选项。

    “获取数据”对话框的屏幕截图,其中已选定“数据流连接器”选项。

  3. 将该数据目标设置为你为此新数据流选择的数据目标。

    Power Query 编辑器的屏幕截图,其中已设置 Lakehouse 数据目标。

  4. (可选)可以对此新数据流禁用暂存。 此更改防止数据再次被复制到暂存湖屋,而是将数据直接从引入数据流复制到数据目标。

    Power Query 编辑器的屏幕截图,其中已禁用过渡选项。