數據流 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。 不過,從 Lakehouse 讀取數據需要使用 TDS 通訊協定 (TCP over port 1433)。 此通訊協定可用來將數據從預備 Lakehouse 複製到數據目的地。 這說明當數據目的地活動失敗時,數據表載入步驟成功的原因,即使兩個 Lakehouse 都位於相同的 OneLake 實例中也一樣。

疑難排解

若要對此問題進行疑難排解,請執行下列步驟:

  1. 確認數據流已設定為數據目的地。

    Power Query 編輯器的螢幕快照,其中強調 Lakehouse 數據目的地。

  2. 確認數據流重新整理失敗,數據表重新整理顯示為 「成功」 ,且活動顯示為 「失敗」

    數據流詳細數據的螢幕快照,其中顯示成功且活動失敗的數據表。

  3. 檢閱活動 WriteToDatabaseTableFrom_...的錯誤詳細數據,其中提供所發生錯誤的相關信息。

    顯示錯誤訊息的 WriteToDatabaseTablefrom 活動的螢幕快照。

解決方案:在執行閘道的伺服器上設定新的防火牆規則

閘道伺服器和/或客戶 Proxy 伺服器上的防火牆規則必須更新,以允許從閘道伺服器輸出流量至下列內容:

  • 通訊協定: 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),可以流覽至 [網狀架構] 工作區,找出該 URL,然後 DataflowsStagingLakehouse選取 [檢視詳細數據]。 然後,複製並貼上 SQL 連接字串。

[光纖] 工作區的螢幕快照,其中已選取省略號,並強調 [檢視詳細數據] 選項。

DataflowsStagingLakehouse 詳細數據的螢幕快照,其中強調 SQL 連接字串。

整個端點名稱看起來類似下列範例:

x6eps4xrq2xudenlfv6naeo3i4-l27nd6wdk4oephe4gz4j7mdzka.datawarehouse.pbidedicated.windows.net

因應措施:在不同的內嵌和載入數據流中分割數據流

如果您無法更新防火牆規則,您可以將數據流分割成兩個不同的數據流。 第一個數據流負責將數據內嵌至預備 Lakehouse。 第二個數據流負責將數據從預備 Lakehouse 載入數據目的地。 此因應措施不理想,因為它需要使用兩個不同的數據流,但它可以當做暫時解決方案使用,直到防火牆規則可以更新為止。

若要實作此因應措施,請遵循下列步驟:

  1. 從透過閘道內嵌資料的目前資料流中移除資料目的地。

    Power Query 編輯器的螢幕快照,其中已移除 Lakehouse 數據目的地。

  2. 建立使用數據流連接器連線到內嵌數據流的新數據流。 此數據流負責將數據從預備環境內嵌至數據目的地。

    Power Query 編輯器的螢幕快照,其中已選取 [取得數據] 選項,並強調 [數據流連接器] 選項。

    [取得數據] 對話框的螢幕快照,其中已選取 [數據流連接器] 選項。

  3. 將此新數據流的數據目的地設定為您選擇的數據目的地。

    Power Query 編輯器的螢幕快照,其中已設定 Lakehouse 數據目的地。

  4. 您可以選擇性地停用這個新數據流的預備。 這項變更可防止數據再次複製到預備 Lakehouse,而是將數據直接從內嵌數據流複製到數據目的地。

    Power Query 編輯器的螢幕快照,其中已停用預備選項。