Considerazioni sul gateway dati locale per le destinazioni dati in Dataflow Gen2

Questo articolo tenta di elencare le limitazioni e le considerazioni relative all'uso del gateway dati con scenari di destinazioni dati in Dataflow Gen2.

Timeout della valutazione

I flussi di dati che usano un gateway e la funzionalità di destinazione dati sono limitati a un tempo di valutazione o aggiornamento di un'ora.

Per altre informazioni su questa limitazione, vedere l'articolo Risolvere i problemi relativi al gateway dati locale.

Problemi di rete con la porta 1433

Quando si usa Microsoft Fabric Dataflow Gen2 con un gateway dati locale, è possibile che si verifichino problemi con il processo di aggiornamento del flusso di dati. Il problema sottostante si verifica quando il gateway non è in grado di connettersi al dataflow staging Lakehouse per leggere i dati prima di copiarli nella destinazione dati desiderata. Questo problema può verificarsi indipendentemente dal tipo di destinazione dati in uso.

Durante l'aggiornamento complessivo del flusso di dati, l'aggiornamento delle tabelle può essere visualizzato come "Succeeded", ma la sezione delle attività viene visualizzata come "Failed". I dettagli dell'errore per l'attività WriteToDatabaseTableFrom_... indicano l'errore seguente:

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

Nota

Dal punto di vista dell'architettura, il motore del flusso di dati usa un endpoint HTTPS in uscita (porta 443) per scrivere dati in una Lakehouse. Tuttavia, la lettura dei dati da Lakehouse richiede l'uso del protocollo TDS (TCP sulla porta 1433). Questo protocollo viene utilizzato per copiare i dati dal lakehouse di staging alla destinazione dei dati. Questo spiega perché il passaggio Caricamento tabelle ha esito positivo mentre l'attività di destinazione dati ha esito negativo, anche quando entrambe le lakehouse si trovano nella stessa istanza di OneLake.

Risoluzione dei problemi

Per risolvere questo problema, attenersi alla procedura seguente:

  1. Verificare che il flusso di dati sia configurato con una destinazione dati.

    Screenshot dell'editor di Power Query con la destinazione dati Lakehouse evidenziata.

  2. Verificare che l'aggiornamento del flusso di dati abbia esito negativo, con l'aggiornamento delle tabelle che viene visualizzato come "Operazione riuscita" e le attività vengono visualizzate come "Non riuscite".

    Screenshot dei dettagli del flusso di dati con le tabelle con esito positivo e le attività non riuscite.

  3. Esaminare i dettagli dell'errore per l'attività WriteToDatabaseTableFrom_..., che fornisce informazioni sull'errore rilevato.

    Screenshot dell'attività WriteToDatabaseTablefrom che mostra il messaggio di errore.

Soluzione: impostare nuove regole del firewall nel server che esegue il gateway

Le regole del firewall nel server gateway e/o nei server proxy del cliente devono essere aggiornate per consentire il traffico in uscita dal server gateway al seguente:

  • Protocollo: TCP
  • Endpoint: *.datawarehouse.pbidedicated.windows.net, *.datawarehouse.fabric.microsoft.com, *.dfs.fabric.microsoft.com
  • Porta: 1433

Nota

In alcuni scenari, in particolare quando la capacità si trova in un'area non più vicina al gateway, potrebbe essere necessario configurare il firewall per consentire l'accesso a più endpoint(*cloudapp.azure.com). Questa regolazione è necessaria per supportare i reindirizzamenti che possono verificarsi in queste condizioni. Se il traffico destinato a *.cloudapp.azure.com non viene intercettato dalla regola, in alternativa è possibile consentire gli indirizzi IP per l'area dati nel firewall.

Se si vuole limitare l'ambito dell'endpoint all'istanza onelake effettiva in un'area di lavoro (anziché il carattere jolly *.datawarehouse.pbidedicated.windows.net), tale URL può essere trovato passando all'area di lavoro Infrastruttura, individuando DataflowsStagingLakehousee selezionando Visualizza dettagli. Copiare e incollare quindi il stringa di connessione SQL.

Screenshot dell'area di lavoro Infrastruttura con DataflowsStagingLakehouse, con i puntini di sospensione selezionati e l'opzione Visualizza dettagli evidenziata.

Screenshot delle informazioni dettagliate di DataflowsStagingLakehouse, con la stringa di connessione SQL evidenziata.

L'intero nome dell'endpoint è simile all'esempio seguente:

x6eps4xrq2xudenlfv6naeo3i4-l27nd6wdk4oephe4gz4j7mdzka.datawarehouse.pbidedicated.windows.net

Soluzione alternativa: suddividere il flusso di dati in un inserimento separato e caricare il flusso di dati

Se non è possibile aggiornare le regole del firewall, è possibile suddividere il flusso di dati in due flussi di dati separati. Il primo flusso di dati è responsabile dell'inserimento dei dati nel lakehouse di staging. Il secondo flusso di dati è responsabile del caricamento dei dati dal lakehouse di staging nella destinazione dati. Questa soluzione alternativa non è ideale, perché richiede l'uso di due flussi di dati separati, ma può essere usata come soluzione temporanea fino a quando non è possibile aggiornare le regole del firewall.

Per implementare questa soluzione alternativa, seguire questa procedura:

  1. Rimuovere la destinazione dati dal flusso di dati corrente che inserisce dati tramite il gateway.

    Screenshot dell'editor di Power Query con la destinazione dati Lakehouse da rimuovere.

  2. Creare un nuovo flusso di dati che usa il connettore del flusso di dati per connettersi al flusso di dati di inserimento. Questo flusso di dati è responsabile dell'inserimento dei dati dalla gestione temporanea alla destinazione dati.

    Screenshot dell'editor di Power Query con l'opzione Recupera dati selezionata e l'opzione connettore Flusso di dati evidenziata.

    Screenshot della finestra di dialogo Recupera dati con l'opzione connettore Flusso di dati selezionata.

  3. Impostare la destinazione dati come destinazione dati desiderata per questo nuovo flusso di dati.

    Screenshot dell'editor di Power Query con la destinazione dati Lakehouse impostata.

  4. Facoltativamente, è possibile disabilitare la gestione temporanea per questo nuovo flusso di dati. Questa modifica impedisce di copiare nuovamente i dati nel lakehouse di staging e copia i dati direttamente dal flusso di dati di inserimento alla destinazione dati.

    Screenshot dell'editor di Power Query con l'opzione di gestione temporanea disabilitata.